本发明涉及自动化测试,尤其涉及一种应用数据获取方法、装置、设备及存储介质。
背景技术:
1、随着安卓(android)应用市场的不断发展,各种应用程序app层出不穷,功能越来越多样,越来越复杂。在app上线之前,需要对app进行充分地测试,以保证app功能的正常使用,目前,针对app的ui进行测试主要包括人工测试、自动化脚本测试和基于monkey的随机性测试等测试方法。这些方法都存在维护成本较高的问题,而且随着app界面和功能越来越复杂,这些方法逐渐无法满足测试的需要。
2、上述内容仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。
技术实现思路
1、本发明的主要目的在于提供一种应用数据获取方法、装置、设备及存储介质,旨在解决现有技术对app进行ui遍历测试时测试工具的维护成本高的技术问题。
2、为实现上述目的,本发明提供了一种应用数据获取方法,所述方法包括以下步骤:
3、根据待测应用对应的应用界面数据构建至少一个动作事件;
4、根据所述应用界面数据确定各动作事件对应的置信分值;
5、基于所述置信分值从所述至少一个动作事件中选取目标动作事件;
6、控制所述待测应用执行所述目标动作事件,并获取所述待测应用执行所述目标动作事件后的应用界面数据。
7、可选的,所述根据待测应用对应的应用界面数据构建至少一个动作事件的步骤,包括:
8、将待测应用对应的应用界面数据抽象为应用界面对象,所述应用界面对象为树形结构对象;
9、根据所述应用界面对象的属性信息确定可交互组件;
10、根据所述可交互组件的组件类型构建至少一个动作事件。
11、可选的,所述根据所述可交互组件的组件类型构建至少一个动作事件的步骤,包括:
12、获取所述可交互组件的组件类型及组件信息;
13、根据所述组件类型在预设类型动作映射表中查找对应的可交互动作;
14、根据所述可交互动作及所述组件信息构建至少一个动作事件。
15、可选的,所述根据所述可交互组件的组件类型构建至少一个动作事件的步骤,包括:
16、根据预设屏蔽规则对所述可交互组件进行过滤,获得目标交互组件;
17、根据所述目标交互组件的组件类型构建至少一个动作事件。
18、可选的,所述根据所述应用界面数据确定各动作事件对应的置信分值的步骤,包括:
19、根据所述应用界面对象对预设算法树进行更新,并获取各动作事件在所述预设算法树中对应的子节点;
20、获取所述子节点对应的活动组件集合、节点状态、节点访问次数、节点深度及节点宽度;
21、根据所述活动组件集合的集合长度、所述节点状态、所述节点访问次数、所述节点深度及所述节点宽度确定各动作事件对应的置信分值。
22、可选的,所述控制所述待测应用执行所述目标动作事件,并获取所述待测应用执行所述目标动作事件后的应用界面数据的步骤之后,还包括:
23、根据所述变化后的应用界面数据对所述预设算法树进行更新;
24、在更新完成后,获取历史遍历次数,并根据所述历史遍历次数确定当前遍历次数;
25、将所述当前遍历次数与预设遍历步长进行比较;
26、若所述当前遍历次数小于所述预设遍历步长,则返回所述根据待测应用对应的应用界面数据构建至少一个动作事件的步骤。
27、可选的,所述将所述当前遍历次数与预设遍历步长进行比较的步骤之后,还包括:
28、若所述当前遍历次数大于或等于所述预设遍历步长,则获取异常记录数据及历史界面数据;
29、根据所述异常记录数据及所述历史界面数据构建应用测试报告。
30、可选的,所述根据所述应用界面数据确定各动作事件对应的置信分值的步骤,包括:
31、将各动作事件与预设动作过滤规则进行匹配,确定无效动作事件;
32、将所述无效动作事件从所述至少一个动作事件中的中移除,获得目标动作事件;
33、根据所述应用界面数据确定各目标动作事件对应的置信分值。
34、可选的,所述根据待测应用对应的应用界面数据构建至少一个动作事件的步骤之前,还包括:
35、对接收到的应用测试请求进行解析,获得待测应用标识及目标设备标识;
36、建立与所述目标设备标识对应的目标设备之间的通信连接;
37、基于所述通信连接将所述待测应用标识对应的待测应用安装至所述目标设备中;
38、控制所述目标设备启动所述待测应用,并获取所述目标设备中所述待测应用对应的应用界面数据。
39、可选的,所述控制所述待测应用执行所述目标动作事件,并获取所述待测应用执行所述目标动作事件后的应用界面数据的步骤之后,还包括:
40、获取所述待测应用执行所述目标动作事件时的应用日志数据;
41、根据所述应用日志数据确定所述待测应用是否出现异常;
42、若出现异常,则根据所述应用日志数据生成异常记录数据,并将所述异常记录数据进行存储。
43、可选的,所述控制所述待测应用执行所述目标动作事件,并获取所述待测应用执行所述目标动作事件后的应用界面数据的步骤,包括:
44、获取所述待测应用对应的界面分辨率;
45、基于所述界面分辨率控制所述待测应用执行所述目标动作事件,并获取所述待测应用执行所述目标动作事件后的应用界面数据。
46、可选的,应用数据获取方法由至少一个智能体协同执行,所述至少一个智能体共享同一个预设算法树。
47、此外,为实现上述目的,本发明还提出一种应用数据获取装置,所述应用数据获取装置包括以下模块:
48、事件构建模块,用于根据待测应用对应的应用界面数据构建至少一个动作事件;
49、置信确定模块,用于根据所述应用界面数据确定各动作事件对应的置信分值;
50、动作选取模块,用于基于所述置信分值从所述至少一个动作事件中选取目标动作事件;
51、动作执行模块,用于控制所述待测应用执行所述目标动作事件,并获取所述待测应用执行所述目标动作事件后的应用界面数据。
52、可选的,所述事件构建模块,还用于将待测应用对应的应用界面数据抽象为应用界面对象,所述应用界面对象为树形结构对象;根据所述应用界面对象的属性信息确定可交互组件;根据所述可交互组件的组件类型构建至少一个动作事件。
53、可选的,所述事件构建模块,还用于获取所述可交互组件的组件类型及组件信息;根据所述组件类型在预设类型动作映射表中查找对应的可交互动作;根据所述可交互动作及所述组件信息构建至少一个动作事件。
54、可选的,所述事件构建模块,还用于根据预设屏蔽规则对所述可交互组件进行过滤,获得目标交互组件;根据所述目标交互组件的组件类型构建至少一个动作事件。
55、可选的,所述置信确定模块,还用于根据所述应用界面对象对预设算法树进行更新,并获取各动作事件在所述预设算法树中对应的子节点;获取所述子节点对应的活动组件集合、节点状态、节点访问次数、节点深度及节点宽度;根据所述活动组件集合的集合长度、所述节点状态、所述节点访问次数、所述节点深度及所述节点宽度确定各动作事件对应的置信分值。
56、可选的,所述动作执行模块,还用于根据所述变化后的应用界面数据对所述预设算法树进行更新;在更新完成后,获取历史遍历次数,并根据所述历史遍历次数确定当前遍历次数;将所述当前遍历次数与预设遍历步长进行比较;若所述当前遍历次数小于所述预设遍历步长,则返回所述根据待测应用对应的应用界面数据构建至少一个动作事件的步骤。
57、可选的,所述动作执行模块,还用于若所述当前遍历次数大于或等于所述预设遍历步长,则获取异常记录数据及历史界面数据;根据所述异常记录数据及所述历史界面数据构建应用测试报告。
58、此外,为实现上述目的,本发明还提出一种应用数据获取设备,所述应用数据获取设备包括:处理器、存储器及存储在所述存储器上并可在所述处理器上运行的应用数据获取程序,所述应用数据获取程序被处理器执行时实现如上所述的应用数据获取方法的步骤。
59、此外,为实现上述目的,本发明还提出一种计算机可读存储介质,所述计算机可读存储介质上存储有应用数据获取程序,所述应用数据获取程序执行时实现如上所述的应用数据获取方法的步骤。
60、本发明通过根据待测应用对应的应用界面数据构建至少一个动作事件;根据应用界面数据确定各动作事件对应的置信分值;基于置信分值从至少一个动作事件中选取目标动作事件;控制待测应用执行目标动作事件,并获取待测应用执行目标动作事件后的应用界面数据。由于是直接根据待测应用对应的应用界面数据构建动作事件,并根据各动作事件的置信分值选取目标动作事件,整体执行过程中无需获取待测应用的源码,从而保证适用于任何应用程序,即使应用程序源码发生变动,也无需进行调整,维护成本低。
1.一种应用数据获取方法,其特征在于,所述应用数据获取方法包括以下步骤:
2.如权利要求1所述的应用数据获取方法,其特征在于,所述根据待测应用对应的应用界面数据构建至少一个动作事件的步骤,包括:
3.如权利要求2所述的应用数据获取方法,其特征在于,所述根据所述可交互组件的组件类型构建至少一个动作事件的步骤,包括:
4.如权利要求2所述的应用数据获取方法,其特征在于,所述根据所述可交互组件的组件类型构建至少一个动作事件的步骤,包括:
5.如权利要求2所述的应用数据获取方法,其特征在于,所述根据所述应用界面数据确定各动作事件对应的置信分值的步骤,包括:
6.如权利要求5所述的应用数据获取方法,其特征在于,所述控制所述待测应用执行所述目标动作事件,并获取所述待测应用执行所述目标动作事件后的应用界面数据的步骤之后,还包括:
7.如权利要求6所述的应用数据获取方法,其特征在于,所述将所述当前遍历次数与预设遍历步长进行比较的步骤之后,还包括:
8.一种应用数据获取装置,其特征在于,所述应用数据获取装置包括以下模块:
9.一种应用数据获取设备,其特征在于,所述应用数据获取设备包括:处理器、存储器及存储在所述存储器上并可在所述处理器上运行的应用数据获取程序,所述应用数据获取程序被处理器执行时实现如权利要求1-7中任一项所述的应用数据获取方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有应用数据获取程序,所述应用数据获取程序执行时实现如权利要求1-7中任一项所述的应用数据获取方法的步骤。
