本发明涉及用户界面自动化测试,具体涉及到一种ui自动化测试的回放重试方法。
背景技术:
1、大型国产工业软件存在复杂的ui界面,界面之间交互逻辑复杂,现有基于ui控件属性录制的自动化用例脚本,在回放时无法自动判断两个操作间具体应间隔的时间,在某些场景下,用户界面响应耗时较长,而用例脚本又能在用户界面完成响应前定位到下一步预期操作的ui控件并执行操作事件,导致后续一步或多步执行无效,进而使得后续某个目标ui控件不会出现在目标程序界面中,降低了回放成功率。
技术实现思路
1、本发明要解决的技术问题在于提供一种ui自动化测试的回放重试方法,该方法在干扰或ui界面响应结束前执行后续事件导致执行无效,进而后续ui控件不会出现导致定位失败的情况下,自动化地重试前序步骤事件,能够有效提高ui自动化测试的回放成功率,提升回放稳定性。
2、为了解决上述技术问题,本发明通过以下方式来实现:
3、一种ui自动化测试的回放重试方法,该方法包括:
4、控件定位模块,通过事先记录的ui控件属性从目标程序界面中定位目标ui控件,根据定位结果执行事件执行步骤;
5、事件执行模块,实施目标ui控件对应的目标事件,包括执行前后对目标程序界面状态的获取与对比,并根据对比结果修改前序事件重试列表内容,为前序事件重试模块的执行提供规则约束;
6、前序事件重试模块,在定位目标ui控件失败时,获取前序事件重试列表,并依照规则重试目标事件的前序事件。
7、进一步的,本申请的运行流程具体方法以下:
8、首先,获取待执行事件对应ui控件属性,并初始化定位重试次数参数,获取最大定位重试次数;其中,当目标ui控件存在时,待执行事件对应ui控件属性能够唯一地定位目标ui控件,最大定位重试次数可在脚本生成期间由用户主动输入或测试脚本生成软件主动生成;
9、然后,基于事件对应ui控件属性,从目标程序界面中能否定位目标ui控件,若是则进行事件执行模块;若否则根据当前已重试次数执行定位重试功能、前序事件重试模块或退出。
10、具体的,若不能定位目标ui控件,检测当前定位重试次数是否小于最大定位重试次数,若否则执行失败结束当前操作;若是则重新进行定位控件,并增大当前定位重试次数并等待一定时间间隔后,检测当前定位重试次数与预先设定的前序事件执行模块触发间隔是否为整数倍关系,若否则直接尝试重新定位控件,若是则执行前序事件重试模块后再尝试重新定位控件。
11、进一步的,所述事件执行模块具体包括以下步骤:
12、s1、对目标ui控件对应的目标程序界面信息进行获取,获取执行目标事件前的目标程序界面信息为第一状态;
13、s2、对目标ui控件区域发送目标事件,并等待一定时间,其中目标事件所在屏幕坐标通过目标ui控件坐标与目标事件相对坐标计算而得,目标事件指鼠标事件,包括鼠标各按键单击、双击、拖拽等事件;
14、s3、对目标ui控件对应的目标程序界面信息进行获取,获取执行目标事件后的目标程序界面信息为第二状态;
15、s4、第一状态和第二状态内容是否一致进行对比得到匹配结果,并根据匹配结果对事件重试列表进行修改,若匹配结果内容一致,则将目标事件追加到前序事件重试列表中,若匹配结果内容不一致,则将清空前序事件重试列表。
16、优选的,所述第一状态为执行目标事件前的目标程序界面截图,获取目标ui控件所在程序的进程号,并通过进程号获取目标程序所有存在的顶级窗口及各窗口所在的屏幕位置,对各顶级窗口分别截图并按照原位置组合而成;
17、可选的,所述第一状态为目标程序当前可见ui控件构成的ui控件森林,获取目标ui控件所在程序的进程号,通过进程号获取目标程序所有存在的顶级窗口,分别对这些顶级窗口采用深度优先、层序遍历等方法获取并记录各顶级窗口对应的ui控件树及各ui控件节点对应的属性,所述ui控件节点的属性由ui控件的内存地址、控件名、控件类名、控件所包含的字符串等属性值中任一或多个的组合构成。
18、进一步的,所述序事件重试模块具体包括以下步骤:
19、首先,获取前序事件重试模块需要的参数,包括前序事件重试列表长度,用于定位目标ui控件所需的属性,初始化前序事件重试次数;
20、然后,根据事件重试列表,循环或递归地执行目标事件的前序事件,所述前序事件应当选择与目标事件最近的一组连续前序事件,并依照时间先后顺序执行这组事件,所取出的前序事件从最近一个前序事件开始,在每次循环后多取一个最近前序事件,直至目标事件对应的目标ui控件被成功定位或无更多前序事件供选择;
21、最后,每次循环或递归后检测目标事件对应的目标ui控件是否能成功定位,若能成功定位或本次模块调用前序事件列表中的前序事件均已被执行过,则结束前序事件重试模块,若否则进入下一次循环或递归。
22、与现有技术相比,本发明具有的有益效果:
23、本发明在给定或默认重试次数范围内,因干扰或ui界面响应结束前执行后续事件导致执行无效,后续ui控件不会出现导致定位失败时,自动化地对一些前序步骤进行重试,有效地提高ui自动化测试脚本回放成功的概率和稳定性。
1.一种ui自动化测试的回放重试方法,其特征在于:该方法包括:
2.如权利要求1所述的一种ui自动化测试的回放重试方法,其特征在于:运行流程具体方法以下:
3.如权利要求1所述的一种ui自动化测试的回放重试方法,其特征在于:
4.如权利要求1所述的一种ui自动化测试的回放重试方法,其特征在于:
5.如权利要求2所述的一种ui自动化测试的回放重试方法,其特征在于:
6.如权利要求3所述的一种ui自动化测试的回放重试方法,其特征在于:
7.如权利要求3所述的一种ui自动化测试的回放重试方法,其特征在于: