学习目标:学会Monkey命令的使用 模拟器
一.monkey测试
1.压力测试:在一定的时间内进行大量操作。
2.稳定性测试:功能基本稳定之后,一直做到回归
主要找crash和anr问题,必解
二.什么是monkey测试
测试:随机操作(对整体app验证,不针对模块,不针对单个功能。用于模拟人的操作),如调节亮度,调节声音,截屏,做设置。本质上monkey为伪随机操作(可以测试随机序列值)。
三.如何做monkey测试
1.环境准备(pc)
1)设置jdk(JDK下载地址)和sdk(SDK下载地址)的环境变量
2)验证配置是否成功,在cmd中:jdk: java -version。sdk:adb version
2.环境准备(安卓)
1) 打开开发者模式–>USB调试
2) 验证是否成功:adb devices
3) 以上验证成功表示monkey环境配置成功
3.执行monkey测试
1)此命令是显示monkey的参数命令
adb shell monkey
结果:
C:\Users\EDY>adb shell monkey
args: []
usage: monkey [-p ALLOWED_PACKAGE [-p ALLOWED_PACKAGE] ...]
[-c MAIN_CATEGORY [-c MAIN_CATEGORY] ...]
[--ignore-crashes] [--ignore-timeouts]
[--ignore-security-exceptions]
[--monitor-native-crashes] [--ignore-native-crashes]
[--kill-process-after-error] [--hprof]
[--match-description TEXT]
[--pct-touch PERCENT] [--pct-motion PERCENT]
[--pct-trackball PERCENT] [--pct-syskeys PERCENT]
[--pct-nav PERCENT] [--pct-majornav PERCENT]
[--pct-appswitch PERCENT] [--pct-flip PERCENT]
[--pct-anyevent PERCENT] [--pct-pinchzoom PERCENT]
[--pct-permission PERCENT]
[--pkg-blacklist-file PACKAGE_BLACKLIST_FILE]
[--pkg-whitelist-file PACKAGE_WHITELIST_FILE]
[--wait-dbg] [--dbg-no-events]
[--setup scriptfile] [-f scriptfile [-f scriptfile] ...]
[--port port]
[-s SEED] [-v [-v] ...]
[--throttle MILLISEC] [--randomize-throttle]
[--profile-wait MILLISEC]
[--device-sleep-time MILLISEC]
[--randomize-script]
[--script-log]
[--bugreport]
[--periodic-bugreport]
[--permission-target-system]
COUNT
2)[ ]内参数选加,COUNT必加。直接输入数字是对整机进行测试。
adb shell monkey 100
结果
C:\Users\EDY>adb shell monkey 10000
bash arg: 10000
args: [10000]
arg: "10000"
// Injection Failed
// Injection Failed
// Injection Failed
// Injection Failed
// Injection Failed
// activityResuming(com.google.android.googlequicksearchbox)
3)对指定的应用进行测试(包名:应用id):
adb shell monkey -p [包名] 100
(怎么看包名:adb shell pm list packages ||
系统级别 adb shell pm list packages -s ||
用户安装的:adb shell pm list packages -3)
4) [–ignore-crashes] :忽略崩溃
[–ignore-timeouts] :忽略超时,anr
使用以上指令当发生崩溃和超时会结束app并重启app进行monkey,不会重置事件数并继续
[–ignore-security-exceptions]:忽略 安全证书
5) [-s SEED] 指定一个序列值 :两次monkey执行一样的seed值,那么他们的操作流程是一样的。手机初始状态不一样,则两次执行对象就不能保证
6)[-v [-v] …] 日志的级别程度:最大值是 -v -v -v 即使最详细的日志体现出来
一个v:只告诉测试结果是否成功
两个v:告诉结果和过程中启动的东西和包名
三个v:界面,服务器,坐标位置,未使用位置均会展示
7)[–pct-touch PERCENT] [–pct-motion PERCENT]
[–pct-trackball PERCENT] [–pct-syskeys PERCENT]
[–pct-nav PERCENT] [–pct-majornav PERCENT]
[–pct-appswitch PERCENT] [–pct-flip PERCENT]
[–pct-anyevent PERCENT] [–pct-pinchzoom PERCENT]
[–pct-permission PERCENT]
以下是各个参数的含义:
–pct-touch:触摸事件的比例。
–pct-motion:移动事件(包括滑动和拖拽)的比例。
–pct-trackball:轨迹球事件的比例。
–pct-syskeys:系统按键事件的比例。
–pct-nav:导航事件(如方向键等)的比例。
–pct-majornav:主要导航事件(如 HOME、BACK、MENU 键等)的比例。
–pct-appswitch:应用切换事件的比例。
–pct-flip:手机盖合/开合事件的比例。
–pct-anyevent:任意事件的比例。
–pct-pinchzoom:缩放手势事件的比例。
–pct-permission:权限授权事件的比例。
例如,如果我们想让 Monkey 工具在产生随机事件时,触摸事件和主要导航事件各占一半比例,那么可以使用以下命令:
adb shell monkey --pct-touch 50 --pct-majornav 50
8) 工作中的事件数:35万次,延迟时间450ms(0.45秒)( [–device-sleep-time MILLISEC])
9)结果值分析:只有出现//Monkey finished 表示测试成功,其他均为失败。
- crash:奔溃:logcat日志
- anr无响应:adb shell /data/anr/traces.txt
- monkey测试异常中断
- 手机关机
- 重启
版权归原作者 伊可同学 所有, 如有侵权,请联系我们删除。