51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

查看: 873|回复: 0
打印 上一主题 下一主题

Monkey进行稳定性测试!

[复制链接]
  • TA的每日心情
    无聊
    11 小时前
  • 签到天数: 943 天

    连续签到: 2 天

    [LV.10]测试总司令

    跳转到指定楼层
    1#
    发表于 2023-1-29 13:14:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    背景
      项目在Unity、白鹭引擎,增加Cocos-2dx游戏引擎,测试阶段需要内部跑一段稳定性,特使用adb+monkey的形式进行测试,再放到云测做批量的适配和深度稳定性测试。
      Monkey命令说明



    1. // monkey 测试命令 使用方式 及 含义详细说明

    2. adb shell monkey
    3. // 包名
    4. -p com.xiaxl.demo  

    5. // motion 滑动事件:在屏幕某处按下、随机移动、抬起的操作;
    6. // 事件百分比:滑动事件 5%
    7. --pct-motion 5

    8. // trackball 滚动球事件(不常使用参数,现在手机基本没有滚动球);
    9. // 事件百分比:轨迹事件 0%
    10. --pct-trackball 0

    11. // nav 基本导航事件:点击键盘上下左右按键的操作(不常使用参数,现在手机基本没有方向键);
    12. // 事件百分比:导航事件 0%
    13. --pct-nav 0

    14. // majornav 主要导航事:5-way 键中的KEYCODE_DPAD_CENTER、KEYCODE_MENU键(不常使用参数,现在手机基本没有这几个实体键);
    15. // 事件百分比:主要导航事件 0%
    16. --pct-majornav 0

    17. // syskeys 系统按键事件: Home、Back、startCall、endCall、volumeControl;
    18. // 事件百分比:系统按键 例:Home、Back 20%
    19. --pct-syskeys 20

    20. // appswitch 切换Activity事件:执行一个startActivity()操作;
    21. // 事件百分比:activity跳转 15%
    22. --pct-appswitch 15

    23. // touch 触摸事件:模拟点击操作;
    24. // 事件百分比:触摸事件 15%
    25. --pct-touch 15

    26. // anyevent 其他类型事件:除了上述事件之外的其他事件;
    27. // 事件百分比:任何事件 45%
    28. --pct-anyevent 45

    29. // 实际用户操作的最快300毫秒左右一个动作事件,所以可以设置为300毫秒
    30. --throttle 300   

    31. // 忽略崩溃   
    32. --ignore-crashes   
    33. // 忽略超时 系统ANR时,继续发送事件
    34. --ignore-timeouts   
    35. // 忽略安全异常
    36. --ignore-security-exceptions

    37. // 详细信息
    38. -v -v -v

    39. // 事件数量
    40. 192000

    41. // 输出日志
    42. > 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



    1. adb devices                    查看手机与adb是否连接
    2. adb connect IP地址:端口号       连接设备
    3. adb shell                      打开设备
    4. adb -s 设备号 命令              打开指定设备
    5. exit                           退出设备
    6. adb kill-server                关闭服务
    7. adb star-server                打开服务
    8. adb install apk的路径           安装APP
    9. adb shell pm list package -3   查看第三方软件的包名
    10. adb uninstall 应用程序的包名     卸载APP
    11. adb pull  手机路径(/mnt/sdcard/文件名)  电脑路径       将手机文件推送到电脑
    12. adb push  电脑路径  手机路径(/mnt/sdcard/文件名)       将电脑文件推送到手机
    13. adb logcat -v time >电脑路径                          日志文件导入到电脑
    复制代码


    典型示例:
    1. 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也会继续执行,所以需要及时停止。
    1. // 查询 com.android.commands.monkey 进程ID
    2. adb shell ps |grep monkey
    3. ...
    4. ...
    5. // kill 对应的monkey进程
    6. adb shell kill [pid]
    复制代码


    其他注意事项
      屏蔽状态栏:
    1. // 隐藏手机的状态栏
    2. adb shell settings put global policy_control immersive.full=*
    3. // 开启手机状态栏
    4. adb shell settings put global policy_control null
    复制代码


    屏蔽音量键:
    1. --pct-syskeys 0
    复制代码





    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-5-7 23:22 , Processed in 0.063422 second(s), 23 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表