一、介绍

monkey是Android中的一个命令行工具,运行在模拟器里或实际设备中。通过向系统发送伪随机的用户事件,例如:按键输入、触摸屏输入、手势输入等,实现对正在开发的应用程序进行压力测试。Monkey测试是一种为了测试软件的稳定性,健壮性的快速有效的方法,就是利用工具模拟人的触屏和输入等操作,在短时间内对手机APP疯狂的进行大量的疯狂的乱点,乱按,乱输入的操作,疯狂地去“折腾”这个APP。

二、测试流程详解

通过名为 monkey 的Shell脚本去启动Monkey.jar程序,在指定的APP上模拟用户点击,滑动,输入等操作以极快的速度来对设备程序进行压力测试,检测程序是否会发生异常,然后通过日志进行排错。
        基本语法如下:

#monkey的基本语法如下:这是对整台机器的测试;
adb shell monkey [options]#针对某个应用的monkey测试, 对淘宝点击500次
adb shell monkey -p com.taobao.taobao 500

常用命令:

adb devices  # 查看链接的设备adb shell monkey -p pkgname            对指定包名进行测试
adb shell monkey --throttle milliseconds         指定事件之间的时间间隔,单位是毫秒
adb shell monkey -s seed         伪随机数生成器的seed值,如果用相同的seed值再次运行monkey,将生成相同的事件序列
adb shell monkey -v [-v -v ]         指定日志级别
adb shell monkey --pct-touch        指定触摸事件的百分比
adb shell monkey --pct-motion        指定动作事件的百分比
adb shell monkey --pct-trackball        指定轨迹球事件百分比
adb shell monkey --pct-nav        指定基本导航事件百分比
adb shell monkey --pct-majornav        设定主要导航事件百分比,兼容中间键,返回键,菜单键
adb shell monkey --pct-syskeys        设定系统事件百分比,比如HOME、BACK,拨号及音量调节等。
adb shell monkey --pct-appswitch        设定启动不同应用程序的事件百分比
adb shell monkey --pct-anyevent        设定不常用事件百分比
adb shell monkey --ignore-crashes        忽略奔溃和异常事件
adb shell monkey --ignore-timeouts        忽略超市事件
adb shell monkey --pkg-blacklist-file        设置不需要进行测试的黑名单应用
adb shell monkey --pkg-whitelist-file        设置需要测试的白名单应用;对白名单的应用都进行测试;adb shell logcat>e:\\log.txt      抓取日志

三、结果分析

Monkey测试中主要的异常和错误:
        1、Crash:表示被测试应用异常停止或退出。
        2、ANR:application no response ;表示在5秒内没有响应输入的事件(例如:按键按下、屏幕触摸等)
        3、Error或Exception:表示应用程序在系统运行过程中遇到了未知错误或异常。
        4、aborted:表示应用程序没有正常启动或无法正常启动,monkey测试被迫中止。
        monkey测试建议:
        1、 尽量关闭所有网络开关(WiFi及数据连接),以及莫名消耗流量,除非测试过程必须要求互联网。
        2、开启安全设置下的未知来源。
        3、手机连接电源充电,模拟器不在此讨论范围。
        4、测试前运行一边手机上方带有的首次提示的说明,如输入法,文件窗口,apk提示语等。
        5、monkey只是测试过程的辅助手段,不必过分依赖。应该将精力放在更需要人为参与的设计高效用例、设计有效用户场景、性能测试、接口测试、自动化测试等重要工作上。

一般的分析步骤:
        1、先找到出现错误的位置
        2、查看出现错误之前2个switch之间的activity
        3、手动执行事件,复现问题
        4、若以上步骤还不能找出,产生错误时,有会seed值,输入相同的seed值,重新按照之前命令跑monkey

logcat日志级别

        Verbose:显示所有日志消息(默认值)。
        Debug:显示仅在开发期间有用的调试日志消息,以及此列表中较低的消息级别。
        Info:显示常规使用情况的预期日志消息,以及此列表中较低的消息级别。
        Warn:显示尚不是错误的潜在问题,以及此列表中较低的消息级别。
        Error:显示已经引发错误的问题,以及此列表中较低的消息级别。
        Assert:显示开发者预计绝不会发生的问题。

logcat命令语法:adb logcat [option] [filterspecs]

#打印默认日志数据
adb logcat
#需要打印日志详细时间的简单数据
adb logcat -v time
#需要打印级别为Error的信息
adb logcat *:E
#需要打印时间和级别是Error的信息
adb logcat -v time *:E

四、代码示例

import oscontent=os.system('adb shell monkey -p com.taobao.taobao --throttle 10 -s 12345 200').read()if 'CRASH' in content or 'crashed' in content:print('应用程序运行奔溃!')
elif 'ANR' in content or 'NOT RESPONDING' in content:print('应用程序运行时卡壳!')
elif 'Execption' in content or 'exception' in content or 'error' in content:print('程序运行出错!')
elif 'aborted' in content:print('应用程序未正常运行!')
else:print('正常运行!')    

