1.Monkey
1.Monkey定义
Monkey 是一个运行在【模拟器或真实设备】上,并生成伪随机的用户事件流(点击、触摸、手势及一些系统级别的程序)。使用Monkey可以随机、重复的对APP进行压力测试。
描述点 | 说明 |
---|---|
对象 | - 模拟器 - 真实设备 |
工作方式 | 随机+重复 —> 压力测试 |
2.常用命令参数汇总
分类 | 参数 | 说明 | 示例 |
---|---|---|---|
基础参数 | -s | 伪随机数种子发生器(用于规范monkey序列) | adb shell monkey -s 10 1000 |
-v | 输出日志显示 | adb shell monkey -v 1000 | |
-p | 指定APP对象 | adb shell monkey -p com.xueqiu.android 1000 | |
事件参数 | —throttle | 设置Monkey执行的速度【单位:毫秒】 | adb shell monkey —throttle 2000 1000 |
—pct-touch | 设置“触摸百分比” | adb shell monkey —pct-touch 50 1000 | |
—pct-motion | 设置“滑动百分比” | adb shell monkey —pct-motion 60 1000 | |
—pct-syskey | 设置“系统键百分比” | adb shell monkey —pct-syskeys 70 1000 | |
—pct-appswith | 设置“activity启动百分比” | adb shell monkey —pct-appswith 80 1000 | |
—pct-anyevent | 设置“其他类型百分比” | adb shell monkey —pct-anyevent 75 1000 | |
【不常用】—pct-nav | 设置“导航百分比” | adb shell monkey —pct-nav 60 1000 | |
【不常用】—pct-majornav | 设置“主要导航百分比” | adb shell monkey —pct-majornav 60 1000 | |
调试参数 | —ignore-crashes | 忽略crash | adb shell monkey —ignore-crashes 100 |
—ignore-timeouts | 忽略timeout | adb shell monkey —ignore-timeouts 100 |
2.【基础参数】命令
1.-p(参数)指定APP对象
1.【不使用 -p】不指定monkey的APP对象
adb shell monkey 100 # 随机执行100次【不指定APP】
2.【使用 -p】指定monkey的APP对象
adb shell monkey -p com.xueqiu.android 1000
3.【扩展】查看APP的“包名”
【方法1】
adb -e shell pm list packages # 查看所有的包名
adb -e shell pm list packages "xueqiu" # 查看"雪球"的包名 --> package:com.xueqiu.android
【方法2】
adb shell dumpsys window | findstr/grep mCurrentFocus
【方法3】
aapt d badging /c/Users/DELL/Downloads/com.xueqiu.android_12.35.3_311.apk | findstr "package"
- 【方法1】adb shell pm list packages “xueqiu”
- 【方法2】adb shell dumpsys window | findstr/grep mCurrentFocus
【方法3】aapt d badging /c/Users/DELL/Downloads/com.xueqiu.android_12.35.3_311.apk | findstr “package”
2.-v(参数)输出日志信息
-v (参数) 用于输出显示monkey过程中的日志信息
adb -e shell monkey -v 1000 # -v:输出详细的日志信息;-e: 代表“(进入)模拟器”;-d:代表“(进入)真机”
3.【事件参数】命令
1.-s(参数)伪随机数发生器生成种子值
-s (参数) 用于“伪随机数发生器的种子值”—> 如果用相同的种子值重新运行monkey,它将生成相同的事件序列。
adb shell monkey -v -s 5 5
2.—throttle(参数)设置monkey速度【毫秒】
—throttle (参数) 用于设置“事件间”延迟的速度—> 如果没有指定此参数,则不会有延迟,事件会尽快生成。
throttle [ˈθrɑːtl]
adb shell monkey --throttle 2000 10
3.—pct系列(参数)
1.常用
1.—pct-touch 触摸 <百分比>
—pct-touch (参数) 调整monkey命令触摸事件的百分比。(触摸事件是指在屏幕中的一个down-up事件,即在屏幕某处按下并抬起的操作),参数设置要根据被测应用程序的特点来修改设置。
adb shell monkey -v --pct-touch 80 100 # 设置“触摸事件”的百分比为80%
2.—pct-motion 滑动 <百分比>
—pct-motion(参数) 调整motion事件百分比。(motion事件是由屏幕上某处一个down事件、一系列伪随机的移动事件和一个up事件组成),需注意的是滑动事件是直线滑动,不适用曲线滑动。
音译 motion [ˈmoʊʃn] 运动、滑动
adb shell monkey -v --pct-motion 50 1000 # 设置“motion滑动事件”的百分比为50%
3.—pct-syskeys 系统键 <百分比>
—pct-majornav(参数) 调整“系统键”事件的百分比(例如:主页、返回、开始呼叫、结束呼叫或音量控制)
adb -e shell monkey --pct-syskeys 30 100
4.—pct-appswith acitvity的启动 <百分比>
—pct-appswith(参数) 调整“activity启动”的百分比(在随机的时间间隔内,monkey会发出一个startActivity()调用——>来最大限度覆盖package中的所有activity—>**【最终】切换activity**)
adb -e shell monkey --pct-majornav 50 1000
4.—pct-anyevent 其他类型<百分比>
—pct-anyevent(参数) 调整“其他类型”事件的百分比(例如:按键—->即“任意事件”【这是一个全面的方法】)
adb -e shell monkey --pct-anyevent 50 1000
2.不常用
1.—pct-nav 导航 <百分比> 【安卓盒子用的多,一般APP很少用】
—pct-nav(参数) 调整nav导航事件百分比。(导航事件:由上、下、左、右—> 来自定义输入)
adb shell monkey -v --pct-nav 50 1000 # 设置“nav滑动事件”的百分比为50%
2.—pct-majornav 主要导航 <百分比>
—pct-majornav(参数) 调整“主要导航”事件的百分比(例如:后退键、菜单键)
adb -e shell monkey --pct-majornav 50 1000
4.【调试参数】命令
1.—ignore-crashes 忽略crash
—ignore-crashes(参数) 用于遇到crash错误后,继续执行monkey操作,直到运行完指定的次数。
adb -e shell monkey --ignore-crashes 100
2.—ignore-timeouts 忽略timeout
—ignore-(参数timeouts) 用于遇到timeout错误后,继续执行monkey操作,直到运行完指定的次数。
adb -e shell monkey --ignore-timeouts 100
3.问题解决
1.安卓模拟器无法联网
1.images版本
2.联网设置(模拟器开启状态)
emulator @my1 -dns-server 8.8.8.8,114.114.114.114 # my1为模拟器名称