本技术涉及自动化测试领域,特别涉及用户页面测试方法及装置。
背景技术:
1、随着移动终端设备普及化,移动应用程序已成为人们日常生活中必不可少的重要工具。在众多测试方法中,ui(user interface,用户接口)页面测试技术能够对应用程序上的ui控件元素进行测试,以确定被测试的应用程序的测试结果是否符合预期结果。市场上存在多种自动化ui测试工具,传统方法往往需要测试工程师对每一个待测试的用户页面分别编写测试脚本,该方法非常繁琐且测试效率低下。
技术实现思路
1、有鉴于此,本技术提供一种用户页面测试方法及装置,以解决相关技术中需要对每一个待测试的用户页面分别编写测试脚本造成的编写繁琐且测试效率低下的问题。
2、本技术提供的技术方案如下:
3、根据本技术第一方面的实施例,提出了一种用户页面测试方法,该方法应用于电子设备中的处理器,该方法包括:
4、在待测试应用程序中的当前控件元素被触发开始start操作时,对所述当前控件元素所属的用户接口ui页面启动探索操作,将所述当前控件元素作为目标探索树的根节点,将所述根节点作为目标探索树中当前层的当前节点,将所述ui页面作为当前ui页面;
5、对所述当前节点执行对应的探索动作,获得动作执行结果;所述动作执行结果至少包括所述当前节点被执行完对应的探索动作后的截图;
6、若所述当前节点被执行完对应的探索动作后所述当前ui页面被成功跳转至下一ui页面,则遍历所述下一ui页面中的控件元素,将遍历到的控件元素作为当前节点的子节点,所述子节点处于所述目标探索树中当前层的下一层,将所述目标探索树中当前层的下一层作为当前层,将所述当前节点的子节点作为所述目标探索树中当前层的当前节点,将所述下一ui页面作为当前ui页面,对所述当前节点执行对应的探索动作;
7、若所述当前节点被执行完对应的探索动作后所述当前ui页面发生页面跳转失败,将当前ui页面中未被执行探索动作的其他控件元素作为当前层的当前节点,对所述当前节点执行对应的探索动作。
8、可选的,所述start操作通过外部输入的指令触发。
9、可选的,对所述当前节点执行对应的探索动作包括:
10、检查当前节点是否被配置为待纠正状态,所述待纠正状态用于指示当前节点执行对应的纠正动作,所述纠正动作不同于所述当前节点对应的探索动作;
11、若是,对所述当前节点执行对应的纠正动作;
12、若否,对所述当前节点执行对应的探索动作。
13、可选的,所述当前层的当前节点依据当前ui页面对应的目标控件元素序列选取,所述当前ui页面对应的目标控件元素序列由以下方法确定:
14、将当前ui页面中所有的控件元素保存至第一控件元素序列中;
15、基于各控件元素预先被配置的ui页面标识,从所述第一控件元素序列中删除所述ui页面标识重复的控件元素,以得到第二控件元素序列;所述ui页面标识用于指示该控件元素在被执行对应的探索动作后所跳转到的ui页面;
16、从所述第二控件元素序列中删除预先设置的包含特定信息的控件元素,得到第三控件元素序列;
17、依据各控件元素被配置的遍历深度将所述第三控件元素序列中的控件元素进行排序,以得到所述当前ui页面对应的目标控件元素序列。
18、可选的,该方法进一步包括:
19、若当前ui页面中不存在未被执行探索动作的控件元素,则返回所述目标探索树中当前层的上一层对应的ui页面,将所述当前层的上一层对应的ui页面作为当前ui页面,将所述当前层的上一层作为当前层,将当前ui页面中未被执行探索动作的其他控件元素作为当前层的当前节点,对所述当前节点执行对应的探索动作,直至返回到的ui页面为所述根节点所属的ui页面。
20、根据本技术第二方面的实施例,提出了一种用户页面测试装置,该装置应用于电子设备中的处理器,该装置包括:
21、探索单元,用于在待测试应用程序中的当前控件元素被触发开始start操作时,对所述当前控件元素所属的用户接口ui页面启动探索操作,将所述当前控件元素作为目标探索树的根节点,将所述根节点作为目标探索树中当前层的当前节点,将所述ui页面作为当前ui页面;
22、执行单元,用于对所述当前节点执行对应的探索动作,获得动作执行结果;所述动作执行结果至少包括所述当前节点被执行完对应的探索动作后的截图;
23、若所述当前节点被执行完对应的探索动作后所述当前ui页面被成功跳转至下一ui页面,则遍历所述下一ui页面中的控件元素,将遍历到的控件元素作为当前节点的子节点,所述子节点处于所述目标探索树中当前层的下一层,将所述目标探索树中当前层的下一层作为当前层,将所述当前节点的子节点作为所述目标探索树中当前层的当前节点,将所述下一ui页面作为当前ui页面,对所述当前节点执行对应的探索动作;
24、若所述当前节点被执行完对应的探索动作后所述当前ui页面发生页面跳转失败,将当前ui页面中未被执行探索动作的其他控件元素作为当前层的当前节点,对所述当前节点执行对应的探索动作。
25、可选的,所述start操作通过外部输入的指令触发。
26、可选的,所述执行单元具体用于:
27、检查当前节点是否被配置为待纠正状态,所述待纠正状态用于指示当前节点执行对应的纠正动作,所述纠正动作不同于所述当前节点对应的探索动作;
28、若是,对所述当前节点执行对应的纠正动作;
29、若否,对所述当前节点执行对应的探索动作。
30、可选的,所述当前层的当前节点依据当前ui页面对应的目标控件元素序列选取,所述当前ui页面对应的目标控件元素序列由以下方法确定:
31、将当前ui页面中所有的控件元素保存至第一控件元素序列中;
32、基于各控件元素预先被配置的ui页面标识,从所述第一控件元素序列中删除所述ui页面标识重复的控件元素,以得到第二控件元素序列;所述ui页面标识用于指示该控件元素在被执行对应的探索动作后所跳转到的ui页面;
33、从所述第二控件元素序列中删除预先设置的包含特定信息的控件元素,得到第三控件元素序列;
34、依据各控件元素被配置的遍历深度将所述第三控件元素序列中的控件元素进行排序,以得到所述当前ui页面对应的目标控件元素序列。
35、可选的,所述执行单元还用于:
36、若当前ui页面中不存在未被执行探索动作的控件元素,则返回所述目标探索树中当前层的上一层对应的ui页面,将所述当前层的上一层对应的ui页面作为当前ui页面,将所述当前层的上一层作为当前层,将当前ui页面中未被执行探索动作的其他控件元素作为当前层的当前节点,对所述当前节点执行对应的探索动作,直至返回到的ui页面为所述根节点所属的ui页面。
37、根据本技术第三方面的实施例,提出了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如第一方面所述的方法。
38、根据本技术第四方面的实施例,提出了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如第一方面所述的方法。
39、由以上技术方案可见,本技术实施例基于当前节点对应的探索动作信息,对当前节点执行对应的探索动作,获得动作执行结果;并进一步通过判断当前节点被执行完对应的探索动作后当前ui页面是否被成功跳转至下一ui页面,以确定新的当前节点,返回基于当前节点对应的探索动作信息,对当前节点执行对应的探索动作的操作;通过对当前节点进行探索,并在探索到不存在下一ui页面时对当前ui页面中的其他元素进行探索,保证了用户页面测试的全面准确,同时该测试方法无需对不同的应用程序进行不同的编写配置,解决了相关技术中需要对每一个待测试的用户页面分别编写测试脚本造成的编写繁琐且测试效率低下的问题。