Android自动化测试之Monkey
本来是做Web后端的,来公司实习变成微信小程序前端了,到这周变成Android APP测试人员了,也是微醺啊。
由于对手工测试终究是有些抵触,所有昨天小试了一下不用写代码的自动化压力测试,在此记下我的心得。
一、Monkey与Android SDK之间的关系
每个Android手机里都有Monkey工具,Monkey测试是随机模拟手指的一系列操作,此工具不可视化,需Android SDK中的adb来调用它。
二、环境配置
开始测试之前需要搭配的环境:Java的JDK、Android SDK、一台Android手机。由于本身就是做Web的,而且也学习过Android,所以这些软件电脑里就有现成的。如何配置JDK和SDK环境变量我就不多说了,网上一搜太多了。
三、正式测试
1. 测试时需以管理员身份运行cmd(命令提示符)。
2. 手机以小米8SE为例,需进入开发者模式,开启开发者选项,连接方式为传输文件,打开USB调试,打开USB安装(ps: 允许通过USB安装应用)、USB调试(安全设置)(ps: 允许通过修改权限或模拟点击)。
2. adb start-server 此命令是开启adb服务;adb kill-server 此命令是关闭adb服务。
3. adb install xxx.apk
安装apk到手机上,xxx.apk电脑上安装包的路径(如:F:\Monkey\xxx.apk);也可以用手机直接安装apk。
4. adb shell monkey -p com.android.xxx 1000(-p com.andoir.xxx是指定APP的包名,不加会对手机进行全局操作;1000为进行随机操作的次数)
但是这样测试会触发到音量键和状态栏,所以要根据需求要做一些改良。
5. adb shell settings put global policy_control immersive.full=* (此命令为全屏状态,可以隐藏状态栏,不过也会对其它应用造成影响)
adb shell settings put global policy_control null(使用此命令恢复状态栏)
(参考资料:http://www.cnblogs.com/ssyimeng/p/9777654.html)
6. 加上 --pct-syskeys 0 可屏蔽掉音量键,如:adb shell monkey -p com.android.xxx --pct-syskeys 0 1000
(参考资料:http://www.cnblogs.com/ssyimeng/p/9777654.html)
7. 当然日志肯定是不能少的,在末尾加上 >d:\xxx.txt,如:adb shell monkey -p com.android.xxx --pct-syskeys 0 1000 > F:\Monkey\log.txt
至此,最终的测试命令就出来了。
四、报错分析
在测试的时候若遇到错误,黑窗口会显示,如下图:
这时,我们就需要用到这里的seed,来重复报错的操作,来查看错误是如何触发的。
命令为:adb shell monkey -p com.android.xxx -s 1539935198710 100
五、总结
以上,是我个人对Monkey测试的一些心得,我也仅仅是一知半解,Monkey测试的其它命令可输入:adb shell monkey -help 来查看。