Android-Monkey 压力测试

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

你可能感兴趣的:(Android-Monkey 压力测试)