一种UI自动化回归测试方法、系统、电子设备及存储介质与流程

文档序号:31411396发布日期:2022-09-03 09:50阅读:85来源:国知局
一种UI自动化回归测试方法、系统、电子设备及存储介质与流程
一种ui自动化回归测试方法、系统、电子设备及存储介质
技术领域
1.本发明涉及web页面的测试技术领域,具体涉及一种ui自动化回归测试方法、系统、电子设备及存储介质。


背景技术:

2.随着公司业务的快速发展,部门负责的前台页面越来越多。当前部门采用敏捷开发的模式,每个迭代的周期非常短,因此测试也必须敏捷测试。
3.ui自动化测试可以最真实的模拟用户操作,仅对服务端接口的测试不涉及到前端层面,光从接口并不能判断系统和主流程是否存在漏洞,但通过ui自动化测试至少可以保证验证的点是否通畅。而目前的回归测试,只采用手工回归会增加大量重复人力成本,同时还存在以下缺点:
4.(1)元素属性未统一管理:现有ui自动化脚本实现时,将元素属性都直接保存在不同的用例脚本中,元素属性发生变化时需要修改所有涉及到的脚本,容易产生遗漏;
5.(2)公用方法未封装处理:现有ui自动化脚本实现时,不同的脚本重复实现了相同的业务功能(如登录、下单等功能);
6.(3)部分脚本实际适用性较差:现有ui自动化脚本实现时,等待元素加载等功能使用了比较直接的硬等待处理(如代码中固定写5s后开始操作),实际情况下,不同网络环境不同设备上,页面加载的时间是不同的,所以代码中直接硬等待的处理是不适合的。


技术实现要素:

