二. Monkey
什么进行monkey测试? 拿到一个新的版本后, 就可以先进行monkey测试. 一般在企业中, 我们建议 客服/行政/保洁 来做monkey测试.
monkey向被测app发送 伪随机的用户事件流, 实现对正在开发的应用程序进行压力测试.
monkey是为了测试 app的稳定性和健壮性的一种有效方法.
monkey被测对象仅仅是 程序的包(pm list packages), 有一定局限性.
adb shell monkey -p 程序包名 -v 操作次数
执行moneky第一行日志中, 包括两个数据: seed=1661562577417 count=操作次数
seed 值的作用: 如果我们需要复现上一次monkey操作的事件序列的比例, 则通过 -s seed值进行指定
adb shell monkey -p 程序包名 -s seed值 -v 操作次数
adb shell money -p 包1 -p 包2 ... -s seed值 -v 操作次数
-v 较简单的日志, 仅提供启动, 测试完成, 最终结果等少量信息
-v -v 较详细的日志, 包括发送给 每个activity的事件信息
-v -v -v 最详细的日志, 包括了 选中/未选中的activity信息
adb shell monkey -p 程序包名 [-s seed值] -v -v -v 操作次数 > 导出的路径及名称
adb shell monkey -p com.tencent.mobileqq -v -v -v 100 > monkey.txt
注意: 指定事件类型, 所有的事件类型执行占比 加起来不能超过 100%
adb shell monkey -p com.tencent.mobileqq --pct-touch 10 --pct-motion 10 --pct-nav 20
-v -v -v 100 --throttle 100 > monkey.txt
对移动端 qq程序进行 随机事件测试, 执行100次, 查看最详细的日志信息, 并将执行的日志导出保存在本地 monkey.txt文件中, 指定 触屏事件 占10% 手势事件 占10% 导航事件占 10%, 其它事件占 60% 每个事件类型之间的时间差是 100毫秒
--ignore-crashes 忽略 程序未响应的错误提示
--ignore-security-exceptions 忽略 安全异常
2.ANR: application not response 程序无响应 一般是环境问题
Exception java代码异常, 一般是必须进行修改的, 开发的问题
Crash 闪退问题, 如果出现了ANR, 则下一步就是闪退