monkey命令详解:基本语法、参数配置、日志分析等

monkey命令详解:基本语法、参数配置、日志分析等

文章目录monkey介绍基本语法参数配置基本控制参数日志相关参数事件类型参数异常信息调试参数其他参数其他配置关于日志分开输出保存关于黑白名单结果分析错误信息类型查找出错activity复现问题monkey介绍monkey:由 Android SDK 提供的一个命令行工具;主要用于对 Android 应用进行压力测试和稳定性测试实现方式:向系统发送伪随机的用户事件流来模拟用户的随机操作,如点击、滑动、按键等,以检测应用程序是否会在不同测试场景下出现崩溃等异常信息特点: 单用户、快速、顺序执行、伪随机命令(注:monkey测试是一种 stress-test,但本质上不符合并发概念;性能测试上的压力测试指的是模拟多个用户高并发测试)基本语法adb shell monkey [options]

#"adb shell":确保devices已连接#"monkey":monkey命令#"[options]":可选;配置参数#"":必选;执行数量参数配置adb shell monkey -p 指定包名 -s 伪随机数生成器的seed值 --throttle 每个事件的延迟 --randomize-throttle 事件的随机时延 --pct-xxxx -v 日志级别(-v;-vv;-vvv) > 重定向日志打印位置

基本控制参数-p :指定需要执行monkey的应用包名,若不指定,则默认向系统内所有的应用发送随机事件如:对 com.happy.app 进行发送 10000 个随机事件进行monkey测试adb shell monkey -p com.happy.app 10000如果要指定某个activity进行测试,使用 -cadb shell monkey -c android.intent.category.LAUNCHER#对 android.intent.category.LAUNCHER 这个Avtivity进行monkey测试-s :伪随机数生成器的seed值,指定的随机数种子;使用 相同的seed值 再次运行monkey,即 -s 后的种子值保持不变,会生成 相同的随机事件序列 ,就可重复之前的monkey测试,可以用于复现bug。如果不指定种子值,系统会随机生成一个13位数字的种子值,在出现bug时,该种子值会和bug信息一起被输出,以便复现bug如:使用随机数种子200,发送 10000 次事件adb shell monkey -p com.happy.app -s 200 10000–throttle :每个事件的延迟,以毫秒(ms)为单位;可用于模拟更真实的用户操作速度。如:在每次发送事件后暂停 500 毫秒,总共发送 10000 个事件。adb shell monkey -p com.hpaay.app --throttle 500 10000日志相关参数-v \ -vv \ -vvv :日志级别参数;设置日志的详细程度,可重复使用,最多三次,次数越多日志越详细。" > " 或者 " >> " :重定向日志打印输出位置

adb shell monkey -p com.happy.app -v 10000 > monkey_log.txt#"-v":默认级别;一级日志详细程度,显示基本的事件计数喝完成百分比;并将日志输出在 monkey_log.txt中

adb shell monkey -p com.happy.app -v-v 10000 > monkey_log.txtadb shell monkey -p com.happy.app -vv 10000 > monkey_log.txt#"-v-v 或者 -vv":二级日志详细程度,额外显示事件类型和目标包信息;并将日志输出在 monkey_log.txt中

adb shell monkey -p com.happy.app -v-v-v 10000 > monkey_log.txtadb shell monkey -p com.happy.app -vvv 10000 > monkey_log.txt#"-v-v-v 或者 -vvv":三级日志详细程度,显示每个事件的具体动作和结果等最详细信息;并将日志输出在 monkey_log.txt中

关于重定向指定:" > ":重定向,输出会覆盖" > > ":追加重定向,输出会追加在原来文件的末尾事件类型参数–pct-touch :设置触摸事件(点击屏幕)的百分比adb shell monkey -p com.happy.app --pct-touch 50 10000#"--pct-touch 50" 表示 50% 的事件是触摸事件–pct-motion :设置动作事件(滑动屏幕)的百分比adb shell monkey -p com.happy.app --pct-motion 30 10000#"--pct-motion 30" 表示 30% 的事件是滑动事件–pct-trackball :设置轨迹球事件的百分比(基本很少使用)

–pct-nav :设置导航事件(上下左右键)的百分比