7.本发明实施例的目的在于提供一种ui自动化回归测试方法、系统、电子设备及存储介质,用以解决现有元素属性未统一管理、公用方法未封装处理部分脚本实际适用性差的问题。
8.为实现上述目的,下面通过四个方面进一步阐述本发明实施例的内容:
9.第一方面,提供了一种ui自动化回归测试方法,其特征在于,所述方法包括如下步骤:
10.从获取的配置文件中读取执行环境信息和元素信息;
11.根据元素信息在执行环境中查找获得相应元素;
12.向所述元素下发调用的操作指令,获得元素的操作结果;
13.对操作结果进行校验,获得校验结果。
14.结合第一方面,从获取的配置文件中读取执行环境信息和元素信息的方法包括如下步骤:
15.获取配置文件,读取在所述配置文件中配置的执行环境信息和元素信息;
16.所述执行环境信息包括待执行的浏览器类型,所述元素信息包括元素的属性和定位方式。
17.结合第一方面,所述配置文件中包括若干设置在不同页面和相同页面的所述元
素,根据页面的归属地对所述元素进行集中管理。
18.结合第一方面,根据页面的归属地对所述元素进行集中管理的方法包括如下步骤:
19.将设置在不同页面的所述元素在所述配置文件中采用不同的区域进行分割;
20.将设置在相同页面的所述元素在所述配置文件中集中在同一个区域。
21.结合第一方面,根据元素信息在执行环境中查找获得相应元素的方法包括如下步骤:
22.获取待执行的浏览器,使用数据包模拟调起web浏览器;
23.根据元素的属性或定位方式在浏览器加载页面过程中实时查找元素;
24.页面加载完成后重复查找若干次,若查找成功则将元素在浏览器中高亮显示,若查找失败则对查找失败的元素进行截图保存。
25.结合第一方面,向所述元素下发调用的操作指令,获得元素的操作结果的方法包括如下步骤:
26.根据查找出的元素的属性选择操作指令;
27.向元素下发与所述元素对应的操作指令;
28.元素根据操作指令执行操作,并获得页面反馈的操作结果;
29.其中,所述操作指令根据指令功能进行集成封装,形成操作指令组。
30.结合第一方面,对操作结果进行校验,获得校验结果的方法包括如下步骤:
31.根据页面反馈的操作结果与预期的结果进行校验;
32.校验完成后,若操作结果和预期结果一致,将测试结果标记为成功;
33.若不一致,表示操作结果和预期结果有差异,则标记为失败,同时获取当前浏览器截图。
34.第二方面,提供了一种ui自动化回归测试系统,所述系统包括:
35.信息获取模块:用于从获取的配置文件中读取执行环境信息和元素信息;
36.查找模块:用于根据元素信息在执行环境中查找获得相应元素;
37.运行模块:用于向所述元素下发调用的操作指令,获得元素的操作结果;
38.校验模块:用于对操作结果进行校验,获得校验结果。
39.第三方面,提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如第一方面任一项所述的ui自动化回归测试方法的步骤。
40.第四方面,提供了一种非暂态计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如第一方面中的任一项所述的ui自动化回归测试的步骤:
41.本发明实施例具有如下优点:
42.1、元素信息统一管理,用例脚本更简洁且后续修改维护更方便;
43.2、元素查找增加重试机制,最大程度上避免了因环境不稳定造成的用例失败,节约了测试时间;
44.3、元素查找和操作统一封装,入口统一,功能可以复用,不需要重复实现相同的功能;
45.4、增加了元素高亮、失败截图等功能,降低了后续定位和分析问题的门槛;
46.5、框架复用性高、鲁棒性强,可以大大降低手工回归成本。
附图说明
47.为了更清楚地说明本发明的实施方式或现有技术中的技术方案,下面将对实施方式或现有技术描述中所需要使用的附图作简单地介绍。显而易见地,下面描述中的附图仅仅是示例性的,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图引伸获得其它的实施附图。
48.本说明书所绘示的结构、比例、大小等,均仅用以配合说明书所揭示的内容,以供熟悉此技术的人士了解与阅读,并非用以限定本发明可实施的限定条件,故不具技术上的实质意义,任何结构的修饰、比例关系的改变或大小的调整,在不影响本发明所能产生的功效及所能达成的目的下,均应仍落在本发明所揭示的技术内容得能涵盖的范围内。
49.图1为本发明实施例提供的方法流程示意图。
50.图2为本发明实施例提供的系统框图。
51.图3为本发明实施例提供的配置文件元素管理示意图。
52.图4为本发明实施例提供的元素查找成功高亮示意图。
53.图5为本发明实施例提供的方法操作步骤示意图。
具体实施方式
54.以下由特定的具体实施例说明本发明的实施方式,熟悉此技术的人士可由本说明书所揭露的内容轻易地了解本发明的其他优点及功效,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
55.在本发明的描述中,需要理解的是,术语“中心”、“纵向”、“横向”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”等的特征可以明示或者隐含地包括一个或者更多个该特征。在本发明的描述中,除非另有说明,“多个”的含义是两个或两个以上。
56.在本发明的描述中,需要说明的是,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以通过具体情况理解上述术语在本发明中的具体含义。
57.本发明提供的方法,ui自动化的基本流程为:使用脚本语言按照元素的属性一定的方法规则,查找到需要操作的web页面的元素,并对该元素下发具体的指令(如点击按钮、输入文本、下拉选择等)。将多个元素操作整合组装起来,并与预期结果进行校验,最终达到测试目的;
selenium包。
78.s103:读取配置文件中的元素信息:
79.为了避免元素属性发生变化时,对所有涉及到的脚本进行修改而产生遗漏的问题,本发明提出将元素统一在一个配置文件中统一管理的方案;
80.将在不同页面的元素采用不同的区分割,即如图3为本发明实施例提供的配置文件元素管理示意图,图中的“xxl”和“apollo”代表着两个不同的页面;
81.将在相同页面的元素放在同一个区域下,采用key/value的方式表示该元素可以通过怎样的方式定位到,如loginusernameinput表示的是可以通过name=username的方式定位到,而loginconfirmbtn可以通过xpath=//*[@id="loginform"]/div/div[3]/div[2]/button的方式定位到。
[0082]
s2:根据元素信息在执行环境中查找获得相应元素;
[0083]
具体实施步骤包括:
[0084]
获取待执行的浏览器,使用数据包模拟调起web浏览器;
[0085]
根据元素的属性或定位方式在浏览器加载页面过程中实时查找元素;
[0086]
页面加载完成后重复查找若干次,若查找成功则将元素在浏览器中高亮显示,若查找失败则对查找失败的元素进行截图保存。
[0087]
该步骤主要为在获取到执行环境信息和元素信息后,在页面中定位查找到元素并对其进行操作:
[0088]
s201:根据元素信息在页面上查找元素:
[0089]
在s103中获取到元素的属性,可以看到不同的元素支持采用不同的方式(name/class/id/xpath等)获取,但为了解决公用方法未封装处理和部分脚本实际适用性较差的问题,需要将查找元素统一封装处理,提供唯一入口供测试脚本调用,方便定位问题和分析原因。具体查找实现流程包括:
[0090]
a、加载页面,实时判断元素是否成功加载在当前页面上;
[0091]
b、元素如未加载,自动等待元素加载,加载成功后立刻开始查找元素;
[0092]
c、根据s103中元素属性,查找对应元素;
[0093]
s202:循环查找元素是否成功:
[0094]
在s201开始查找元素后,因为网络、设备等原因,可能第一时间元素未加载完成后或未定位到元素,如果直接返回失败那么脚本执行成功的概率会很低,所以为了降低因环境原因造成的执行错误,加入了重试机制:查找元素失败,自动重试3次,若3次后依然未查找到元素,将页面截图保存,方便后续定位;查找元素成功,将元素周边高亮显示,等待下一步操作;
[0095]
如图4所示,为本发明实施例提供的元素查找成功高亮示意图,图中以定位百度查询输入框为例,定位到的输入框高亮底色为深色:
[0096]
s203:查找成功后调用统一操作模块:
[0097]
查找元素成功后,为了解决不同测试人员实现了相同的业务功能造成人力浪费的问题,由统一封装了元素的处理方法,由此方法实现不同类型元素的操作,如实现输入框输入、按钮点击、下拉列表选择等。通过前端页面的共用组件,对元素的操作方法可以在不同的脚本共享使用,后续也可以统一维护。
[0098]
s3:向所述元素下发调用的操作指令,获得元素的操作结果;
[0099]
具体实施步骤包括:
[0100]
根据查找出的元素的属性选择操作指令;
[0101]
向元素下发与所述元素对应的操作指令;
[0102]
元素根据操作指令执行操作,并获得页面反馈的操作结果;
[0103]
其中,所述操作指令根据指令功能进行集成封装,形成操作指令组。
[0104]
s301:对操作结果进行校验:
[0105]
在s202对元素进行查找和操作后,根据页面返回的操作结果和测试脚本中的预期结果进行校验,如列表展示数据是否正确等;
[0106]
s4:对操作结果进行校验,获得校验结果;
[0107]
具体实施步骤包括:
[0108]
根据页面反馈的操作结果与预期的结果进行校验;
[0109]
校验完成后,若操作结果和预期结果一致,将测试结果标记为成功;
[0110]
若不一致,表示操作结果和预期结果有差异,则标记为失败,同时获取当前浏览器截图;
[0111]
s401:标记执行结果并获取失败截图:
[0112]
校验完成后,如校验结果和预期结果一致,表示本次执行测试成功完成,可以标记成功;
[0113]
如不一致,表示校验结果和预期结果有差异,这时应标记失败,同时需要获取当前浏览器截图,用于后续测试人员对结果进行分析。
[0114]
s402:allure可视化结果报告生成:
[0115]
所有元素的测试结果标记完成后,调用allure自动生成可视化测试报告,报告中会展示本次测试的执行结果;
[0116]
allure框架是一个灵活的轻量级多语言测试报告工具,它不仅以web的方式展示了简介的测试结果,而且允许参与开发过程的每个人从日常执行的测试中最大限度的提取有用信息。
[0117]
如图2所示,为根据本发明的方法提供一种ui自动化回归测试系统,所述系统包括:
[0118]
信息获取模块:用于从获取的配置文件中读取执行环境信息和元素信息;
[0119]
查找模块:用于根据元素信息在执行环境中查找获得相应元素;
[0120]
运行模块:用于向所述元素下发调用的操作指令,获得元素的操作结果;
[0121]
校验模块:用于对操作结果进行校验,获得校验结果;
[0122]
所述信息获取模块:用于获取配置文件,读取在所述配置文件中配置的执行环境信息和元素信息;
[0123]
所述执行环境信息包括待执行的浏览器类型,所述元素信息包括元素的属性和定位方式;
[0124]
其中,配置文件中包括若干设置在不同页面和相同页面的所述元素,根据页面的归属地对所述元素进行集中管理;
[0125]
将设置在不同页面的所述元素在所述配置文件中采用不同的区域进行分割;
[0126]
将设置在相同页面的所述元素在所述配置文件中集中在同一个区域;
[0127]
该步骤主要是为了实现将相同的元素信息统一管理,并设置一个入口进行增删改查,方便后续测试的修改和调整;
[0128]
所述查找模块:用于获取待执行的浏览器,使用数据包模拟调起web浏览器;
[0129]
根据元素的属性或定位方式在浏览器加载页面过程中实时查找元素;
[0130]
页面加载完成后重复查找若干次,若查找成功则将元素在浏览器中高亮显示,若查找失败则对查找失败的元素进行截图保存。
[0131]
该步骤主要为在获取到执行环境信息和元素信息后,在页面中定位查找到元素并对其进行操作:
[0132]
所述运行模块:用于根据查找出的元素的属性选择操作指令;
[0133]
向元素下发与所述元素对应的操作指令;
[0134]
元素根据操作指令执行操作,并获得页面反馈的操作结果;
[0135]
其中,所述操作指令根据指令功能进行集成封装,形成操作指令组;
[0136]
所述校验模块:用于根据页面反馈的操作结果与预期的结果进行校验;
[0137]
校验完成后,若操作结果和预期结果一致,将测试结果标记为成功;
[0138]
若不一致,表示操作结果和预期结果有差异,则标记为失败,同时获取当前浏览器截图。
[0139]
根据本发明的方法提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述的ui自动化回归测试方法的步骤。
[0140]
根据本发明的方法一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如上述的ui自动化回归测试的步骤。
[0141]
虽然,上文中已经用一般性说明及具体实施例对本发明作了详尽的描述,但在本发明基础上,可以对之作一些修改或改进,这对本领域技术人员而言是显而易见的。因此,在不偏离本发明精神的基础上所做的这些修改或改进,均属于本发明要求保护的范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1