APP指定页面进行monkey 测试

目前大部分的Monkey测试的方式大都无法对独立的模块进行稳定性测试,而每个业务线的入口在测试阶段很难通过原生的Monkey测试(随机性较强)来发现自己模块内crash的问题,针对这个问题,在网上查找资料

偶然在网上查看到这个技术,感兴趣,就记录下【感谢博主分享】

1.原文再此:https://blog.csdn.net/liyu520131414/article/details/69357777?utm_source=blogxgwz3

2.下载工具

链接:https://pan.baidu.com/s/1tIrgtzOz6wgsc8MJp1KqvA
提取码:h023

3.工具包下载好后,解压打开config.xml文件,

APP指定页面进行monkey 测试

APP指定页面进行monkey 测试

 

 

第一步,获取并输入app的package:aapt d badging apk的路径【找到apk,鼠标长按拖进去,回车】,以及第二步的命令,也可以获取到package

第二步,获取并输入app的起始activity:

①:adb shell dumpsys window windows | findstr "mCurrent"

②:adb shell dumpsys activity | findstr "mFocusedActivity"

第三步,获取并输入activity白名单:

①.也可以使用adb logcat -v time -s ActivityManager,点击app功能跳转想要测试的页面,cmd页面就可以刷新获取到跳转页面的activity,然后把activity输入到白名单内

【注:当白名单内的activity的数量大于1的时候,每个activity后面都需要添加英文逗号 “,” ,最后一个不需要添加,否则多个白名单的activity的value就会链接在一起,导致程序检测到与当前页的activity不一致,就一直返回到主页面activity上,影响测试】

第四步,cmd进入工具包所在的路径,执行命令:java -jar monkeyTest.jar

第五步,再开启一个cmd,执行monkey命令:www.baidu.com,命令和平时测试不需要变化,根据自己需要输入参数执行并保存log,等待monkey执行结束,OK结束

----------------------------------------------------我的分割线----------------------------------------------------

填坑一:之前一博客好友反馈,当前页面在activity里,但是仍然跳转到主入口,我今天2019-07-29有复现到,后来瞎捣鼓,就好啦,没有找到原因,以后发现再记录吧【初步分析是白名单内的activity的“ / ”,导致的】

填坑二:当前apk页面,不在白名单内,应跳转到主入口页面,但无法跳转到主入口页面,后来分析,是主入口的activity写法不对,错误的写法com.zhihu.android/.app.ui.activity.MainActivity(使用命令查看,是正确的)

APP指定页面进行monkey 测试,但是跳转有问题,应是com.zhihu.android.app.ui.activity.MainActivity,

APP指定页面进行monkey 测试

activity的“ / ”导致重复使用com.zhihu.android,所以去掉“ / ”,就解决了。

缺陷:

每个页面都会有个activity,而且,会出现多个页面共有同一个activity的现象,这样的话,就有个缺陷,如果有个A页面下的B页面,他们的共用同一个activity,我只是想在A页面跑monkey,B页面不跑monkey,这个需求是无法通过这个方法达到的,所以,A、B页面都会测试到,原因就是,他这个是针对activity的测试,只要是白名单里的activity,都是可以测试到的,除非A页面、B页面不共用一个activity。这个技术只是比基本的monkey更细化一点,还无法真正达到指定A页面moneky测试,希望以后有大神,可以改善下,我帮忙搬砖,前提是moneky不会过时。

上一篇:Monkey的使用


下一篇:Android 稳定性测试工具 Monkey(2) - 随机事件