Monkey 介绍及使用相关推荐

  1. APP稳定性测试利器 Monkey介绍、实战使用、日志分析

    第一.Monkey简介 Monkey是什么? Monkey 是安卓官方提供的一个命令行工具,可以运行在Android模拟器和实体手机上.通过Monkey 来模拟用户的触摸.点击.滑动.系统按键的操作, ...

  2. [原创]Android Monkey测试工具使用介绍

    [原创]Android Monkey测试工具使用介绍 1 Android Monkey介绍 Monkey是Android中的一个命令行工具,可以运行在模拟器里或实际设备中.它向系统发送伪随机的用户事件 ...

  3. android monkey压力测试,Android-Monkey 压力测试

    1.Monkey 介绍 Monkey是Android中一个对App进行压力测试的命令行工具,可以向系统发送伪随机的用户事件流对正在开发的App进行压力测试(模拟用户操作App).压力测试主要是为了提高 ...

  4. android驱动测试,Android: 通过 cucumber 驱动 monkey 做稳定性测试

    主要内容 稳定性测试是什么 Monkey 介绍 自动化 Monkey 稳定性测试是什么 通过随机点击屏幕一段时间,看看 app 会不会奔溃,能不能维持正常运行. Monkey 介绍 Monkey 是一 ...

  5. Monkey随机性能压测初探(一)

    Monkey介绍 Monkey程序由Android系统自带,是Android SDK提供的一个命令行工具, 可运行Android模拟器和实体设备上.Monkey会发送伪随机的用户事件流,通过Monke ...

  6. android实用测试方法之Monkey与MonkeyRunner

    前言 本人比较懒,但是,研究如何让人变懒,却很积极-最新版的android SDK 4.0 ,monkey和monkeyRunner,变化很大-大到默认是运行失败的-囧,虽然,monkey和monke ...

  7. android之monkey测试

    本文同时发表于本人个人网站 www.yaoxiaowen.com monkey测试算是android自动化测试当中最简单的一种工具了.虽然简单,不过对于测试app的稳定健壮,减少崩溃还是比较有用的.所 ...

  8. Monkey自动化测试

    Monkey 1. 通过Monkey程序模拟用户触摸屏幕.滑动Trackball. 按键等操作来对设备上的程序进行压力测试,检测程序多久的时间会发生异常; 2.Monkey 主要用于Android 的 ...

  9. Monkey学习心得

    简介 Monkey是Android系统自带的一款测试工具,通过它可以产生一些随机事件(例如,触摸.滑动. 按键等)来对设备中的app进行压力测试,以此来检测程序是否会发生异常(Crash.ANR). ...

最新文章

  1. MySQL 查询重复记录
  2. centos6.8 安装nginx
  3. iOS之HTTP和HTTPS的基本知识和应用
  4. wpf 为html 变量赋值_JavaScript 变量
  5. python中线程和进程_python中线程和进程的简单了解
  6. 关于C生成的汇编与C++生成的汇编在函数名称上的差异
  7. 部门级服务器一般支持几个cpu,部门级服务器简介
  8. linux下怎么查看一个动态库链接了其他哪些库
  9. 搜索引擎只能抓取html文件,为什么有些明明存在的网页不能被搜索到?
  10. 蓝桥杯2019年第十届C/C++省赛B组第四题-数的分解
  11. python3基础-变量
  12. 机智云智慧烟感物联网解决方案
  13. 中国DCS品牌知名度调查
  14. win7新建文本文档快捷键
  15. 图像处理——乘性噪声和加性噪声
  16. HDOJ 1164 Eddy's research I(拆分成素数因子)
  17. python 函数enumerate用法
  18. 求定积分的不太常见的方法
  19. 鸿蒙系统的软件怎么下载,怎么下载鸿蒙系统?
  20. 湛蓝代码自动生成工具有感

热门文章

  1. 关联规则算法——Apriori算法
  2. D - 人见人爱A+B(有关进制问题)
  3. 三种常见加密算法MD5、对称加密,非对称加密【多测师_王sir】
  4. 2012年度十大杰出IT博客[nice]
  5. IT博客兴衰史:致那些牛逼闪闪的日子
  6. 移动工作站 linux,戴尔推出三款 Precision 移动工作站产品 采用 Ubuntu Linux 操作系统...
  7. JSON文件加注释的7种方法
  8. 华为升级harmonyos的机型名单,华为新机将预置HarmonyOS 2.0,分离前的荣耀老机型也不例外...
  9. docker制作nginx源码镜像
  10. apache日志 waf_cdn配置waf