Monkey示例

孙琨
2023-12-01

Monkey压测

一:前提条件:

  • 车机网络正常
  • 登陆车机账户,绑定应用内需要的账号
  • 打开权限:adb root , adb shell setenforce 0, adb remount
  • 清除日志:adb logcat -c
  • 设置日志缓存大小200MB:adb logcat -G 200M,测试是否成功的方法:adb logcat -g查看缓存大小

二:测试步骤:
A:单应用Monkey(打开被测应用至前台 ,adb shell dumpsys window | findstr mCurrentFocus,查看包名)
1: adb shell
2: monkey -p 包名 -s 100 --pct-motion 25 --pct-flip 25 --pct-touch 25 --pct-appswitch 20 --pct-majornav 0 --pct-trackball 5 --pct-nav 0 --pct-anyevent 0 --pct-syskeys 0 --ignore-security-exceptions --monitor-native-crashes --ignore-native-crashes --ignore-crashes --ignore-timeouts -v -v --throttle 2000 9000000 2>/sdcard/monkeyerror.txt 1>/sdcard/monkeyinfo.txt

B: 整机Monkey:
1:adb shell
2: monkey -s 100 --pct-motion 25 --pct-flip 25 --pct-touch 25 --pct-appswitch 20 --pct-majornav 0 --pct-trackball 5 --pct-nav 0 --pct-anyevent 0 --pct-syskeys 0 --ignore-security-exceptions --monitor-native-crashes --ignore-native-crashes --ignore-crashes --ignore-timeouts -v -v --throttle 2000 9000000 2>/sdcard/monkeyerror.txt 1>/sdcard/monkeyinfo.txt

三:Monkey添加黑白名单
本地新建whitelist.txt,push至/data/local/tmp/whitelist.txt,
adb shell monkey -s 100 --pkg-whitelist-file /data/local/tmp/whitelist.txt --pct-motion 25 --pct-flip 25 --pct-touch 25 --pct-appswitch 20 --pct-majornav 0 --pct-trackball 5 --pct-nav 0 --pct-anyevent 0 --pct-syskeys 0 --ignore-security-exceptions --monitor-native-crashes --ignore-native-crashes --ignore-crashes --ignore-timeouts -v -v --throttle 400 200
添加黑名单,新建blacklist.txt,其他同上。

三:导出日志:
- adb logcat -b crash -d > D:/monkey_crash.log
- adb logcat -b all -d > D:/monkey_all.log
- 根据不同项目要求pull出相应日志

Monkey指令解释说明:
-s 100:指定伪随机数生成器的seed值,如果seed相同,则两次Monkey测试所产生的事件序列也相同的
–pct-motion 25:手势事件
–pct-flip 25:键盘翻转的比例
–pct-touch 25:
–pct-appswitch 20:切换不同App的比例
–pct-majornav 0:
–pct-trackball 5:
–pct-nav 0:
–pct-anyevent 0:
–pct-syskeys 0:
–ignore-security-exceptions :应用程序发生许可错误(如证书许可,网络许可等)Monkey依然会发送事件,直 到事件计数完成
–monitor-native-crashes:监控native层崩溃,当c或c++程序出现崩溃,monkey程序会调用bugreport程序,收集一些崩溃日志
–ignore-native-crashes:出现native层崩溃时,monkey程序继续执行,不停止运行
–ignore-crashes :即使应用程序崩溃,Monkey依然会发送事件,直到事件计数完成
–ignore-timeouts:应用程序发生ANR错误,Monkey依然会发送事件,直到事件计 数完成
–throttle 2000:事件间隔2000毫秒

断开Monkey:
Monkey运行时,后台的进程就有monkey进程在执行,你执行如下命令:
top | grep monkey
kill pid 即可
或者:adb shell pkill monkey 即可

指令解释借鉴:https://blog.csdn.net/cadi2011/article/details/118500126(Android之Monkey源码分析(第四篇:命令行参数解析过程分析与参数作用阐述))

 类似资料: