一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种UI自动化测试方法、装置、电子设备及存储介质与流程

2022-02-22 22:31:17 来源:中国专利 TAG:

一种ui自动化测试方法、装置、电子设备及存储介质
技术领域
1.本发明涉及软件测试技术领域,具体涉及一种ui自动化测试方法、装置、电子设备及存储介质。


背景技术:

2.随着软件行业的发展,以用户需求进化为核心的敏捷软件开发模型逐渐深入人心。快速迭代、循序渐进是敏捷开发的显著特征,但这无疑拉长了软件测试的周期。版本迭代时,大量重复性、基础性的测试工作大大降低了软件测试人员的效率,此时使用自动化测试代替手工测试进行此类工作就显得尤为关键。
3.自动化测试一般分为接口自动化测试和ui自动化测试,对于ui自动化测试往往采用串行的方式执行,即一个脚本运行完才会运行另一个脚本,这样运行效率往往较低。为解决运行效率低的问题,往往会多机器分布式执行,例如首先在各个执行机上安装好浏览器和对应驱动和配套的编程语言环境,然后创建测试执行任务,选择多个执行机,任务执行时会查询处于空闲的执行机,如果空闲则选择这台执行机,如果没有则等待直到机器空闲,最后把所有机器上的执行结果归集到一起生成测试报告,这样会占用比较多的硬件资源。


技术实现要素:

