CN111831536A - 一种自动化测试方法和装置 - Google Patents
一种自动化测试方法和装置 Download PDFInfo
- Publication number
- CN111831536A CN111831536A CN201910307487.0A CN201910307487A CN111831536A CN 111831536 A CN111831536 A CN 111831536A CN 201910307487 A CN201910307487 A CN 201910307487A CN 111831536 A CN111831536 A CN 111831536A
- Authority
- CN
- China
- Prior art keywords
- text
- operation flow
- target
- element information
- flow
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3684—Test management for test design, e.g. generating new test cases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种自动化测试方法和装置,涉及计算机技术领域。该方法的一具体实施方式包括:根据用户在页面上操作得到的操作流,生成对应的操作文本;其中,每个操作流包括多个元素信息以及各个元素信息之间的顺序;基于所述操作流生成操作用例,发送执行所述操作用例的指令;接收所述操作用例的执行结果,根据所述执行结果和所述操作文本优化所述操作流。该实施方式能够解决用例执行不够稳定和人工更新代码段不够智能的技术问题。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种自动化测试方法和装置。
背景技术
在现有的Web(万维网)自动化测试技术中,通过页面元素的定位以及模拟浏览器的操作来实现一个用户使用场景的操作用例。具体地,对页面上相关的业务操作,根据PageObject设计模式封装成一个页面类和若干业务操作方法,然后在操作用例中调用业务类来实现自动化测试用例。模拟浏览器的操作的原理是Selenium(浏览器自动化测试框架)客户端向Selenium服务端发送操作指令,服务端解析操作指令,并调用webdriver(万维网驱动器)提供的接口来完成浏览器的操作。其中,用例优化过程是根据用例执行完成后的报告,分析用例失败的原因,对失败的脚本加入延迟等待或者重试等操作进行代码优化。如果待测系统页面文本信息发生了变化的情况,则要重新定位元素,还要修改用例、更新脚本。
在实现本发明过程中,发明人发现现有技术中至少存在如下问题:
由于用例的执行和优化过程是根据结果日志,对脚本中处理失败的代码段加上特殊处理,比如等待,延迟或者重试等,虽然能部分解决用例执行不够稳定的问题,但仍然无法完全解决,同时给数据库增加了脏数据,导致无法回滚。而且,当待测页面中的元素发生变化时,需要根据页面变化人工更新代码段,因此不够智能。
发明内容
有鉴于此,本发明实施例提供一种自动化测试方法和装置,以解决用例执行不够稳定和人工更新代码段不够智能的技术问题。
为实现上述目的,根据本发明实施例的一个方面,提供了一种自动化测试方法,包括:
根据用户在页面上操作得到的操作流,生成对应的操作文本;其中,每个操作流包括多个元素信息以及各个元素信息之间的顺序;
基于所述操作流生成操作用例,发送执行所述操作用例的指令;
接收所述操作用例的执行结果,根据所述执行结果和所述操作文本优化所述操作流。
可选地,在根据用户在页面上的操作流生成对应的操作文本之前,还包括:
记录用户在页面上的操作,从而得到操作流集合;其中,所述操作流集合包括至少一个操作流;
从所述操作流集合中筛选出现频率最高的N个元素信息,根据所述N个元素信息所在的操作流,得到两两组合的元素信息组,将所述元素信息组的优化规则配置为事务处理;
其中,N为正整数。
可选地,根据用户在页面上操作得到的操作流,生成对应的操作文本,包括:
获取用户在页面上操作得到的操作流中各个元素信息对应的文本信息,并根据所述各个元素信息之间的顺序,得到操作文本;其中,所述操作文本包括多个文本信息以及各个文本信息之间的顺序;
将所述操作流及其对应的操作文本保存到语义库。
可选地,基于所述操作流生成操作用例,发送执行所述操作用例的指令,包括:
基于所述操作流生成操作用例,重复发送执行所述操作用例的指令,直到接收到的执行结果为失败的操作用例的数量为零或者固定值;
其中,针对每个操作用例:根据该操作用例对应的操作流中的各个元素信息分别生成操作指令,并按照各个元素信息之间的顺序,逐条发送所述操作指令。
可选地,接收所述操作用例的执行结果,根据所述执行结果和所述操作文本优化所述操作流,包括:
接收所述操作用例的执行结果,定位所述执行结果中的异常结果;
根据所述异常结果在所述语义库中匹配到目标文本信息及其所在的目标操作文本;
采用所述目标文本信息的同义词替换所述目标文本信息在所述目标操作文本中的位置,从而优化所述操作流。
可选地,采用所述目标文本信息的同义词替换所述目标文本信息在所述目标操作文本中的位置,从而优化所述操作流,包括:
在同义词集合中查找到与所述目标文本信息匹配的各个同义词;
将所述各个同义词分别替换所述目标文本信息在所述目标操作文本中的位置,分别得到多个同义词操作文本;
分别计算所述多个同义词操作文本与所述目标操作文本的相似度,将相似度大于预设阈值的同义词操作文本对应的操作流作为优化后的操作流。
另外,根据本发明实施例的另一个方面,提供了一种自动化测试装置,包括:
文本模块,用于根据用户在页面上操作得到的操作流,生成对应的操作文本;其中,每个操作流包括多个元素信息以及各个元素信息之间的顺序;
发送模块,用于基于所述操作流生成操作用例,发送执行所述操作用例的指令;
优化模块,用于接收所述操作用例的执行结果,根据所述执行结果和所述操作文本优化所述操作流。
可选地,所述文本模块还用于:
记录用户在页面上的操作,从而得到操作流集合;其中,所述操作流集合包括至少一个操作流;
从所述操作流集合中筛选出现频率最高的N个元素信息,根据所述N个元素信息所在的操作流,得到两两组合的元素信息组,将所述元素信息组的优化规则配置为事务处理;
其中,N为正整数。
可选地,所述文本模块用于:
获取用户在页面上操作得到的操作流中各个元素信息对应的文本信息,并根据所述各个元素信息之间的顺序,得到操作文本;其中,所述操作文本包括多个文本信息以及各个文本信息之间的顺序;
将所述操作流及其对应的操作文本保存到语义库。
可选地,所述发送模块用于:
基于所述操作流生成操作用例,重复发送执行所述操作用例的指令,直到接收到的执行结果为失败的操作用例的数量为零或者固定值;
其中,针对每个操作用例:根据该操作用例对应的操作流中的各个元素信息分别生成操作指令,并按照各个元素信息之间的顺序,逐条发送所述操作指令。
可选地,所述优化模块用于:
接收所述操作用例的执行结果,定位所述执行结果中的异常结果;
根据所述异常结果在所述语义库中匹配到目标文本信息及其所在的目标操作文本;
采用所述目标文本信息的同义词替换所述目标文本信息在所述目标操作文本中的位置,从而优化所述操作流。
可选地,采用所述目标文本信息的同义词替换所述目标文本信息在所述目标操作文本中的位置,从而优化所述操作流,包括:
在同义词集合中查找到与所述目标文本信息匹配的各个同义词;
将所述各个同义词分别替换所述目标文本信息在所述目标操作文本中的位置,分别得到多个同义词操作文本;
分别计算所述多个同义词操作文本与所述目标操作文本的相似度,将相似度大于预设阈值的同义词操作文本对应的操作流作为优化后的操作流。
根据本发明实施例的另一个方面,还提供了一种电子设备,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现上述任一实施例所述的方法。
根据本发明实施例的另一个方面,还提供了一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现上述任一实施例所述的方法。
上述发明中的一个实施例具有如下优点或有益效果:因为采用根据用户在页面上操作得到的操作流生成对应的操作文本,基于操作流生成操作用例,并根据操作用例的执行结果和操作文本来优化操作流的技术手段,所以克服了用例执行不够稳定和人工更新代码段不够智能的技术问题。本发明实施例基于操作流生成对应的操作文本,也就是通过自然语言处理的方式对操作流进行优化,提高操作用例在执行过程中迭代加强执行稳定性,同时由于具备文本信息理解能力,当待测页面的元素信息发生变化时能够理解和推测执行场景,自动修复用例,使得自动化的执行更加智能。
上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。
附图说明
附图用于更好地理解本发明,不构成对本发明的不当限定。其中:
图1是根据本发明实施例的自动化测试方法的主要流程的示意图;
图2是根据本发明实施例的客户端和服务端的主要模块的示意图;
图3是根据本发明实施例的客户端和服务端的交互示意图;
图4是根据本发明一个可参考实施例的自动化测试方法的主要流程的示意图;
图5是根据本发明另一个可参考实施例的自动化测试方法的主要流程的示意图;
图6是根据本发明实施例的自动化测试装置的主要模块的示意图;
图7是本发明实施例可以应用于其中的示例性系统架构图;
图8是适于用来实现本发明实施例的终端设备或服务器的计算机系统的结构示意图。
具体实施方式
以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
图1是根据本发明实施例的自动化测试方法的主要流程的示意图。作为本发明的一个实施例,如图1所示,所述自动化测试方法可以包括:
步骤101,根据用户在页面上操作得到的操作流,生成对应的操作文本;其中,每个操作流包括多个元素信息以及各个元素信息之间的顺序。
首先,用户在页面上进行点击、输入等操作,因此可以根据用户在页面上的操作生成操作流,每个操作流中记录了用户在页面上的操作以及各个操作的前后顺序。在本发明的实施例中,每个操作流包括多个元素信息以及各个元素信息之间的顺序。然后根据每个操作流中的各个元素信息以及各个元素信息之间的顺序,生成对应的操作文本。
例如,用户在页面上的操作流程为:{工单管理->发起工单->录入发起内容},那么该操作流程对应的操作流为:{<action:click id:woTest>,<action:click,id:newWO>,<action:input,id:content>}。例如用户在页面上的操作流程为:{工单管理->工单状态查看},那么该操作流程对应的操作流为:{<action:click id:woTest>,<action:click id:wostate}。每个元素信息包括事件类型(action)和元素标识(id)。
可选地,所述步骤101可以包括:获取用户在页面上操作得到的操作流中各个元素信息对应的文本信息,并根据所述各个元素信息之间的顺序,得到操作文本;其中,所述操作文本包括多个文本信息以及各个文本信息之间的顺序;将所述操作流及其对应的操作文本保存到语义库。需要指出的是,元素信息与文本信息的对应关系可以预先存储在数据库中,因此可以通过元素标识查到找对应的文本信息,从而得到各个操作流对应的操作文本,然后将各个操作流及其对应的操作文本保存到语义库中。可选地,所述文本信息是指自然语言信息,例如中文的文本信息、英文的文本信息、韩文的文本信息等等,也就是非代码语言。
举例来说,基于上述两个操作流,可以得到两个操作文本分别为:工单管理,发起工单,录入发起内容;工单管理,工单状态查看。
在步骤101之前,所述方法还可以包括:记录用户在页面上的操作,从而得到操作流集合;其中,所述操作流集合包括至少一个操作流;从所述操作流集合中筛选出现频率最高的N个元素信息,根据所述N个元素信息所在的操作流,得到两两组合的元素信息组,将所述元素信息组的优化规则配置为事务处理;其中,N为正整数。具体地,可以通过浏览器插件记录用户在页面上的操作步骤并保存,每一种场景的操作流程,即为一个操作流,因此可以得到操作流集合,所述操作流集合包括多个操作流。然后,统计操作流集合中各个元素信息的出现次数,并将保存到Multimap(C++语言中的一种数据结构,支持自动排序,支持键值重复)中,key值对应每个元素标识,value值是每个元素的出现次数。然后将键值对反转,得到新的target Multimap,target multimap会根据value自动降序排序,取位于前N个元素信息作为初始优化操作。最后,根据所述N个元素信息所在的操作流,得到两两组合的元素信息组,将所述元素信息组的优化规则配置为事务处理。
本发明实施例将多个操作组合在一起,作为一个原子操作,每一步操作不会直接写入数据库,而是先写入缓存,以便于数据回滚,取消先前的操作。
比如取前3个元素信息作为初始优化操作,得到如下元素信息:
{woTest:2,content:1,newWO:1,wostate:1}=>{woTest,content,newW O}
根据前3个元素信息所在的操作流,得到两两组合的元素信息组:
woTest与newWO的组合
woTest与wostate的组合
newWO与content的组合
将上述组合的优化规则配置为事务处理。
优化规则需要手动配置,默认优化规则是事务处理,优化规则配置如下表所示:
步骤102,基于所述操作流生成操作用例,发送执行所述操作用例的指令。
在该步骤中,客户端基于操作流生成操作用例,并发送执行所述操作用例的指令;服务端接收所述指令并执行所述操作用例,然后将执行结果返回给客户端。可选地,客户端基于所述操作流生成操作用例,重复发送执行所述操作用例的指令,直到接收到的执行结果为失败的操作用例的数量为零或者固定值;其中,针对每个操作用例:根据该操作用例对应的操作流中的各个元素信息分别生成操作指令,并按照各个元素信息之间的顺序,逐条发送所述操作指令。
一般来说,一个操作流可以生成一个操作用例,客户端可以重复多次发送执行该操作用例的指令,那么服务端重复多次执行所述操作用例,并返回执行结果。举例来说,假设客户端基于5个操作流分别生成了5个操作用例,并且分别重复发送10次执行操作用例的指令,如果失败的操作用例的数量为零,或者失败操作用例的数量为某一固定值,例如2、3、4等,则停止发送执行操作用例的指令。这说明这些操作用例都正常,或者已经定位到了失败的操作用例,无论再执行几次,并不会改变失败的操作用例的个数。本发明实施例通过不断运行操作用例来收集失败用例,再通过配置的优化规则表规则进行用例的加固和优化,提高了操作用例在执行过程中迭代加强执行稳定性。
可选地,所述客户端可以是Selenium客户端,所述服务端可以是Selenium服务端。Selenium是一系列基于Web的自动化工具,提供一套测试函数,用于支持Web自动化测试,函数非常灵活,能够完成界面元素定位、窗口跳转、结果比较。如图2和3所示,客户端与服务端建立Http连接,SMAgent与优化器建立TCP连接,客户端基于操作流生成操作用例,所述操作用例包括与各个元素信息对应的操作指令,例如操作指令1、操作指令2、操作指令3等,因此客户端逐条地向客户端发送操作指令,SMAgent接收操作指令1,SMAgent将操作指令发送给驱动器和优化器,并监听wire协议命令执行的状态,通过SMAgent提供的代理功能来判断指令的执行状态,优化器根据命令执行的状态信息读取事先设定好的优化规则配置来优化操作用例。其中,SMAgent是一个伪代理,用于模拟Restful Webservice接口提供的功能。因此,所述SMAgent可以实时地向客户端返回操作能否成功执行的状态,客户端可以据此配置优化规则,重新发送操作指令。
Webdriver是针对不同的浏览器开发的,不同的浏览器有不同的webdriver。例如针对Chrome使用的chromedriver,浏览器和相应的Webdriver对应。测试代码中包含了各种期望的对浏览器界面的操作,例如点击。测试代码通过给Webdriver发送操作指令,而Webdriver根据这些操作指令在浏览器界面上进行控制,由此测试代码达到了在浏览器界面上操作的目的。
现有的Web自动化技术基于v协议,属于异步执行,无法实时获取操作状态。但是,在本发明的实施例中,服务端每执行一个操作就返回一个操作的执行状态。在服务端执行操作指令的过程中,对于配置为事务处理的组合操作来说,当每一步操作状态都成功后,将缓存中的数据结果写入数据库。如果操作状态不成功,返回失败状态给客户端,并清空缓存的数据。
客户端等待,当服务端的驱动器(Webdriver)逐个执行操作指令后,向客户端返回最终的操作用例的执行结果。
步骤103,接收所述操作用例的执行结果,根据所述执行结果和所述操作文本优化所述操作流
在步骤102中,服务端向客户端返回了操作用例的执行结果,在步骤103中,所述客户端接收所述操作用例的执行结果,并根据所述执行结果和步骤101中的操作文本对操作流进行优化。
由于在步骤101中已将各个操作流及其对应的操作文本保存到语义库中,因此可以通过操作用例的执行结果定位操作流以及异常的页面元素,从而结合与匹配的操作文本对这个异常的操作流进行自动优化。可选地,步骤103可以包括:客户端接收所述操作用例的执行结果,定位所述执行结果中的异常结果;根据所述异常结果在所述语义库中匹配到目标文本信息及其所在的目标操作文本;采用所述目标文本信息的同义词替换所述目标文本信息在所述目标操作文本中的位置,从而优化所述操作流。
需要指出的是,可以预见建立同义词集合,从而可以基于同义词集合中的各个同义词来对目标文本信息进行替换,由此得到相应的替换后的操作文本,最后从这些替换后的操作文本中筛选出最优的操作文本,就可以得到与其匹配的操作流。
在得到优化后的操作流之后,还可以继续执行步骤102和步骤103,直到接收到的执行结果为失败的操作用例的数量为零。
根据上面所述的各种实施例,可以看出本发明通过根据用户在页面上操作得到的操作流生成对应的操作文本,基于操作流生成操作用例,并根据操作用例的执行结果和操作文本来优化操作流的技术手段,从而解决了用例执行不够稳定和人工更新代码段不够智能的问题。本发明实施例基于操作流生成对应的操作文本,也就是通过自然语言处理的方式对操作流进行优化,提高操作用例在执行过程中迭代加强执行稳定性,同时由于具备文本信息理解能力,当待测页面的元素信息发生变化时能够理解和推测执行场景,自动修复用例,使得自动化的执行更加智能。
图4是根据本发明一个可参考实施例的自动化测试方法的主要流程的示意图,所述自动化测试方法可以具体包括:
步骤401,根据用户在页面上操作得到的操作流生成对应的操作文本。
用户在页面上进行点击、输入等操作,因此可以根据用户在页面上的操作生成操作流,每个操作流中记录了用户在页面上的操作以及各个操作的前后顺序。其中,每个操作流包括多个元素信息以及各个元素信息之间的顺序。然后根据每个操作流中的各个元素信息以及各个元素信息之间的顺序,生成对应的操作文本。具体地,可以获取操作流中各个元素信息对应的文本信息,并根据所述各个元素信息之间的顺序,得到操作文本,将所述操作流及其对应的操作文本保存到语义库。其中,所述操作文本包括多个文本信息以及各个文本信息之间的顺序。
步骤402,基于所述操作流生成操作用例,发送执行所述操作用例的指令。
客户端基于操作流生成操作用例,并发送执行所述操作用例的指令;服务端接收所述指令并执行所述操作用例,然后将执行结果返回给客户端。可选地,客户端基于所述操作流生成操作用例,重复发送执行所述操作用例的指令,直到接收到的执行结果为失败的操作用例的数量为零或者固定值;其中,针对每个操作用例:根据该操作用例对应的操作流中的各个元素信息分别生成操作指令,并按照各个元素信息之间的顺序,逐条发送所述操作指令。
步骤403,接收所述操作用例的执行结果,定位所述执行结果中的异常结果。
客户端在接受到操作用例的执行结果后,分析所述执行结果,由此可以定位出所述执行结果中的异常结果。
步骤404,根据所述异常结果在所述语义库中匹配到目标文本信息及其所在的目标操作文本。
在定位出异常结果之后,所述客户端通过分析该异常结果定位出异常的元素信息,从而在语义库中匹配到目标文本信息及其所在的目标操作文本。
步骤405,采用所述目标文本信息的同义词替换所述目标文本信息在所述目标操作文本中的位置,从而优化所述操作流。
可选地,所述步骤405可以包括:在同义词集合中查找到与所述目标文本信息匹配的各个同义词;将所述各个同义词分别替换所述目标文本信息在所述目标操作文本中的位置,分别得到多个同义词操作文本;分别计算所述多个同义词操作文本与所述目标操作文本的相似度,将相似度大于预设阈值的同义词操作文本对应的操作流作为优化后的操作流。
举例来说,如果通过异常元素信息定位出的目标文本信息为新加工单,其所在的目标操作文本为新加工单(页面元素)+商品功能咨询(测试数据)+处理部门(页面元素),接着在同义词集合{新建工单,新增工单,新加工单}中获取同义词“新建工单”和“新增工单”,将这两个同义词替换“新加工单”,由此得到同义词操作文本:
新建工单(页面元素)+商品功能咨询(测试数据)+处理部门(页面元素)
新增工单(页面元素)+商品功能咨询(测试数据)+处理部门(页面元素)
然后分别计算这两个同义词操作文本与目标操作本文之前的相似度,将相似度大于预设阈值的同义词操作文本对应的操作流作为优化后的操作流。可选地,可以采用编辑距离来计算相似度。
接着,基于优化后的操作流生成操作用例,即重复上述测试步骤,直到接收到的执行结果为失败的操作用例的数量为零。因此,本发明实施例通过文本的相似度来优化操作用例,从而达到自动修复用例的效果。
另外,在本发明一个可参考实施例中自动化测试方法的具体实施内容,在上面所述自动化测试方法中已经详细说明了,故在此重复内容不再说明。
图5是根据本发明另一个可参考实施例的自动化测试方法的主要流程的示意图,所述自动化测试方法可以具体包括:
步骤501,记录用户在页面上的操作,从而得到操作流集合;其中,所述操作流集合包括多个操作流。
步骤502,从操作流集合中筛选出现频率最高的N个元素信息,根据所述N个元素信息所在的操作流,得到两两组合的元素信息组,将所述元素信息组的优化规则配置为事务处理;其中,N为正整数。
步骤503,获取各个操作流中各个元素信息对应的文本信息,并根据所述各个元素信息之间的顺序,得到多个操作文本;其中,所述操作文本包括多个文本信息以及各个文本信息之间的顺序。
步骤504,将各个操作流及其对应的操作文本保存到语义库,还可以将两两组合的元素信息组也存入语义库中。
步骤505,基于各个操作流分别生成各个操作用例,重复发送执行各个操作用例的指令。
步骤506,接收各个操作用例的执行结果,定位所述执行结果中的异常结果。
步骤507,根据所述异常结果在语义库中匹配到目标文本信息及其所在的目标操作文本。
步骤508,在同义词集合中查找到与所述目标文本信息匹配的各个同义词。
步骤509,将所述各个同义词分别替换所述目标文本信息在所述目标操作文本中的位置,分别得到多个同义词操作文本。
步骤510,分别计算各个同义词操作文本与目标操作文本之间的相似度,将相似度大于预设阈值的同义词操作文本对应的操作流作为优化后的操作流。
另外,在本发明另一个可参考实施例中自动化测试方法的具体实施内容,在上面所述自动化测试方法中已经详细说明了,故在此重复内容不再说明。
图6是根据本发明实施例的自动化测试装置的主要模块的示意图,如图6所示,所述自动化测试装置600包括文本模块601、发送模块602和优化模块603。其中,所述文本模块601用于根据用户在页面上操作得到的操作流,生成对应的操作文本;其中,每个操作流包括多个元素信息以及各个元素信息之间的顺序;所述发送模块602用于基于所述操作流生成操作用例,发送执行所述操作用例的指令;所述优化模块603用于接收所述操作用例的执行结果,根据所述执行结果和所述操作文本优化所述操作流。
可选地,所述文本模块601还用于:
记录用户在页面上的操作,从而得到操作流集合;其中,所述操作流集合包括至少一个操作流;
从所述操作流集合中筛选出现频率最高的N个元素信息,根据所述N个元素信息所在的操作流,得到两两组合的元素信息组,将所述元素信息组的优化规则配置为事务处理;
其中,N为正整数。
可选地,所述文本模块601用于:
获取用户在页面上操作得到的操作流中各个元素信息对应的文本信息,并根据所述各个元素信息之间的顺序,得到操作文本;其中,所述操作文本包括多个文本信息以及各个文本信息之间的顺序;
将所述操作流及其对应的操作文本保存到语义库。
可选地,所述发送模块602用于:
基于所述操作流生成操作用例,重复发送执行所述操作用例的指令,直到接收到的执行结果为失败的操作用例的数量为零或者固定值;
其中,针对每个操作用例:根据该操作用例对应的操作流中的各个元素信息分别生成操作指令,并按照各个元素信息之间的顺序,逐条发送所述操作指令。
可选地,所述优化模块603用于:
接收所述操作用例的执行结果,定位所述执行结果中的异常结果;
根据所述异常结果在所述语义库中匹配到目标文本信息及其所在的目标操作文本;
采用所述目标文本信息的同义词替换所述目标文本信息在所述目标操作文本中的位置,从而优化所述操作流。
可选地,采用所述目标文本信息的同义词替换所述目标文本信息在所述目标操作文本中的位置,从而优化所述操作流,包括:
在同义词集合中查找到与所述目标文本信息匹配的各个同义词;
将所述各个同义词分别替换所述目标文本信息在所述目标操作文本中的位置,分别得到多个同义词操作文本;
分别计算所述多个同义词操作文本与所述目标操作文本的相似度,将相似度大于预设阈值的同义词操作文本对应的操作流作为优化后的操作流。
根据上面所述的各种实施例,可以看出本发明通过根据用户在页面上操作得到的操作流生成对应的操作文本,基于操作流生成操作用例,并根据操作用例的执行结果和操作文本来优化操作流的技术手段,从而解决了用例执行不够稳定和人工更新代码段不够智能的问题。本发明实施例基于操作流生成对应的操作文本,也就是通过自然语言处理的方式对操作流进行优化,提高操作用例在执行过程中迭代加强执行稳定性,同时由于具备文本信息理解能力,当待测页面的元素信息发生变化时能够理解和推测执行场景,自动修复用例,使得自动化的执行更加智能。
需要说明的是,在本发明所述自动化测试装置的具体实施内容,在上面所述自动化测试方法中已经详细说明了,故在此重复内容不再说明。
图7示出了可以应用本发明实施例的自动化测试方法或自动化测试装置的示例性系统架构700。
如图7所示,系统架构700可以包括终端设备701、702、703,网络704和服务器705。网络704用以在终端设备701、702、703和服务器705之间提供通信链路的介质。网络704可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备701、702、703通过网络704与服务器704交互,以接收或发送消息等。终端设备701、702、703上可以安装有各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等(仅为示例)。
终端设备701、702、703可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务器705可以是提供各种服务的服务器,例如对用户利用终端设备701、702、703所浏览的购物类网站提供支持的后台管理服务器(仅为示例)。后台管理服务器可以对接收到的产品信息查询请求等数据进行分析等处理,并将处理结果(例如目标推送信息、产品信息——仅为示例)反馈给终端设备。
需要说明的是,本发明实施例所提供的自动化测试方法一般在公共场所的终端设备701、702、703上执行,也可以由服务器705执行,相应地,所述自动化测试装置一般设置在公共场所的终端设备701、702、703上,也可以设置在服务器705中。
应该理解,图7中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
下面参考图8,其示出了适于用来实现本发明实施例的终端设备的计算机系统800的结构示意图。图8示出的终端设备仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图8所示,计算机系统800包括中央处理单元(CPU)801,其可以根据存储在只读存储器(ROM)802中的程序或者从存储部分808加载到随机访问存储器(RAM)803中的程序而执行各种适当的动作和处理。在RAM 803中,还存储有系统800操作所需的各种程序和数据。CPU 801、ROM 802以及RAM803通过总线804彼此相连。输入/输出(I/O)接口805也连接至总线804。
以下部件连接至I/O接口805:包括键盘、鼠标等的输入部分806;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分807;包括硬盘等的存储部分808;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分809。通信部分809经由诸如因特网的网络执行通信处理。驱动器810也根据需要连接至I/O接口805。可拆卸介质811,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器810上,以便于从其上读出的计算机程序根据需要被安装入存储部分808。
特别地,根据本发明公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分809从网络上被下载和安装,和/或从可拆卸介质811被安装。在该计算机程序被中央处理单元(CPU)801执行时,执行本发明的系统中限定的上述功能。
需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本发明中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本发明实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的模块也可以设置在处理器中,例如,可以描述为:一种处理器包括文本模块、发送模块和优化模块,其中,这些模块的名称在某种情况下并不构成对该模块本身的限定。
作为另一方面,本发明还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备包括:根据用户在页面上操作得到的操作流,生成对应的操作文本;其中,每个操作流包括多个元素信息以及各个元素信息之间的顺序;基于所述操作流生成操作用例,发送执行所述操作用例的指令;接收所述操作用例的执行结果,根据所述执行结果和所述操作文本优化所述操作流。
根据本发明实施例的技术方案,因为采用根据用户在页面上操作得到的操作流生成对应的操作文本,基于操作流生成操作用例,并根据操作用例的执行结果和操作文本来优化操作流的技术手段,所以克服了用例执行不够稳定和人工更新代码段不够智能的技术问题。本发明实施例基于操作流生成对应的操作文本,也就是通过自然语言处理的方式对操作流进行优化,提高操作用例在执行过程中迭代加强执行稳定性,同时由于具备文本信息理解能力,当待测页面的元素信息发生变化时能够理解和推测执行场景,自动修复用例,使得自动化的执行更加智能。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。
Claims (14)
1.一种自动化测试方法,其特征在于,包括:
根据用户在页面上操作得到的操作流,生成对应的操作文本;其中,每个操作流包括多个元素信息以及各个元素信息之间的顺序;
基于所述操作流生成操作用例,发送执行所述操作用例的指令;
接收所述操作用例的执行结果,根据所述执行结果和所述操作文本优化所述操作流。
2.根据权利要求1所述的方法,其特征在于,在根据用户在页面上的操作流生成对应的操作文本之前,还包括:
记录用户在页面上的操作,从而得到操作流集合;其中,所述操作流集合包括至少一个操作流;
从所述操作流集合中筛选出现频率最高的N个元素信息,根据所述N个元素信息所在的操作流,得到两两组合的元素信息组,将所述元素信息组的优化规则配置为事务处理;
其中,N为正整数。
3.根据权利要求1所述的方法,其特征在于,根据用户在页面上操作得到的操作流,生成对应的操作文本,包括:
获取用户在页面上操作得到的操作流中各个元素信息对应的文本信息,并根据所述各个元素信息之间的顺序,得到操作文本;其中,所述操作文本包括多个文本信息以及各个文本信息之间的顺序;
将所述操作流及其对应的操作文本保存到语义库。
4.根据权利要求3所述的方法,其特征在于,基于所述操作流生成操作用例,发送执行所述操作用例的指令,包括:
基于所述操作流生成操作用例,重复发送执行所述操作用例的指令,直到接收到的执行结果为失败的操作用例的数量为零或者固定值;
其中,针对每个操作用例:根据该操作用例对应的操作流中的各个元素信息分别生成操作指令,并按照各个元素信息之间的顺序,逐条发送所述操作指令。
5.根据权利要求4所述的方法,其特征在于,接收所述操作用例的执行结果,根据所述执行结果和所述操作文本优化所述操作流,包括:
接收所述操作用例的执行结果,定位所述执行结果中的异常结果;
根据所述异常结果在所述语义库中匹配到目标文本信息及其所在的目标操作文本;
采用所述目标文本信息的同义词替换所述目标文本信息在所述目标操作文本中的位置,从而优化所述操作流。
6.根据权利要求5所述的方法,其特征在于,采用所述目标文本信息的同义词替换所述目标文本信息在所述目标操作文本中的位置,从而优化所述操作流,包括:
在同义词集合中查找到与所述目标文本信息匹配的各个同义词;
将所述各个同义词分别替换所述目标文本信息在所述目标操作文本中的位置,分别得到多个同义词操作文本;
分别计算所述多个同义词操作文本与所述目标操作文本的相似度,将相似度大于预设阈值的同义词操作文本对应的操作流作为优化后的操作流。
7.一种自动化测试装置,其特征在于,包括:
文本模块,用于根据用户在页面上操作得到的操作流,生成对应的操作文本;其中,每个操作流包括多个元素信息以及各个元素信息之间的顺序;
发送模块,用于基于所述操作流生成操作用例,发送执行所述操作用例的指令;
优化模块,用于接收所述操作用例的执行结果,根据所述执行结果和所述操作文本优化所述操作流。
8.根据权利要求7所述的装置,其特征在于,所述文本模块还用于:
记录用户在页面上的操作,从而得到操作流集合;其中,所述操作流集合包括至少一个操作流;
从所述操作流集合中筛选出现频率最高的N个元素信息,根据所述N个元素信息所在的操作流,得到两两组合的元素信息组,将所述元素信息组的优化规则配置为事务处理;
其中,N为正整数。
9.根据权利要求7所述的装置,其特征在于,所述文本模块用于:
获取用户在页面上操作得到的操作流中各个元素信息对应的文本信息,并根据所述各个元素信息之间的顺序,得到操作文本;其中,所述操作文本包括多个文本信息以及各个文本信息之间的顺序;
将所述操作流及其对应的操作文本保存到语义库。
10.根据权利要求9所述的装置,其特征在于,所述发送模块用于:
基于所述操作流生成操作用例,重复发送执行所述操作用例的指令,直到接收到的执行结果为失败的操作用例的数量为零或者固定值;
其中,针对每个操作用例:根据该操作用例对应的操作流中的各个元素信息分别生成操作指令,并按照各个元素信息之间的顺序,逐条发送所述操作指令。
11.根据权利要求10所述的装置,其特征在于,所述优化模块用于:
接收所述操作用例的执行结果,定位所述执行结果中的异常结果;
根据所述异常结果在所述语义库中匹配到目标文本信息及其所在的目标操作文本;
采用所述目标文本信息的同义词替换所述目标文本信息在所述目标操作文本中的位置,从而优化所述操作流。
12.根据权利要求11所述的装置,其特征在于,采用所述目标文本信息的同义词替换所述目标文本信息在所述目标操作文本中的位置,从而优化所述操作流,包括:
在同义词集合中查找到与所述目标文本信息匹配的各个同义词;
将所述各个同义词分别替换所述目标文本信息在所述目标操作文本中的位置,分别得到多个同义词操作文本;
分别计算所述多个同义词操作文本与所述目标操作文本的相似度,将相似度大于预设阈值的同义词操作文本对应的操作流作为优化后的操作流。
13.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-6中任一所述的方法。
14.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1-6中任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910307487.0A CN111831536A (zh) | 2019-04-17 | 2019-04-17 | 一种自动化测试方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910307487.0A CN111831536A (zh) | 2019-04-17 | 2019-04-17 | 一种自动化测试方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111831536A true CN111831536A (zh) | 2020-10-27 |
Family
ID=72915527
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910307487.0A Pending CN111831536A (zh) | 2019-04-17 | 2019-04-17 | 一种自动化测试方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111831536A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112699040A (zh) * | 2020-12-30 | 2021-04-23 | 深圳前海微众银行股份有限公司 | 压力测试方法、装置、设备及计算机可读存储介质 |
CN112925725A (zh) * | 2021-04-09 | 2021-06-08 | 网易(杭州)网络有限公司 | 数据测试方法和装置、可读存储介质、电子设备 |
CN113127354A (zh) * | 2021-04-21 | 2021-07-16 | 武汉思普崚技术有限公司 | 基于Web UI的自动化测试方法、装置、设备及存储介质 |
-
2019
- 2019-04-17 CN CN201910307487.0A patent/CN111831536A/zh active Pending
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112699040A (zh) * | 2020-12-30 | 2021-04-23 | 深圳前海微众银行股份有限公司 | 压力测试方法、装置、设备及计算机可读存储介质 |
CN112699040B (zh) * | 2020-12-30 | 2024-02-23 | 深圳前海微众银行股份有限公司 | 压力测试方法、装置、设备及计算机可读存储介质 |
CN112925725A (zh) * | 2021-04-09 | 2021-06-08 | 网易(杭州)网络有限公司 | 数据测试方法和装置、可读存储介质、电子设备 |
CN112925725B (zh) * | 2021-04-09 | 2024-03-15 | 网易(杭州)网络有限公司 | 数据测试方法和装置、可读存储介质、电子设备 |
CN113127354A (zh) * | 2021-04-21 | 2021-07-16 | 武汉思普崚技术有限公司 | 基于Web UI的自动化测试方法、装置、设备及存储介质 |
CN113127354B (zh) * | 2021-04-21 | 2023-08-11 | 武汉思普崚技术有限公司 | 基于Web UI的自动化测试方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11146286B2 (en) | Compression of JavaScript object notation data using structure information | |
CN110807067B (zh) | 关系型数据库和数据仓库的数据同步方法、装置及设备 | |
CN109871311B (zh) | 一种推荐测试用例的方法和装置 | |
CN111190888A (zh) | 一种管理图数据库集群的方法和装置 | |
CN109522341B (zh) | 实现基于sql的流式数据处理引擎的方法、装置、设备 | |
CN110858172A (zh) | 一种自动化测试代码生成方法和装置 | |
CN111782546B (zh) | 一种基于机器学习的自动接口测试方法及装置 | |
CN111831536A (zh) | 一种自动化测试方法和装置 | |
CN109002389B (zh) | 页面自动化测试的方法和装置 | |
CN109872230B (zh) | 金融数据分析系统的测试方法、装置、介质、电子设备 | |
CN112154420A (zh) | 自动智能云服务测试工具 | |
CN110688096A (zh) | 包含插件的应用程序的构建方法、装置、介质及电子设备 | |
CN114297278A (zh) | 批量数据快速写入方法、系统和装置 | |
CN111427899A (zh) | 存储文件的方法、装置、设备和计算机可读介质 | |
CN111178052A (zh) | 构建机器人流程自动化应用的方法和装置 | |
CN117130990A (zh) | 一种数据处理方法和装置 | |
WO2023083066A1 (zh) | 数据同步方法和装置 | |
CN113138974B (zh) | 数据库合规检测的方法和装置 | |
CN112148762A (zh) | 一种实时数据流的统计方法和装置 | |
CN111008202A (zh) | 分布式事务处理方法和框架 | |
CN115146070A (zh) | 键值生成方法、知识图谱生成方法、装置、设备及介质 | |
CN114741158A (zh) | 页面切换方法、装置、设备以及存储介质 | |
CN113760890A (zh) | 关系型数据库管理的方法和装置 | |
CN112783903A (zh) | 生成更新日志的方法和装置 | |
CN111290870A (zh) | 一种检测异常的方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |