目录

1.Monkey是什么?

2.Monkey组成

3.Monkey测试的目的

4.Moneky运行环境搭建

5.Monkey执行前准备命令:

6.工作中具体使用

7.Moneky结果分析

8.Monkey执行的前提条件:

9.Monkey的bug描述


1.Monkey是什么?

  • Monkey是Android中附带的一个工具,可以运行在模拟器里或实际设备中。
  • 他向系统发送伪随机的用户事件流(如键盘输入、触摸屏输入、手势输入等),实现对正在开发的应用陈旭进行压力测试,存放在手机的/system/framework/

2.Monkey组成

  1. 基本配置选项,如设置测试的事件数量
  2. 运行约束选项,如设置只对单独的一个包进行测试
  3. 事件类型和频率
  4. 调试选项

3.Monkey测试的目的

  1. 进行压力测试
  2. 然后开发人员结合monkey打印的日志和系统打印的日志,发现测试中出现的问题。
  3. 特点:Monkey测试,所有的事件都是随机产生的,不带任何主观性。

4.Moneky运行环境搭建

  1. 下载sdk安装包配置sdk的环境变量,具体请参考https://editor.csdn.net/md/?articleId=100120319
  2. 下载JDK,配置JDK环境变量,具体请参考:https://mp.csdn.net/postedit/104103560

5.Monkey执行前准备命令:

  1. 打开手机的开发者调试工具,用usb数据线链接你的手机;

    1. 通过USB将手机连接电脑。
    2. windows+r 输入cmd进入dos命令行;
    3. 输入adb devices ;
    4. 再输入 adb shell pm list packages    查看你的手机所有的安装包;输入 adb shell pm list packages -3 查看手机上所有的第三方安装包,尽量让测试机少安装第三方软件,这样可以尽快的找到想要的安装包名称;
  2. Monkey命令
    1. adb shell monkey 400:对手机上任意应用进行随机操作
    2. adb shell monkey -p com.songqin.sqoa 400:对松勤OA进行400次事件的monkey测试
    3. adb shell monkey -p com.songqin.sqoa -p com.songiqn.sqjy 400 :对松勤OA和松勤教育共执行400次monkey测试,数量随机分配
    4. 结果如图:
      1. Event percentages(事件百分比):

        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

    5. [--throttle MILLISEC]:事件最大延迟时间  单位是毫秒:用于模拟用户操作间隔时间

    6. count(执行测试次数)

    7. [-v [-v] ...]:表示日志的详细程度 ,最多-v -v -v,一般用两个.

    8. [-s SEED]:种子值,序列号,作用

      1. 开发可以通过相同的seed值进行复现和解决bug

      2. 测试:可以通过相同的seed对bug进行验证

      3. 原则:项目开始执行monkey测试的时候到monkey测试结束的时候seed保持一致

      4. 相同的seed值表示操作的动作和顺序是一致的

    9. [--ignore-crashes] [--ignore-timeouts] [--ignore-security-exceptions]

      1. 如果使用了该参数:在测试过程中如果遇到了crash.anr等情况,monkey是继续执行,直到事件次数结束.必要的情况下,是结束app的进程,重新打开接着开始

      2. 如果不使用该参数:测试过程中发生crash,anr等情况,Monkey测试就会停止,保持在发生问题的界面

    10. --kill-process-after-error:测试中发生问题后,停止Monkey测试,保持在发生问题的界面 (一般用不到)

    11. [--monitor-native-crashes] :监控本地的crash,抓取由于执行过程中引起的手机上其他任意应用发生问题的记录            [--ignore-native-crashes]:忽略本地crash

    12. [--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]
      设定执行过程操作事件百分比,一般情况下为默认.

6.工作中具体使用

  1. 命令:adb shell monkey -p  包名 --ignore-crashes --ignore-timeouts --ignore-security-exceptions --monitor-native-crashes -s 360 -v -v --throttle 450 350000 >D:\log\monkeylog.txt
  2. 重定向--用于保存

7.Moneky结果分析

  1. Monkey的日志分析

    1. Monkey错误图片:
    2. 正常的结果:// Monkey finished      elapsed time=25352ms 共耗费时间
    3. crash:  //CRASH 包名 
    4. ANR:
              //NOT RESPONDING:包名
              ANR in 包名
    5. 异常中断:没有上述三种关键字显示
    6. 其他异常:关机:温度过高--->temperature/电量过低-->batterylevel=0
                       重启:Reboot:monkey测试中发生了问题:monkey中断/不中断/logcat停止了,手机亮屏
                       tcdump:黑底蓝字--->app测试中几乎没有
  2. adb logcat日志的分析:
    1. 两个cmd,一个执行monkey命令,一个执行adb logcat
    2. 命令:adb logcat -v  time >D:\log\logcat.txt
    3. 不会自动停止,只能第二天上班手动停止( ctrl+c)
  3. 步骤
    1. 先查看monkey结果,如果Monkey结果正常,那么都不用看了
    2. 如果Monkey结果也有问题,根据关键字,在logcat中搜索,查到响应的位置
      1. CRASH:logcat中显示为:fatal exception
      2. ANR:logcta中显示为:ANR
    3. 复制关键信息前后两行,附在bug的描述中
    4. .logcat日志打包附在bug的附件中

8.Monkey执行的前提条件:

  1. 手机设置常亮,锁屏关闭
  2. 电量在90以上
  3. 其他设置要设置好,wifi,数据网络,进程该关闭就关闭
  4. app登录,数据创造,必要的情况,打开app一个页面
  5. 执行命令之后少等一会,如果在可见之内发现退出账号,可以尝试换一个seed值操作