4.有鉴于此,本发明实施例提供了一种ui自动化测试方法、装置、电子设备及存储介质,以解决ui自动化测试运行效率低的问题。
5.根据第一方面,本发明实施例提供了一种ui自动化测试方法,包括:在用例添加后,形成所述用例的多个测试脚本;对所述多个测试脚本按照业务管理模块进行分类,将属于同一业务管理模块的测试脚本归为一类,得到至少两类测试脚本;利用属于同一类的测试脚本构建执行任务,得到至少两个执行任务;采用并发的方式调度所述执行任务对所述用例进行测试。
6.本发明实施例提供的ui自动化测试方法,通过对根据用例形成的多个测试脚本按照业务管理模块进行分类,将属于同一业务管理模块的测试脚本归为一类,得到至少两类测试脚本;利用属于同一类的测试脚本构建执行任务,得到至少两个执行任务;从而可以采用并发的方式调度所述执行任务对所述用例进行测试,也就是说在一台机器上构建多线程,同时运行多个执行任务。较之前串行执行大大缩减了测试执行时间,而且并发操作在一台机器上即可执行,节省了硬件资源。
7.结合第一方面,在第一方面第一实施方式中,在用例添加后,形成所述用例的多个测试脚本包括:在用例添加后,获取所述用例的页面元素对象;确定与所述页面元素对象相对应的操作方式;利用所述操作方式和所述页面元素对象组合拼接成测试步骤及预期结果,并填入测试数据,形成多个测试脚本。
8.结合第一方面,在第一方面第二实施方式中,所述利用属于同一类的测试脚本构建执行任务包括:将属于同一类的测试脚本添加进一个测试套并选定全局变量、运行浏览
器和执行机,得到执行任务。
9.结合第一方面第一实施方式,在第一方面第三实施方式中,所述获取所述用例的页面元素对象包括:利用页面捕捉或图像识别的方式来获取所述用例的页面元素对象;和/或,所述确定与所述页面元素对象相对应的操作方式包括:根据所述页面元素对象,利用预设的页面元素对象与操作方式之间的对应关系,确定与所述页面元素对象相对应的操作方式。
10.结合第一方面第一实施方式,在第一方面第四实施方式中,所述测试脚本中包括所述页面元素对象的等待页面加载时间和/或等待页面元素出现时间。
11.结合第一方面第四实施方式,在第一方面第五实施方式中,所述等待页面加载时间和/或等待页面元素出现时间根据所述网页应用加载时间确定。
12.结合第一方面,在第一方面第六实施方式中,在利用所述测试脚本、所述页面元素对象和所述操作方式对所述用例进行测试之后,还包括:分别获取所述用例的测试结果和预期结果;获取所述测试结果和所述预期结果的对比方式;当所述对比方式为包含关系时,在所述测试脚本中添加自定义操作方式。
13.根据第二方面,本发明实施例还提供了一种ui自动化测试装置,包括测试脚本形成模块、分类模块、执行任务形成模块和调度模块;在用例添加后,测试脚本形成模块用于形成所述用例的多个测试脚本;分类模块用于对所述多个测试脚本按照业务管理模块进行分类,将属于同一业务管理模块的测试脚本归为一类,得到至少两类测试脚本;执行任务形成模块用于利用属于同一类的测试脚本构建执行任务,得到至少两个执行任务;调度模块用于采用并发的方式调度所述执行任务对所述用例进行测试。
14.根据第三方面,本发明实施例还提供了一种电子设备,包括存储器和处理器,所述存储器和所述处理器之间互相通信连接,所述存储器中存储有计算机指令,所述处理器通过执行所述计算机指令,从而执行第一方面或者第一方面的任意一种实施方式中所述ui自动化测试方法。
15.根据第四方面,本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使所述计算机执行第一方面或者第一方面的任意一种实施方式中所述ui自动化测试方法。
附图说明
16.通过参考附图会更加清楚的理解本发明的特征和优点,附图是示意性的而不应理解为对本发明进行任何限制,在附图中:
17.图1为本发明实施例1中ui自动化测试方法的流程示意图;
18.图2为本发明实施例1中ui自动化测试装置的结构示意图。
具体实施方式
19.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
20.实施例1
21.本发明实施例1提供了一种ui自动化测试方法。图1为本发明实施例1中ui自动化测试方法的流程示意图,如图1所示,本发明实施例1的ui自动化测试方法包括以下步骤:
22.s101:在用例添加后,形成所述用例的多个测试脚本。
23.在本发明实施例1中,用例指的是测试用例,包含测试步骤、测试数据和预期结果。比如一个测试网页登录的用例,测试步骤包括:(1)在登录页输入合法的用户名密码(test/admin@1234),点击登录,有登录成功的预期结果;(2)在登录页输入错误的用户名密码(test/1234),点击登录,有登录失败的预期结果。其中,需要填入的参数例如test/admin@1234属于测试数据。
24.作为具体的实施方式,在用例添加后,形成所述用例的多个测试脚本可以采用如下方案:在用例添加后,获取所述用例的页面元素对象;确定与所述页面元素对象相对应的操作方式;利用所述操作方式和所述页面元素对象组合拼接成测试步骤及预期结果,并填入测试数据,形成多个测试脚本。
25.具体的,所述操作方式可以理解为对页面的操作以及对页面元素的校验,比如单机、双击、输入文本,校验页面元素是否存在、校验页面元素的属性值是否正确等。
26.通常情况下,一个测试用例有多个页面元素对象。具体的,获取所述用例的页面元素对象可以采用如下方案:利用页面捕捉或图像识别的方式来获取所述用例的页面元素对象。具体的,页面捕捉可以通过katalon studio自带的对象捕捉工具可以快速获取页面元素,包含页面元素的xpath路径以及各种attributes。在页面捕捉中用到的页面元素定位符包括但不限于以下几种:id、name、link text、tag name、class name、css、xpath、image。对于一些难以定位的页面元素还可以使用图像识别的方法来补充获取页面元素。
27.除此之外,当利用页面捕捉或图像识别的方式未获取所述用例的页面元素对象时,还可以发出页面元素对象获取失败的指令,并接收创建的页面元素对象。当用户接收到这个指令时,可以采用手工创建的方式来获取所述用例的页面元素对象。也就是说,当利用页面捕捉或图像识别的方式未获取所述用例的页面元素对象时,可以采用编写css路径,手工添加对象的方法,来保证对象定位的稳定性。
28.具体的,所述确定与所述页面元素对象相对应的操作方式可以采用如下方案:根据所述页面元素对象,利用预设的页面元素对象与操作方式之间的对应关系,确定与所述页面元素对象相对应的操作方式。其中,可以在脚本中预先规定页面元素对象与操作方式之间的对应关系,也就是说,选用合适的操作方式来操作获取的页面元素对象,以模拟用户的真实页面操作。具体的,由于对页面元素对象一般情况下为比较常见的操作,如打开、关闭浏览器、点击按钮、输入文本等,所以此处的操作方式一般为内置操作方式。
29.s102:对所述多个测试脚本按照业务管理模块进行分类,将属于同一业务管理模块的测试脚本归为一类,得到至少两类测试脚本。
30.示例的,业务管理模块可以包括产品管理、项目管理、文档管理、系统设置等。
31.具体的,所述利用属于同一类的测试脚本构建执行任务可以采用如下方案:将属于同一类的测试脚本添加进一个测试套并选定全局变量、运行浏览器和执行机,得到执行任务。其中,全局变量指的是作用域为全部测试脚本的变量,即在全部脚本中都可以调用这个变量;与之对应的是局部变量,即只能在单个脚本中进行调用的变量。
32.示例的,比如一款产品追溯系统的网站,有产品管理、项目管理、文档管理、系统设置等模块,我们将各个模块的增、删、改、查等功能脚本分别添加进不同的测试套,例如,将产品管理增、删、改、查的脚本装进测试套1,将项目管理增、删、改、查的脚本装进测试套2,;将文档管理增、删、改、查的脚本装进测试套3;将系统设置增、删、改、查的脚本装进测试套4。然后对于不同的测试套分别选取选定全局变量、运行浏览器和执行机,既可以是本地机器也可以是远程虚拟机,这样构成一个个执行任务。最后设定好并发数量,构建好多线程,采用并发的方式同时调度这多个执行任务。其中,测试套是指由测试脚本、变量、前置步骤、后置步骤构成的一个测试集合。
33.s103:利用属于同一类的测试脚本构建执行任务,得到至少两个执行任务。
34.s104:采用并发的方式调度所述执行任务对所述用例进行测试。
35.作为具体的实施方式,并发数量可以根据运行脚本的机器性能而定,保证内存和cpu占用正常即可。
36.本发明实施例1提供的ui自动化测试方法,具有如下优点:
37.1、提高了测试执行效率,并发调度的方式较之串行执行大大缩减了测试执行时间。
38.2、节省了硬件资源,无需占用过多执行机器,在一台机器上即可并发多个执行任务。
39.3、避免了冲突导致的脚本非正常执行,因为如果不分模块执行的话,会因为对同一模块的数据进行增、删、改、查出现冲突从而引发脚本非正常报错。例如,两个脚本,一个验证页面产品全量删除功能,一个验证产品修改功能。如果将这两个脚本分在两个测试执行任务里执行,如果先执行了删除脚本,刚好修改的脚本也在同步执行,那么就会没有数据可供修改,造成冲突。而如果同一模块的放在一个测试执行任务里串行执行(即一个执行完才会执行下一个),就不会出现这类问题。
40.作为进一步的实施方式,所述测试脚本中包括所述页面元素对象的等待页面加载时间和/或等待页面元素出现时间。这是因为当前技术通常会使用一些硬性的等待条件来处理脚本运行过程中页面响应的时延问题,这样的话经常会因为带宽、网络稳定性、执行计算机性能等方面因素导致脚本运行失败,测试执行稳定性较差;即受网速、计算机性能影响,相同脚本在不同时间段的执行结果可能有所差异,为处理这种运行稳定性问题,我们将采用智能等待的方法。
41.本发明实施例中智能等待可以合理处理这种问题,通过判断页面、元素、图片等是否加载来处理等待问题,解决了时延方面导致的脚本运行稳定性问题。具体的,智能等待指的是等待页面加载、等待页面元素出现、等待图片出现的作用,即:在规定的时间内,页面未加载完全/元素/图片尚未出现时,继续执行等待操作直到页面完全加载/元素/图片出现;在规定的时间内,页面加载完全/元素/图片已出现时,结束等待,自动执行下个操作步骤;超过规定的时间,页面加载未加载完全/元素/图片未出现,给出合理报错提示。全局变量是关键字中需要填入的参数,依据页面、元素预期加载时间而定,当系统功能有所变动导致整体页面、元素预期加载时间有所变动时,只需调整全局参数,无需调整每个脚本里的参数。
42.详细步骤如下:
43.1、设置预计加载时间;
44.2、在预计时间内按固定周期循环查找页面html,页面元素、图片;
45.3、在规定的时间内,页面未加载完全/元素/图片尚未出现时,继续执行等待操作直到页面完全加载/元素/图片出现;在规定的时间内,页面加载完全/元素/图片已出现时,结束等待,自动执行下个操作步骤;超过规定的时间,页面加载未加载完全/元素/图片未出现,给出合理报错提示。
46.具体的,等待页面加载:在脚本步骤执行之前等待页面完全加载。
47.等待页面元素出现:有时页面加载出来后,页面元素还需要更长时间才能出现。该操作方式将暂停执行,直到页面元素出现才会进行下一步操作。
48.等待图片出现:有时页面元素加载出来后,图片还需要更长时间才能出现。该操作方式将暂停执行,直到图片出现才会进行下一步操作。
49.定义全局等待参数:在全局变量中定义长等待、中等待、短等待时间,在脚本中根据网页应用加载时间选取不同的全局变量。
50.作为进一步的实施方式,在利用所述测试脚本、所述页面元素对象和所述操作方式对所述用例进行测试之后,还包括:分别获取所述用例的测试结果和预期结果;获取所述测试结果和所述预期结果的对比方式;当所述对比方式为包含关系时,在所述测试脚本中添加自定义操作方式。这是因为如果不封装成自定义操作方式的话,新增的脚本如果需要用到这种对比方式时就要新增许多重复的代码。而将其封装成自定义关键字的话每次需要用到时只需要调度一下自定义关键字即可,提升了便捷性,缩减了代码量。
51.由此可见,本发明实施例1提供的ui自动化测试方法具有以下优点:
52.1.提高软件测试效率,由手工测试转为自动化测试,避免重复工作,降低版本迭代时的人力投入。
53.2.回归测试周期大大缩减,由原先的几天缩短至几小时。
54.3.页面元素对象创建快捷、灵活。
55.4.关键字驱动,操作简单,脚本写作效率高。
56.5.通过智能等待处理页面加载的时延问题,提高了脚本运行的稳定性。
57.实施例2
58.与本发明实施例1相对应,本发明实施例2提供了一种ui自动化测试装置。图2为本发明实施例1中ui自动化测试装置的结构示意图,如图2所示,本发明实施例2的ui自动化测试装置包括测试脚本形成模块20、分类模块21、执行任务形成模块22和调度模块23。
59.具体的,测试脚本形成模块20,在用例添加后,用于形成所述用例的多个测试脚本;
60.分类模块21,用于对所述多个测试脚本按照业务管理模块进行分类,将属于同一业务管理模块的测试脚本归为一类,得到至少两类测试脚本;
61.执行任务形成模块22,用于利用属于同一类的测试脚本构建执行任务,得到至少两个执行任务;
62.调度模块23,用于采用并发的方式调度所述执行任务对所述用例进行测试。
63.上述ui自动化测试装置具体细节可以对应参阅图1所示的实施例中对应的相关描述和效果进行理解,此处不再赘述。
64.实施例3
65.本发明实施例还提供了一种电子设备,该电子设备可以包括处理器和存储器,其中处理器和存储器可以通过总线或者其他方式连接。
66.处理器可以为中央处理器(central processing unit,cpu)。处理器还可以为其他通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等芯片,或者上述各类芯片的组合。
67.存储器作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序、非暂态计算机可执行程序以及模块,如本发明实施例中的车载显示装置按键屏蔽方法对应的程序指令/模块(例如,图2所示的测试脚本形成模块20、分类模块21、执行任务形成模块22和调度模块23)。处理器通过运行存储在存储器中的非暂态软件程序、指令以及模块,从而执行处理器的各种功能应用以及数据处理,即实现上述方法实施例中的ui自动化测试方法。
68.存储器可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储处理器所创建的数据等。此外,存储器可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施例中,存储器可选包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至处理器。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
69.所述一个或者多个模块存储在所述存储器中,当被所述处理器执行时,执行如图1所示实施例中的ui自动化测试方法。
70.上述电子设备具体细节可以对应参阅图1至图2所示的实施例中对应的相关描述和效果进行理解,此处不再赘述。
71.本领域技术人员可以理解,实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述存储介质可为磁碟、光盘、只读存储记忆体(read-only memory,rom)、随机存储记忆体(random access memory,ram)、快闪存储器(flash memory)、硬盘(hard disk drive,缩写:hdd)或固态硬盘(solid-state drive,ssd)等;所述存储介质还可以包括上述种类的存储器的组合。
72.虽然结合附图描述了本发明的实施例,但是本领域技术人员可以在不脱离本发明的精神和范围的情况下作出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献