Adb-for-test简单使用

原创 2016年07月24日 20:55:27

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

 

 

 

 

相关文章推荐

adb_operate_test

  • 2015年05月27日 10:47
  • 38KB
  • 下载

使用Google Test的一个简单例子

本博客http://blog.csdn.net/livelylittlefish 贴出作者(三二一@小鱼)相关研究、学习内容所做的笔记,欢迎广大朋友指正! 0. 引子   本例是从gtest-1....

ural 2002. Test Task 简单模拟 stl map的使用

2002. Test Task Time limit: 0.5 second Memory limit: 64 MB It was an ordinary grim Octobe...

简单的使用adb shell

adb是Android中自带的调试工具,它存放在sdk的platform-tools文件夹中。

android app系统签名以及adb安装卸载等简单命令使用

ref:http://blog.csdn.net/bulkin/article/details/7601609 项目需要,用到了系统的一些权限。4.2下可以在manifest授权的到了4.4权限获取不...

ADB命令简单使用技巧(Android)

* 感谢阅读这篇博文,欢迎关注与评论!*连接手机和电脑的“脐带”,就是ADB——Android Debug Bridge。通过ADB我们可以在Eclipse中方面通过DDMS来调试Android程序,...

adb安装及简单使用

一、安装adb 把adb安装包的文件放到C:\Windows\System32下 修改adb在所有目录下都可以执行 添加环境变量(set path=%path%;C:\Windows\System) ...

最简单的方法解决虚拟机不能使用ADB连接开发安卓

关于ADB的使用,有简单的更有大神级别的

关于ADB的使用,有简单的更有大神级别的 小白级  adb install  *.apk     安装软件     adb install -r *.apk    重新安装该软件    adb...

ADB工具及简单说明

  • 2013年09月09日 16:50
  • 540KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Adb-for-test简单使用
举报原因:
原因补充:

(最多只允许输入30个字)