使用Monkey进行稳定性测试,你会做吗?

发表于:2023-1-29 10:01

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:BruceHelloWorld    来源:CSDN

  背景
  项目在Unity、白鹭引擎,增加Cocos-2dx游戏引擎,测试阶段需要内部跑一段稳定性,特使用adb+monkey的形式进行测试,再放到云测做批量的适配和深度稳定性测试。
  Monkey命令说明
// monkey 测试命令 使用方式 及 含义详细说明
 
adb shell monkey
// 包名
-p com.xiaxl.demo  
 
// motion 滑动事件:在屏幕某处按下、随机移动、抬起的操作;
// 事件百分比:滑动事件 5% 
--pct-motion 5 
 
// trackball 滚动球事件(不常使用参数,现在手机基本没有滚动球);
// 事件百分比:轨迹事件 0%
--pct-trackball 0
 
// nav 基本导航事件:点击键盘上下左右按键的操作(不常使用参数,现在手机基本没有方向键);
// 事件百分比:导航事件 0%
--pct-nav 0
 
// majornav 主要导航事:5-way 键中的KEYCODE_DPAD_CENTER、KEYCODE_MENU键(不常使用参数,现在手机基本没有这几个实体键);
// 事件百分比:主要导航事件 0%
--pct-majornav 0
 
// syskeys 系统按键事件: Home、Back、startCall、endCall、volumeControl;
// 事件百分比:系统按键 例:Home、Back 20%
--pct-syskeys 20
 
// appswitch 切换Activity事件:执行一个startActivity()操作;
// 事件百分比:activity跳转 15%
--pct-appswitch 15
 
// touch 触摸事件:模拟点击操作;
// 事件百分比:触摸事件 15%
--pct-touch 15
 
// anyevent 其他类型事件:除了上述事件之外的其他事件;
// 事件百分比:任何事件 45%
--pct-anyevent 45
 
// 实际用户操作的最快300毫秒左右一个动作事件,所以可以设置为300毫秒
--throttle 300   
 
// 忽略崩溃    
--ignore-crashes    
// 忽略超时 系统ANR时,继续发送事件
--ignore-timeouts    
// 忽略安全异常
--ignore-security-exceptions 
 
// 详细信息
-v -v -v 
 
// 事件数量
192000
 
// 输出日志
> 1.txt
  常用Monkey命令
adb shell monkey -p com.xiaxl.demo  
 
// 滑动事件 10% 
--pct-motion 10
// 触摸事件 90%
--pct-touch 90
 
// 每个事件结束的时间间隔(300毫秒)
--throttle 300   
 
// 忽略崩溃   
--ignore-crashes    
// 忽略系统ANR时
--ignore-timeouts    
// 忽略安全异常
--ignore-security-exceptions 
 
// 详细信息
-v -v -v 
// 事件数量
192000
 
// 输出日志
> 1.txt
adb devices                    查看手机与adb是否连接
adb connect IP地址:端口号       连接设备
adb shell                      打开设备
adb -s 设备号 命令              打开指定设备
exit                           退出设备
adb kill-server                关闭服务
adb star-server                打开服务
adb install apk的路径           安装APP
adb shell pm list package -3   查看第三方软件的包名
adb uninstall 应用程序的包名     卸载APP
adb pull  手机路径(/mnt/sdcard/文件名)  电脑路径       将手机文件推送到电脑
adb push  电脑路径  手机路径(/mnt/sdcard/文件名)       将电脑文件推送到手机
adb logcat -v time >电脑路径                          日志文件导入到电脑
  典型示例:
adb shell monkey -p com.xiaxl.demo --pct-motion 10 --pct-touch 90 --throttle 300 --ignore-crashes --ignore-timeouts --ignore-security-exceptions -v -v -v 192000 > 1.txt
  其他稳定命令
语法:adb shell monkey -p 包名 (-s 种子数) 事件 调试选项 -v 执行次数 >日志路径
 
事件:
0:触摸事件百分比           参数--pct-touch
1:滑动事件百分比           参数--pct-motion
2:缩放事件百分比           参数--pct-pinchzoom
3:轨迹球事件百分比         参数--pct-trackball
4:屏幕旋转事件百分比       参数 - -pct-rotation 
5:基本导航事件百分比       参数 --pct-nav
6:主要导航事件百分比       参数--pct-majornav
7:系统事件百分比           参数--pct-syskeys
8:Activity启动事件百分比   参数--pct-appswitch
9:键盘翻转事件百分比       参数--pct-flip
10:其他事件百分比          参数--pct-anyevent
 
-p                            后面接包名
-v                            反馈信息的级别,共三级
-s(seed)                    随机数种子
--throttle 300                延时300ms
--randomize-throttle 300      随机延时300ms
--ignore-crashes              忽略崩溃
--ignore-timeouts             忽略反应时间过长
--ignore-native-crashes       忽略本地代码导致的崩溃
--ignore-security-exceptions  忽略安全异常
 
我自己的实例:(touch事件及motion事件各执行10000次)
adb shell monkey -p  com.IGRS.shtmeeting --throttle 300 --pct-touch 50 --pct-motion 50 --ignore-crashes --ignore-timeouts --ignore-native-crashes --ignore-security-exceptions  -v -v -v 200000 >D:\Log\monkey_log\2020_09_28.txt
  日志分析
  在文件中查找failed失败 error错误 crashes崩溃 timeouts超时 exception异常 ANR等字段。
  可以放到IDE或者编辑器里面进行搜索对应的关键字:error、exception等,比如在VScode里面。
  Monkey终止命令
  启动后,即使与PC断开后,其仍会继续执行,直到时间执行完毕或者发生异常停止。
  注:若未执行完,断开PC也会继续执行,所以需要及时停止。
// 查询 com.android.commands.monkey 进程ID
adb shell ps |grep monkey
...
...
// kill 对应的monkey进程
adb shell kill [pid]
  其他注意事项
  屏蔽状态栏:
// 隐藏手机的状态栏
adb shell settings put global policy_control immersive.full=* 
// 开启手机状态栏
adb shell settings put global policy_control null 
  屏蔽音量键:
--pct-syskeys 0
  本文内容不用于商业目的,如涉及知识产权问题,请权利人联系51Testing小编(021-64471599-8017),我们将立即处理
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号