–pct-majornav :设置主要导航事件(如返回键、菜单键)的百分比

–pct-syskeys :设置系统按键事件(如 Home 键、音量键)的百分比

–pct-appswitch :设置应用切换事件的百分比

adb shell monkey -p com.happy.app --pct-appswitch 10 10000#"--pct-appswitch 10" 表示 10% 的事件是启动其他应用–pct-flip :设置键盘翻转事件的百分比(适用于物理键盘设备)

–pct-anyevent :设置其他事件的百分比(包括不常用的事件)

–pct-pinchzoom :设置捏合缩放事件的百分比(双指缩放)

–pct-permission :设置权限事件的百分比(模拟权限弹窗操作)

–pct-rotation :设置屏幕旋转事件的百分比(横竖屏切换)

异常信息调试参数–ignore-crashes:忽略应用崩溃,继续执行测试

–ignore-timeouts:忽略应用无响应(ANR),继续执行测试

–ignore-security-exceptions:忽略安全异常,继续执行测试

–kill-process-after-error:当发生错误时,终止测试并杀死进程

–monitor-native-crashes:监控并报告原生代码崩溃(C/C++ 代码)

其他参数–hprof:在 Monkey 测试过程中,每隔一段时间生成内存快照(.hprof 文件);在测试结束后生成堆转储文件(用于内存分析)

–wait-dbg:等待调试器附加后再开始测试

–bugreport:在测试过程中自动生成 Bugreport 日志

–periodic-bugreport:定期生成 Bugreport 日志

–dbg-no-events:初始化测试但不发送任何事件

–setup scriptfile:运行指定的脚本文件以设置测试环境

-f :运行指定的脚本文件

–port :设置网络端口号(用于远程控制)

其他配置关于日志分开输出保存将monkey执行的标准日志和错误日志分开保存:monkey [option] 1 > [路径1\monkey.log] 2 > [路径2\error.log]

Linux预留3个文件描述符:0 ---- 标准输入(stdin)1 ---- 标准输出(stdout)2 ---- 标准错误(stderr)关于黑白名单可以通过黑名单和白名单来限制测试范围。白名单用于指定需要测试的应用,而黑名单用于排除不需要测试的应用黑名单: --pkg-blacklist-file (执行黑名单以外的apk)白名单: --pkg-whitelist-file (只执行白名单内的apk);或者通过 -p 参数来指定应用

adb shell monkey -p com.happy.app1 -p com.study.app2 10000#对 com.happy.app1 和 com.study.app2 两个包进行测试;可以多次使用 -p 参数进行指定多个应用

adb shell monkey --pkg-whitelist-file /sdcard/whitelis.txt 10000#创建白名单whitelis.txt,里面内容为 需要进行测试的包名#如: com.happy.app1 com.study.app2执行monkey:会对 com.happy.app1 和 com.study.app2 两个包进行测试

adb shell monkey --pkg-blacklist-file /sdcard/blacklist.txt 10000#创建白名单blacklist.txt,里面内容为 不需要进行测试的包名#如: com.happy.app1 com.study.app2执行monkey:会对 com.happy.app1 和 com.study.app2 两个包以外的apk进行测试

结果分析错误信息类型如果日志中出现以下关键字,则大概率出现异常信息

ANR : 程序无响应或ANR问题 CRASH : 崩溃问题 Exception : 其他问题 Native Crash:原生代码崩溃 Security Exception:安全异常查找出错activity在两个switch之间查找是哪个activity出现了问题

复现问题手动复现:查看monkey里面出错的一些事件,手动模拟执行这些事件

保持相同的seed,可以模拟上一次的monkey执行过程————————————————

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 原文链接:https://blog.csdn.net/GH_echo/article/details/145455224

✨ 相关推荐

锣钹科技APP下载
bt365官网是多少

锣钹科技APP下载

📅 08-07 👀 7516
我国常见益虫和食虫、食鼠、食草、播种益鸟分别有哪些?
从多战的春秋至战国时代,盔甲与武器的演变历程
下载旧版本彩票365软件

从多战的春秋至战国时代,盔甲与武器的演变历程

📅 07-26 👀 3678