[发明专利]一种基于monkey源码的测试开发方法有效
申请号: | 202010529287.2 | 申请日: | 2020-06-11 |
公开(公告)号: | CN111694744B | 公开(公告)日: | 2023-03-21 |
发明(设计)人: | 请求不公布姓名 | 申请(专利权)人: | 安然 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 北京一枝笔知识产权代理事务所(普通合伙) 11791 | 代理人: | 张庆瑞 |
地址: | 102402 北京市房山区窦店*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 monkey 源码 测试 开发 方法 | ||
1.一种基于monkey源码的测试开发方法,其特征在于,
利用monkey源码中的系统API或者隐藏API,来实现所需逻辑,获取根节点,封装自动化逻辑,完成自动化操作;其中,所述利用monkey源码中的系统API或者隐藏API来实现所需逻辑,获取根节点,封装自动化逻辑,完成自动化操作,具体为:以手机端作为服务器,在所述手机端,利用monkey源码中的系统API或者隐藏API,调用类和方法,构造实例,获取当前活动界面的根节点,或者调用所述实例用来监听界面变化,获取界面变化下的根节点,将所需逻辑封装为函数,当需要运行时,调用所述函数,得到所需的自动化操作结果;
所述获取根节点的方法,过程如下:
实例化包名为android.app.UiAutomation下的类名为UiAutomation的实例,通过UIAutomation类的public UiAutomation(Looperlooper, IUiAutomationConnectionconnection)构造方法进行构造实例A;
调用所述实例A,调用connect方法;
调用所述实例A的getServiceInfo方法,并通过该方法返回值获得AccessibilityServiceInfo类型的变量记为info;
调用所述实例A的setServiceInfo方法并将info变量作为参数传入;
获取当前活动界面的根节点,或者调用所述实例用来监听界面变化,获取界面变化下的根节点;
所述获取根节点,完成自动化操作,包括:定位器以及执行器;
所述定位器,以monkey为底层获取根节点,所述定位器,实现流程如下:
客户端向服务器端的jar包服务器发送socket请求,获取当前服务器端界面的信息;
jar包服务器接收到客户端的socket请求后,将所述服务器端界面的信息发送给客户端;
客户端将传递过来的服务器端界面的信息显示出来;
用户根据个人需求,在客户端点击所述界面的信息中某个位置,并将此位置相对于客户端屏幕的坐标传递到服务器端的jar包服务器;
jar包服务器接收所述位置坐标,根据所述位置坐标,调取对应控件信息,并且将控件信息发送给客户端;
客户端接收所述控件信息,将控件信息中各种元素属性保存到中间文件或数据库中,画出所述位置坐标的具体位置,并在客户端界面上显示所述控件信息的各种元素属性;
所述执行器,以monkey为底层获取根节点,将所需逻辑封装为函数,当所需元素出现时,查找到所述元素,并进行相应操作;
所述执行器,实现流程如下:
将所述控件信息中各种元素属性推送到服务器端的jar包服务器中,进行保存;
客户端运行查找元素API;
客户端使用查找元素功能,向服务器端的jar包服务器发送socket请求,请求调用元素某一个属性值;
服务器端的jar包服务器,从当前界面的信息查找是否存在所述元素的某一个属性值,并给出对应的查询结果;
服务器端的jar包服务器将正确的查询结果发送到客户端;
所述jar包服务器,采用monkey源码编译出来的jar包作为用来测试的服务器代码的外壳框架,在外壳框架下编辑用来测试的服务器代码,能够访问隐藏的API,所以能够调用IPackageManager的getPackageInfo获取PackageInfo类型的变量pkgInfo,根据pkginfo变量的requestPermissions获取所需权限的字符串数组,利用 pkgInfo的grantRuntimePermission方法让待测试的app所需要的所有权限都自动允许,使得待测试app具有所有所需要请求的权限,jar包服务器能够响应客户端发送过来的监听界面的请求;
所述监听界面的请求,客户端向jar包服务器端发送socket请求,jar包服务器接收客户端发送的socket请求,在任何界面的变化下都能够获取当前界面的根节点,根据根节点能够遍历获取整个界面的信息,来封装查询和操作控件元素的逻辑。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于安然,未经安然许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010529287.2/1.html,转载请声明来源钻瓜专利网。