9.Monkey的bug描述

  1. 标题:[monkey][crash/anr/关机]XX应用执行monkey是发生FATAL EXCEPTION: main
  2. 前提:Monkey前提
  3. 步骤:
    1.连接手机
    2.执行命令:命令
    3.查看结果
    4.关键字:
    06-17 23:53:54.162 E/AndroidRuntime( 3375): FATAL EXCEPTION: main
    06-17 23:53:54.162 E/AndroidRuntime( 3375): Process: edu.yjyx.student, PID: 3375
  4. 实际结果:执行Monekey 发生xxxx
    预期结果:执行monkey,没有异常发生

九、App稳定性测试--Monkey相关推荐

  1. monkey测试_爱码小士丨 APP稳定性测试(附视频详解)

    在实际的测试过程中,主要是对系统的功能来进行测试,用于校验功能的正确性 还需要考虑到系统在未修改的状态下,是否能够稳定运行,即崩溃.闪退.重启.系统异常等等等地情况 在APP中,稳定性测试一般是交由M ...

  2. android 稳定性测试工具,APP 稳定性测试工具-Fastbot_Android详解

    基于monkey的二次开发,约束monkey的行为,比monkey更智能. 写在开始 monkey测试的随机性概率过大,导致其效率并不能达到预期.有时可能遍历了很久,依旧与最有可能发生问题的部分擦肩而 ...

  3. 操作指令详解_爱码小士丨 APP稳定性测试(附视频详解)

    在实际的测试过程中,主要是对系统的功能来进行测试,用于校验功能的正确性 还需要考虑到系统在未修改的状态下,是否能够稳定运行,即崩溃.闪退.重启.系统异常等等等地情况 在APP中,稳定性测试一般是交由M ...

  4. 说透APP稳定性测试

    最近面试了一些测试候选人,聊到app的稳定性测试相关话题时,比如什么是app稳定性测试,app稳定性测试的目的,在什么时候执行稳定性测试最佳等,发现还是有很多的测试同学对app稳定性测试了解比较浅,甚 ...

  5. App兼容性测试/MONKEY配置和安装

    App兼容性测试/MONKEY配置和安装 APP测试的兼容性测试 Web测试和App测试有什么区别 性能和稳定性工具---MONKEY 环境配置和安装 云测试平台 APP测试的兼容性测试 上线后进行兼 ...

  6. 互联网测试必须要知道的App稳定性测试

    App稳定性测试 稳定性测试就是指软件长时间的持续运行,系统版本是否稳定,是否能否持续的为用户提供服务. 指标: 异常的次数 异常的频率 App的稳定性测试如何实施? 首选Monkey Monkey是 ...

  7. APP稳定性测试神器之Monkey-随机事件测试

    APP稳定性测试神器之Monkey-随机事件测试 Monkey是Android中的一个命令行工具,可以运行在模拟器里或者现实设备中,向系统发送伪随机的用户事件流(点击.滑动.Application切换 ...

  8. app稳定性测试教程——全网最全(测试木头人)

    超详细测试流程及分析 --没有之一 App稳定性测试简介 App的性能测试主要有响应.内存.cpu.FPS.GPU过度渲染.耗电.耗流七个指标,app除了这些性能测试,还有:手机版本号兼容性,屏幕分辨 ...

  9. 什么是App稳定性测试?什么是App弱网测试?

    App稳定性测试? 由于app软件是安装在手机的操作系统之上的,为了保证app能够在长时间内运行操作不会出问题,所以需要做稳定性测试,稳定性测试需要用到monkey工具,monkey工具是基于命令行的 ...

最新文章

  1. PCL基础3:点云程序运行时间计时
  2. Verilog代码规范I
  3. [转]json2.js 源码解读
  4. java中把map转换成list
  5. 稳扎稳打Silverlight(33) - 3.0控件之AutoCompleteBox, DataPager
  6. DOMContentLoaded与interactive
  7. 晋中学院计算机考研,晋中学院有多少人死在考研路上
  8. t oracle删除吗,Oracle 11g 手工建库与删库
  9. 【转】.NET程序内存分析工具CLRProfiler的使用
  10. 1.1.0-简介-P11-分布式锁的解决方案
  11. 二维正则表达式v0.1
  12. 三月提示:提防挂马网站 关注账号安全
  13. 缠中说禅_缠中说禅严格笔画法
  14. freopen()函数文件流重定向和文件流的清除
  15. [心情]一落千丈的反差
  16. Java中的网络编程
  17. PreScan快速入门到精通第十一讲之PreScan道路标记,建筑物、抽象物体及交通标识
  18. 04Selenium剩余部分及练习:爬取京东商品信息
  19. 敏捷开发的价值观与十二条原则
  20. 解决nf_conntrack: table full, dropping packet

热门文章

  1. 网络安全相关行业必备网站(持续更新中)
  2. Flume监控之Ganglia安装与简单实践
  3. 【Spring Web教程】SpringBoot 整合WebSocket
  4. 3.1.3 回旋函数
  5. 原来order by 中也可以使用子查询
  6. OpenCV:qt.qpa.plugin: Could not load the Qt platform plugin “xcb”
  7. unity打包webgl报错及处理 IL2cpp/build/unityLinker.exe not run properly;IL2cpp.exe not run properly
  8. python的小程序分析_Python学习:JData入门小程序解析(续)
  9. 理解一维数组中buf\buf[0]\buf[0]\buf四个符号的含义
  10. 关于Sybase iq常用命令