Android-Monkey 压力测试
Adnroid-UI Automator Viewer 的使用
Adnroid-MonkeyScript 压力测试(一)
Adnroid-MonkeyScript 压力测试(二)
Android-MonkeyRunner 压力测试(一)
Android-MonkeyRunner 压力测试(二)
Android-MonkeyRunner API 参考
Android-Monkey 源代码参考
1.Monkey 介绍
Monkey是Android中一个对App进行压力测试的命令行工具,可以向系统发送伪随机的用户事件流对正在开发的App进行压力测试(模拟用户操作App)。压力测试主要是为了提高App的稳定性、和用户留存率。Monkey功能强大,主要包含三个部分:1.Monkey 命令。2.MonkeyScript。3.Monkeyrunner。该篇文章主要介绍Monkey命令。
用 Monkey 进行App压力测试的结果有三种:
1.正常
2.Crash :程序崩溃
3.ANR:程序无响应
2.Monkey 命令
查看 monkey 使用帮助: adb shell monkey -help
1.在手机上随机操作 100 次。
adb shell monkey 100
2. -p 指定要进行测试的 App 的包名,可以指定多个包名,对多个 App 进行测试。
adb shell monkey -p
1000
3. -c 指定要进行测试的 App 的 category,可以指定多个 category,Monkey 将仅允许系统访问其中一个指定类别中所列的 Activity。
adb shell monkey -c
1000
category 是启动 Activity 时的隐式 Intent,例如:android.intent.category.LAUNCHER,表示该 Activity 可以作为启动界面。
4. -s 设置伪随机数生成器的 seed 值。
adb shell monkey -p
-s 12345 1000
如果你使用相同的 seed 值重新运行 Monkey,它将会生成相同的事件序列。主要用来将程序 Bug 重现。
5. -v 输出日志信息的详细级别,共三个级别,最详细级别是三个 -v。
adb shell monkey -v -v -p
-s 12345 1000
6. 将log日志信息保存到指定文件。
adb shell monkey -p
-s 100 1000 >C:\Desktop\monkey\testlog.txt
7. --throttle 在随机事件中插入固定的延迟时间,单位:毫秒。
adb shell monkey -v -p
--throttle 500 1000
8. --pct-touch 设置触摸事件的百分比,即手指对屏幕进行点击抬起(down-up)的动作。
adb shell monkey -v -p
--pct-touch 50 1000
9. --pct-motion 设置移动事件百分比,这种事件类型是由屏幕上某处的一个down事件一系列伪随机的移动事件和一个up事件,即点击屏幕,然后直线滑动,最后抬起的事件。
adb shell monkey -v -p
--pct-motion 50 1000
10. --pct-trackball 设置轨迹球事件百分比,这种事件类型是一个或者多个随机移动,包含点击事件,这里可以是曲线运动。
11. --pct-nav 设置基本导航事件百分比,包括:上下左右四个方向按键。
12. --pct-majornav 设置主要导航事件百分比,这些导航事件通常会导致UI界面发生变化,导航按键包括:back键,菜单键等。
13. --pct-syskeys 设置系统按键事件百分比,包括:back键,home键,音量键,拨号键等。
14. --pct-appswitch 设置Activity 启动次数所占百分比。Monkey 会以随机间隔发起 startActivity() 调用,以最大限度地覆盖软件包中的所有 Activity。
15. --pct-anyevent 设置其他事件的百分比,包括所有其他类型的事件,例如按键、设备上的其他不太常用的按钮等。
16. --ignore-crashes 忽略操作时的崩溃异常。
adb shell monkey --ignore-crashes -p
1000
Monkey 在执行操作时,如果程序出现异常,Monkey 会停止运行。会导致随机事件次数没有执行完成,设置此项,就算程序出现异常,Monkey 将继续执行随机事件,直到事件计数完成。
17. --ignore-timeouts 忽略程序执行超时(ANR)。
adb shell monkey --ignore-timeouts --ignore-crashes -p
1000
18. --ignore-security-exceptions 忽略程序发生权限错误。
adb shell monkey --ignore-security-exceptions -p
1000
当程序发生权限错误(例如启动一些需要特定权限的Activity)导致的异常时,Monkey将停止运行。设置此项,Monkey 将继续执行随机事件,直到事件计数完成。
19. --monitor-native-crashes 监视并报告 Android 系统原生代码中发生的崩溃。
20. --ignore-native-crashes 忽略本地代码导致的崩溃。
21. --kill-process-after-error 设置此项,程序出异常 Monkey 就会停止。而出现异常的App将保持运行状态。
22. --wait-dbg 停止正在执行的 Monkey,直到有调试器和它相连接。
13. --dbg-no-events 设置此项,Monkey 将执行初始启动,进入到一个测试 Activity,然后不会再进一步生成事件。
24. --hprof 设置此项,则会在 Monkey 事件序列之前和之后立即生成分析报告。
3.参考资料
Google 官方文档: https://developer.android.google.cn/studio/test/monkey.html