[发明专利]基于Appium的安卓应用自动化触发执行方法在审
申请号: | 201810271904.6 | 申请日: | 2018-03-29 |
公开(公告)号: | CN108829389A | 公开(公告)日: | 2018-11-16 |
发明(设计)人: | 宋虹;王焱景;朱双 | 申请(专利权)人: | 中南大学 |
主分类号: | G06F8/38 | 分类号: | G06F8/38;G06F9/451 |
代理公司: | 长沙永星专利商标事务所(普通合伙) 43001 | 代理人: | 周咏;米中业 |
地址: | 410083 *** | 国省代码: | 湖南;43 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 触发 应用 模拟操作 自动化 控件元素 启动参数 唯一标识 应用程序 遍历 压栈 算法 存储 覆盖率 输出 | ||
1.一种基于Appium的安卓应用自动化触发执行方法,包括如下步骤:
S1.获取待执行Android应用程序的全部Activity组件名称并生成启动参数文件,将待执行Android应用程序在Appium框架下自动启动执行;
S2.获取待执行Android应用的GUI信息及控件元素的信息,并生成GUI唯一标识;
S3.动态生成待执行应用的模拟操作事件,并进行压栈存储;
S4.在Appium框架下按照深度遍历算法依次执行步骤S3得到的模拟操作事件,从而对待执行应用进行自动触发测试;
S5.输出遍历结果,从而完成安卓应用的自动化触发执行。
2.根据权利要求1所述的基于Appium的安卓应用自动化触发执行方法,其特征在于步骤S2所述的获取待执行Android应用的GUI信息及控件元素的信息并生成GUI唯一标识,具体包括如下步骤:
a.获取当前GUI下所有控件元素信息和GUI所在的Activity组件名称;
b.生成当前GUI的唯一标识并存储。
3.根据权利要求1所述的基于Appium的安卓应用自动化触发执行方法,其特征在于步骤S3所述的动态生成待执行应用的模拟操作事件并进行压栈存储,具体为包括如下步骤;
(1)对编辑控件EditText生成模拟操作事件Event;
(2)对列表控件ListView生成模拟操作事件Event;
(3)对除编辑控件和列表控件外的剩余控件生成模拟操作事件Event。
4.根据权利要求3所述的基于Appium的安卓应用自动化触发执行方法,其特征在于步骤(1)所述的对编辑控件EditText生成模拟操作事件Event,具体为首先,获取编辑控件EditText的输入提示信息,当编辑控件EditText的text属性值或content-desc属性值不为空时,则以此作为编辑控件EditText的输入提示信息,否则根据编辑控件EditText坐标属性bounds寻找当前GUI下,坐标中心点位于编辑控件EditText左侧且与之距离最近的文本控件TextView,作为与编辑控件EditText存在语义关联的控件,获得其不为空的text属性值或content-desc属性值作为编辑控件EditText的输入提示信息;其次,根据输入提示信息匹配EditContent.txt中写入的键值对,如果匹配成功,则以匹配到的值作为编辑控件EditText的测试数据,生成执行输入操作的模拟操作事件Event,否则分析输入提示信息,产生要求格式的随机输入字符串作为编辑控件EditText的测试数据,生成执行输入操作的模拟操作事件Event,最后将生成的Event压入EventStack栈中存储。
5.根据权利要求3所述的基于Appium的安卓应用自动化触发执行方法,其特征在于步骤(2)所述的对列表控件ListView生成模拟操作事件Event,具体为首先分别判断列表控件ListView的clickable属性和long-clickable属性的值,对其子项目Item生成相应的操作事件Event压入EventStack栈中存储;然后根据Item中内部控件的clickable属性、long-clickable属性对其生成相应的操作事件Event压入EventStack栈中存储。
6.根据权利要求1所述的基于Appium的安卓应用自动化触发执行方法,其特征在于步骤S4所述的在Appium框架下按照深度遍历算法依次执行步骤S3得到的模拟操作事件从而对待执行应用进行自动触发测试,具体包括如下步骤:
1)确定TraversalStack栈顶所指向的GUI是否完成其内部控件的遍历;
2)前往模拟操作事件Event正确的执行页面;
3)执行模拟操作事件Event;
4)继续遍历待执行应用中未被测试的Activity组件,直到遍历结束。
7.根据权利要求6所述的基于Appium的安卓应用自动化触发执行方法,其特征在于步骤4)所述的继续遍历待执行应用中未被测试的Activity组件,具体为在TraversalStack中GUI的相关模拟操作事件全部被执行完毕,完成对Activity组件森林中以主页面所在Activity组件作为根节点的树的深度遍历之后,判断待执行应用是否仍有Activity组件未被测试并依次利用Appium工具以之作为主页面所在Activity组件启动应用,重复权利要求1中所述步骤S2~S4对执行未被测试的Activity组件再次进行深度优先遍历,直至不存在未被测试的Activity组件为止。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中南大学,未经中南大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810271904.6/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种界面展示的处理方法及系统
- 下一篇:一种软件主界面框架设计方法