安卓移动端monkey自动化测试
2024-04-24 15:59 加个小鸡腿 阅读(203) 评论(0) 编辑 收藏 举报monkey是安卓平台的一个命令行工具,用来对应用程序进行随机的自动化测试,主要是用来检测程序的稳定性、发现崩溃crash和程序无反应(ANR)的问题,由于monkey发的是随机事件,所以可以使用monkey来对应用程序做压力测试,验证程序的可靠性。
前期步骤:需要用usb将电脑和安卓设备连接到一起,打开安卓设备上的开发者模式中的usb调试,另外电脑上需要安装adb工具
查看是否安卓设备是否连接成功:
adb devices可以查看到已经连接上来的安卓设备
List of devices attached
2c7c688a device
如果不知道要则是的应用程序的包名,可以打开应用程序后,使用命令adb shell dumpsys window w | findstr name=来查看包名,如下,我打开了平板上的贝乐虎,包名输出:
mSurface=Surface(name=RoundCorner) mSurface=Surface(name=RoundCorner) mSurface=Surface(name=NavigationBar) mSurface=Surface(name=StatusBar) mSurface=Surface(name=com.ubestkid.beilehu.android/com.ubestkid.foundation.activity.home.PadSongHomeActivity) mSurface=Surface(name=com.android.systemui.ImageWallpaper) name=pip_input_consumer
根据上面加黑的看出包名就是:com.ubestkid.beilehu.android
简单的monkey测试:adb shell monkey -p com.ubestkid.beilehu.android -v 500 > monkey1.txt 表示向包名是 com.ubestkid.beilehu.android的应用发500个随机事件。
启动Monkey测试: adb shell monkey [options] <event-count> <event-count>:指定Monkey要执行的事件数量。 [options]:一系列可选参数,用于定制测试行为。 常用Monkey命令参数: -p <package-name>:指定要测试的应用包名。 -v 或 -v -v 或 -v -v -v:增加日志的详细程度,可以多次使用以增加详细级别。 --throttle <milliseconds>:指定事件间隔时间,单位是毫秒。 --ignore-crashes:即使遇到崩溃也不停止测试。 --ignore-timeouts:忽略超时异常,继续测试。 --ignore-security-exceptions:忽略安全异常。 --kill-process-after-error:在遇到错误后结束测试并杀死进程。 -s <seed>:指定随机数生成器的种子值,使得测试可重复。
使用详细举例:
adb shell monkey -p com.ubestkid.beilehu.android --throttle 800 -v -v -v 10000 > monkey.log & adb shell logcat -v time > logcat.log &
--throttle 800 表示前后两个事件间隔是800ms,不会一下子就跑完了,事件可以按照自己的需要调节
10000是随机事件的数目,如果上面间隔比较大的话,会执行比较久
同时还会执行adb logcat抓日志 -v time表示的是日志中会加上时间记录
这个日志介绍了很多事件分布百分比:https://blog.csdn.net/bulucc/article/details/130814316
执行monkey后需要进行日志分析:
- 执行完Monkey测试后,日志会被保存到指定文件或默认位置(如手机的/sdcard/monkey.log)。
- 通过日志搜索关键词如“ANR”、“CRASH”或“Exception”来定位问题。
- 使用文本编辑器(如Notepad++)打开日志文件,便于搜索和分析