(19)中华人民共和国国家知识产权局
(12)发明专利申请
(10)申请公布号 (43)申请公布日 (21)申请号 202210327760.8
(22)申请日 2022.03.31
(71)申请人 北京搜狐新动力信息技术有限公司
地址 100190 北京市海淀区科学院南路2号
院3号楼6层601
(72)发明人 王文杰 张虎 杨波 
(74)专利代理机构 北京集佳知识产权代理有限
公司 11227
代理人 李慧引
(51)Int.Cl.
G06F  11/36(2006.01)
G06F  8/38(2018.01)
(54)发明名称UI元素测试方法、装置、存储介质和设备(57)摘要本申请公开了一种UI元素测试方法、装置、存储介质和设备,该方法为:在控制录制设备生成测试用例的过程中,在待测应用所示的UI元素中,添加Predicate属性、XPath属性以及image属性;在控制测试设备执行测试用例的过程中,依据Predicate属性、XPath属性以及image属性中的任意一个属性,在测试设备所安装的待测应用中查到待测UI元素,并触发待测UI元素执行测试用例所示操作,得到测试用例的执行结果。相较于现有技术,
利用Predicate属性、XPath属性以及image属性作为查依据查待测UI元素,可靠性较高、且并不影响待测应用的正常运行,
确保测试用例能够正常运行。权利要求书2页  说明书11页  附图5页CN 114416603 A 2022.04.29
C N  114416603
A
1.一种UI元素测试方法,其特征在于,包括:
在控制录制设备生成测试用例的过程中,在所述录制设备所安装的待测应用所示的UI 元素中,添加Predicate属性、XPath属性以及image属性;其中,所述Predicate属性包括谓词字符串;所述谓词字符串基于所述UI元素所包含的预设元素属性生成;所述XPath属性包括路径;所述路径基于所述UI元素所包含的name属性以及所述UI元素所属层级生成;所述层级用于指示所述UI元素的元素类型;所述image属性包括字符串;所述字符串基于对预先截取的所述UI元素的截图进行编码得到;
在控制测试设备执行所述测试用例的过程中,依据待测UI元素所包含的Predicate属性、XPath属性以及image属性中的任意一个属性,在所述测试设备所安装的待测应用中查到所述待测UI元素,并触发所述待测UI元素执行所述测试用例所示操作,得到所述测试用例的执行结果;所述待测UI元素为所述测试
设备所安装的待测应用中,需要执行所述测试用例所示操作的UI元素;
基于所述执行结果,生成所述待测应用的测试报告,并将所述测试报告存储到预设数据库中。
2.根据权利要求1所述的方法,其特征在于,所述基于所述UI元素所包含的预设元素属性生成所述谓词字符串的过程,包括:
获取所述UI元素所包含的预设元素属性的类型和值;
将所述预设元素属性的类型、预设运算符、所述预设元素属性的值进行组合,得到所述谓词字符串。
3.根据权利要求1所述的方法,其特征在于,所述基于所述UI元素所包含的name属性以及所述UI元素所属层级生成所述路径的过程,包括:
在确定所述UI元素包含name属性的情况下,将所述name属性的值、预设字符串、预设运算符进行组合,得到所述路径;
在确定所述UI元素不包含所述name属性的情况下,获取所述录制设备所安装的待测应用所示各个所述UI元素之间的层级关系;
从所述UI元素所属层级开始,逐步遍历所述UI元素所属层级的上一级,直至遍历到所述UI元素所属的最上级,并按照由先到后的顺序,将所遍历的各个层级进行编排,生成所述路径。
4.根据权利要求1所述的方法,其特征在于,所述依据待测UI元素所包含的Predicate 属性、XPath属性以及image属性中的任意一个属性,在所述测试设备所安装的待测应用中查到所述待测UI元素,包括:
在确定所述待测UI元素包含Predicate属性的情况下,依据所述待测UI元素的Predicate属性,在所述测试设备所安装的待测应用中查到所述待测UI元素;
在确定所述待测UI元素不包含Predicate属性、且包含XPath属性的情况下,依据所述待测UI元素的XPath属性,在所述测试设备所安装的待测应用中查到所述待测UI元素;
在确定所述待测UI元素不包含Predicate属性以及XPath属性、且包含image属性的情况下,依据所述待测UI元素的image属性,在所述测试设备所安装的待测应用中查到所述待测UI元素。
5.根据权利要求4所述的方法,其特征在于,还包括:
在确定所述待测UI元素包含ID属性的情况下,依据所述待测UI元素的ID属性,在所述测试设备所安装的待测应用中查到所述待测UI元素。
6.根据权利要求4所述的方法,其特征在于,所述依据所述待测UI元素的image属性,在所述测试设备所安装的待测应用中查到所述待测UI元素,包括:
对所述待测UI元素的image属性进行解码,得到目标截图;
截取所述测试设备的屏幕界面,并计算所述目标截图在所述屏幕界面中所处的坐标;
从所述屏幕界面所示的各个UI元素中,选取预设坐标属性包含所述目标截图在所述屏幕界面中所处的坐标的UI元素,作为候选UI元素;
截取各个所述候选UI元素的截图,并将每个所述候选UI元素的截图与所述目标截图进行比对,得到每个所述候选UI元素的可信度;
从各个所述候选UI元素中选取可信度最高的候选UI元素,作为所述待测UI元素。
7.根据权利要求4所述的方法,其特征在于,还包括:
在确定所述待测UI元素不包含ID属性、Predicate属性、XPath属性以及image属性的情况下,向用户发送所述测试用例异常的提示。
8.一种UI元素测试装置,其特征在于,包括:
属性添加单元,用于在控制录制设备生成测试用例的过程中,在所述录制设备所安装的待测应用所示的UI元素中,添加Predicate属性、XPath属性以及image属性;其中,所述Predicate属性包括谓词字符串;所述谓词字符串基于所述UI元素所包含的预设元素属性生成;所述XPath属性包括路径;所述路径基于所述UI元素所包含的name属性以及所述UI元素所属层级生成;所述层级用于指示所述UI元素的元素类型;所述image属性包括字符串;所述字符串基于对预先截取的所述UI元素的截图进行编码得到;
元素查单元,用于在控制测试设备执行所述测试用例的过程中,依据待测UI元素所包含的Predicate属性、XPath属性以及image属性中的任意一个属性,在所述测试设备所安装的待测应用中查到所述待测UI元素,并触发所述待测UI元素执行所述测试用例所示操作,得到所述测试用例的执行结果;所述待测UI元素为所述测试设备所安装的待测应用中,需要执行所述测试用例所示操作的UI元素;
报告生成单元,用于基于所述执行结果,生成所述待测应用的测试报告,并将所述测试报告存储到预设数据库中。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括存储的程序,其中,所述程序执行权利要求1‑7任一所述的UI元素测试方法。
10.一种UI元素测试设备,其特征在于,包括:处理器、存储器和总线;所述处理器与所述存储器通过所述总线连接;
所述存储器用于存储程序,所述处理器用于运行程序,其中,所述程序运行时执行权利要求1‑7任一所述的UI元素测试方法。
UI元素测试方法、装置、存储介质和设备
技术领域
[0001]本申请涉及移动端应用领域,尤其涉及一种UI元素测试方法、装置、存储介质和设备。
背景技术
[0002]随着移动互联网的快速发展,基于移动设备的应用软件越来越多,为了应用程序的有效性,安全性,需要在投放市场前,对应用进行测试。与人工测试相比,测试自动化能够减少测试成本、并缩短测试周期。在移动端平台进行UI自动化测试时,需要对测试的应用通过记录操作进行录制,再通过记录操作进行回放。
[0003]在现有移动端平台的UI自动化测试过程中,测试平台会预先对UI元素进行相关操作(例如点击、移动以及滑动等),并基于UI元素的相关操作生成测试用例,而后再执行测试用例实现对相关操作的回放。然而,在实际执行测试用例时,测试平台经常无法查到正确的UI元素,导致测试用例无法使用(可理解为无法执行),从而降低UI自动化测试的成功率。
发明内容
[0004]本申请提供了一种UI元素测试方法、装置、存储介质和设备,目的在于准确查到UI元素,从而提高UI自动化测试的成功率。
[0005]为了实现上述目的,本申请提供了以下技术方案:
一种UI元素测试方法,包括:
在控制录制设备生成测试用例的过程中,在所述录制设备所安装的待测应用所示的UI元素中,添加Predicate属性、XPath属性以及image属性;其中,所述Predicate属性包括谓词字符串;所述谓词字符串基于所述UI元素所包含的预设元素属性生成;所述XPath属性包括路径;所述路径基于所述UI元素所包含的name属性以及所述UI元素所属层级生成;所述层级用于指示所述UI元素的元素类型;所述image属性包括字符串;所述字符串基于对预先截取的所述UI元素的截图进行编码得到;
在控制测试设备执行所述测试用例的过程中,依据待测U I元素所包含的Predicate属性、XPath属性以及image属性中的任意一个属性,在所述测试设备所安装的待测应用中查到所述待测UI元素,并触发所述待测UI元素执行所述测试用例所示操作,得到所述测试用例的执行结果;所述待测UI元素为所述测试设备所安装的待测应用中,需要执行所述测试用例所示操作的UI元素;
基于所述执行结果,生成所述待测应用的测试报告,并将所述测试报告存储到预设数据库中。
[0006]可选的,所述基于所述UI元素所包含的预设元素属性生成所述谓词字符串的过程,包括:
获取所述UI元素所包含的预设元素属性的类型和值;
将所述预设元素属性的类型、预设运算符、所述预设元素属性的值进行组合,得到
所述谓词字符串。
[0007]可选的,所述基于所述UI元素所包含的name属性以及所述UI元素所属层级生成所述路径的过程,包括:
在确定所述UI元素包含name属性的情况下,将所述name属性的值、预设字符串、预设运算符进行组合,得到所述路径;
在确定所述UI元素不包含所述name属性的情况下,获取所述录制设备所安装的待测应用所示各个所述UI元素之间的层级关系;
从所述UI元素所属层级开始,逐步遍历所述UI元素所属层级的上一级,直至遍历到所述UI元素所属的最上级,并按照由先到后的顺序,将所遍历的各个层级进行编排,生成所述路径。
[0008]可选的,所述依据待测UI元素所包含的Predicate属性、XPath属性以及image属性中的任意一个属性,在所述测试设备所安装的待测应用中查到所述待测UI元素,包括:在确定所述待测UI元素包含Predicate属性的情况下,依据所述待测UI元素的Predicate属性,在所述测试设备所安装的待测应用中查到所述待测UI元素;
在确定所述待测UI元素不包含Predicate属性、且包含XPath属性的情况下,依据所述待测UI元素的XPath属性,在所述测试设备所安装的待测应用中查到所述待测UI元素;
在确定所述待测UI元素不包含Predicate属性以及XPath属性、且包含image属性的情况下,依据所述待测UI元素的image属性,在所述测试设备所安装的待测应用中查到所述待测UI元素。
[0009]可选的,还包括:
在确定所述待测UI元素包含ID属性的情况下,依据所述待测UI元素的ID属性,在所述测试设备所安装的待测应用中查到所述待测UI元素。
[0010]可选的,所述依据所述待测UI元素的image属性,在所述测试设备所安装的待测应用中查到所述待测UI元素,包括:
对所述待测UI元素的image属性进行解码,得到目标截图;
截取所述测试设备的屏幕界面,并计算所述目标截图在所述屏幕界面中所处的坐标;字符串截取特定字符前的文字
从所述屏幕界面所示的各个UI元素中,选取预设坐标属性包含所述目标截图在所述屏幕界面中所处的坐标的UI元素,作为候选UI元素;
截取各个所述候选UI元素的截图,并将每个所述候选UI元素的截图与所述目标截图进行比对,得到每个所述候选UI元素的可信度;
从各个所述候选UI元素中选取可信度最高的候选UI元素,作为所述待测UI元素。[0011]可选的,还包括:
在确定所述待测UI元素不包含ID属性、Predicate属性、XPath属性以及image属性的情况下,向用户发送所述测试用例异常的提示。
[0012]一种UI元素测试装置,包括:
属性添加单元,用于在控制录制设备生成测试用例的过程中,在所述录制设备所安装的待测应用所示的UI元素中,添加Predicate属性、XPath属性以及image属性;其中,所

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。