Adb-for-test简单使用

Adb-for-testpythonjava版本,github地址:https://github.com/gb112211/Adb-For-Test 

定位元素方式也是使用dump当前activity树结构:

 

元素获取就是通过解析dump文件内容查找元素,可能速度上比appium快很多。

当然可以使用他这个工具完成部分与appium基本相同的功能。

我使用他这个工具,实现了自定义几个Activity界面内的monkey测试

1.因为monkey测试的随机无序性,导致可能部分界面可能永远都无法进入,或者几率很小,所以要实现有些界面内是否稳定,要自定义几个界面内的测试。

2.由于公司使用插件化要跑几个插件包,自定义界面内monkey测试也是很必须的,还有集成测试时插件之间的稳定性也是必要的。

3.可能会找到一些ui问题,兼容问题等,所以要进行自定义monkey测试。

配置项:

目前想到的配置项是写在一个json结构体内的:

 

PackageName表示你要测试的包名是什么。

PackageActivity表示你要启动的Activity是什么。

WhiteList表示你要自定义Monkey测试哪些Activity界面。

BlackList表示哪些Activity界面你不想要进行测试,当然可以不写。

TestMain表示你要进入某个页面的名字,然后我会在解析json时判断名字然后执行操作步骤进入这个界面。

 

执行操作:

1.循环读取当前activity,获取activity我自己写了一个方法:


先查看当前包名的activity是否存在,如果为空,则表示不存在:

首先杀掉应用。(如果应用程序被置于后台后,也是会先杀掉应用,暂时还不知道怎么利用adb将后台应用启动的方法,后期研究,或者大家有知道的可以告诉我)。然后再启动Activity

2.将设置好的whiteListblackList与当前的获取的Activity进行对比。

3.如果判断当前界面Activity不在whiteList中直接执行返回操作,每次都会执行返回操作,直到存在则进行monkey操作。

4.执行monkey操作过程:

使用随机数,根据随机数进行不同的操作:

 

5.自定义进入界面:

 

每次启动应用之后都会进入某个界面,根据testMain定义的名字,传给runByModuleName处理:

 

根据名字执行不同的操作进入某个页面。

 

大致简单的实现的monkey测试。所有操作都是使用adb-for-test框架提供的封装好的adb命令实现的。可能在实际操作过程会出现某个页面弹出浮层对话框,现在我是通过判断界面是否存在然后进行点击,如下示例:

 

改进点:

1.正如上边说的:如果应用程序被置于后台后,我会杀掉应用,然而可能会有一些问题,假如用户那一刻后台又启动了它,正好崩溃,那这种情况可能就没有考虑到了,后期优化。

2.自定义进入某个页面,我是写好了json,后期可能公司其他业务测试可能也会用这个工具,runByModuleName下就应该变成各业务线人员可以很方便的添加自己的脚本,后期想想有什么好办法。

3.根据自动遍历工具思路,设计出适合自己的自动测试内容。自动遍历工具:https://testerhome.com/topics/4645 

 

解决小米等手机安装应用弹出框等问题。

使用adb-for-test工具进一步优化了小米系手机adb shell input text内容时,假如你当前手机输入法是其他输入法并且是中文输入法下,然后可能输入不上内容的问题。如下:

 

解决方法是安装appium自带的输入法apk包,可以在F:\Appium\AppiumForWindows-1.2.0.1\node_modules\appium\build\unicode_ime_apk这里找到。

1.具体步骤:

(1)查看appium输入法是否在系统输入法中。

通过命令:adb shell ime list -s|findstr io.appium.android.ime/.UnicodeIME 查看

(2)再查看应用apk是否安装。有时候通过以上命令并不能查看到,但是确实是已经安装了应用程序,这是因为小米手机权限问题,可以进入输入法界面查看到:

 

默认如果安装了apk在输入法设置界面并未勾选上,这应该就是通过上面命令无法查看到的原因了。查看应用是否已经安装了:adb shell pm list package|findstr io.appium.android.ime

(3)如果上面两步中都未取到值,则就要安装appium的输入法了。

 

使用上边代码在安装的时候就会弹出是否继续安装的弹出框啦:

 

然后通过框架带的查找控件方法查找继续安装按钮,并定位,然后点击它:

 

(4)最后切换为appium的输入法:

Adb shell ime set io.appium.android.ime/.UnicodeIME

 

 

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值