转载:https://blog.csdn.net/xiangyunwan/article/details/71642114

一、Monkey 是什么?
Monkey 就是SDK中附带的一个工具。

二、Monkey 测试的目的?

:该工具用于进行压力测试。 然后开发人员结合monkey 打印的日志 和系统打印的日志,结局测试中出现的问题。

三、Monkey 测试的特点?
Monkey 测试,所有的事件都是随机产生的,不带任何人的主观性。

四、Monkey 命令详解

1).标准的monkey 命令
adb shell] monkey    [options]    <eventcount> ,

例如:adb shell monkey -v 500    --------产生500次随机事件,作用在系统中所有activity

(其实也不是所有的activity,而是包含  Intent.CATEGORY_LAUNCHER 或Intent.CATEGORY_MONKEY 的activity)。

上面只是一个简单的例子,实际情况中通常会有很多的options 选项

2).四大类—— 常用选项 、 事件选项 、 约束选项 、 调试选项

常用选项:

--help:打印帮助信息

-v:指定打印信息的详细级别,一个 -v增加一个级别 , 默认级别为 0 。

-s:指定产生随机事件种子值,相同的种子值产生相同的事件序列。如: -s 200

--throttle:每个事件结束后的间隔时间——降低系统的压力(如不指定,系统会尽快的发送事件序列)。如:--throttle 100

--pct-touch:指定触摸事件的百分比,如:--pct-touch 5% , 相关的还有以下option:

--pct-motion <percent> (滑动事件)、

--pct-trackball <percent> (轨迹球事件) 、

--pct-nav <percent> (导航事件 up/down/left/right)、

--pct-majornav <percent> (主要导航事件 back key 、 menu key)、

--pct-syskeys <percent> (系统按键事件 Home 、Back 、startCall 、 endCall 、 volumeControl)、

--pct-appswitch <percent> (activity之间的切换)、

--pct-anyevent <percent>(任意事件)

-p:指定有效的package(如不指定,则对系统中所有package有效),一个-p 对应一个有效package, 如:-p com.ckt -p com.ckt.asura;

-c:activity必须至少包含一个指定的category,才能被启动,否则启动不了;

--dbg-no-events:初始化启动的activity,但是不产生任何事件。

--hprof:指定该项后在事件序列发送前后会立即生成分析报告 —— 一般建议指定该项。
--ignore-crashes:忽略崩溃
--ignore-timeouts:忽略超时
--ignore-security-exceptions:忽略安全异常
--kill-process-after-error:发生错误后直接杀掉进程
--monitor-native-crashes:跟踪本地方法的崩溃问题
--wait-dbg:知道连接了调试器才执行monkey测试。

来张图吧:

一个简单的monkey命令:

adb shell monkey -p com.xy.android.junit -s 500 -v 10000

但是,工作中为了保证测试数量的完整进行,我们一般不会在发生错误时立刻退出压力测试。

monkey 测试命令如下:

adb shell monkey -p com.xy.android.junit -s 500 --ignore-crashes --ignore-timeouts --monitor-native-crashes -v -v 10000 > /sdcard/monkey_log.txt

注意保存到Pc上的并没有实验成功,但是保存到手机上的log却可以正常拿到,为啥?是因为命令是在手机上跑的原因?

代码效果:

monkey作用的包:com.ckt.android.junit
产生时间序列的种子值:500
忽略程序崩溃 、 忽略超时 、 监视本地程序崩溃 、 详细信息级别为2 , 产生 10000个事件 。

摘录小米monkey测试命令:

adb shell monkey -v –-throttle 300 –-pct-touch 30 –-pct-motion 20 –-pct-nav 20 –-pct-majornav 15 –-pct-appswitch 5 -–pct-anyevent 5 -–pct-trackball 0 -–pct-syskeys 0 -p ‘%s’ 1000

这个命令更加人性化一些,屏幕点击和滑动事件处理的更好一些!

总结命令格式:

1.保存在手机中 adb shell monkey [option] <count> >/mnt/sdcard/monkey.txt

2.标准流与错误流分开保存  monkey [option] <count> 1>/mnt/sdcard/monkey.txt 2>/mnt/sdcard/error.txt

五、Monkey Log分析:

2.1、Monkey结果分类

异常结果:

Java常见错误类型

更详细内容参见:

http://www.cnblogs.com/TankXiao/p/4815134.html

http://www.cnblogs.com/zyanrong/p/5417535.html

monkey命令——压力测试——转载参考09相关推荐

  1. monkey命令——压力测试——转载参考03

    转载:https://blog.csdn.net/u011649536/article/details/45043781?utm_source=blogxgwz9 简要步骤:adb devices-- ...

  2. ab命令压力测试攻击

    ab命令压力测试攻击 注:本尘埃の客栈所有文章均为技术分享,用于研究和复现漏洞,请勿非法用于其他用途,否则后果自负! ab命令攻击 ab命令全称为:Apache bench .是Apache自带的压力 ...

  3. 测试经理教你如何用monkey进行压力测试!

    一. monkey是什么 1. monkey程序由android系统自带,使用Java语言写成,在Android文件系统中的存放路径是:/system/framework/monkey.jar 2. ...

  4. ab命令压力测试网站性能

    网站性能压力测试是服务器网站性能调优过程中必不可缺少的一环.只有让服务器处在高压情况下,才能真正体现出软件.硬件等各种设置不当所暴露出的问题. 性能测试工具目前最常见的有以下几种:ab.http_lo ...

  5. 对安卓手机上的APP做monkey压力测试

    之前对安卓手机上的APP做了monkey测试,今天来总结一下如何使用安卓自带的monkey命令去做测试. 首先,PC端要对安卓手机进行monkey测试的话,必须要有以下条件: 1.电脑中必须配有ADB ...

  6. android 获取monkey日志_Android压力测试:monkey压力测试实战

    主要分享的主题是 Android App 专项测试, 通过 monkey 进行压力测试. 一.测试步骤 1.安装ADB 2.连接被测手机和电脑 3.打开CMD命令行 4.输入monkey命令 adb ...

  7. 程序压力测试、性能测试AB、Webbench、Tsung

     负载生成器是一些生成用于测试的流量的程序.它们可以向你展示服务器在高负载的情况下的性能,以及让你能够找出服务器可能存在的问题.为了得到更加客观和准确的数值,应该从远程访问.局域网访问和本地等多个方面 ...

  8. Android App压力测试

    前言:写这篇文章的目的,一是因为不少同学作为Android开发,很少会自己去做压力测试,不了解相关的技术,不知道压力测试是什么.怎么工作的:二是询问过身边的一些测试同学,他们进行压力测试的时候,很多情 ...

  9. 服务器压力测试 性能测试 AB、Webbench、Tsung

            负载生成器是一些生成用于测试的流量的程序.它们可以向你展示服务器在高负载的情况下的性能,以及让你能够找出服务器可能存在的问题.为了得到更加客观和准确的数值,应该从远程访问.局域网访问和 ...

  10. Android内存压力测试工具(memtester移植)

    该文章转载于: android用memtester内存压力测试_W歹匕示申W的博客-CSDN博客 Android内存压力测试工具(memtester移植)_甜牛奶蛋糕的博客-CSDN博客_androi ...

最新文章

  1. atom 中首次使用git_使用Atom获得更好的Git提交消息
  2. java二维数组矩阵_java使用二维数组开发五子棋
  3. 《Python数据分析》-Ch01 Python 程序库入门
  4. ubuntu百度网盘下载大文件
  5. TF之LiR:基于tensorflow实现手写数字图片识别准确率
  6. 最详细的最小堆构建、插入、删除的过程图解
  7. eclipse 函数折叠展开
  8. 使用Model-View-ViewModel使用Dart Streams使Flutter中的代码更清晰
  9. web端log4net输出错误日志到mysql
  10. Security+ 学习笔记56 增强隐私保护的技术
  11. 《(学习笔记)两天进步一点点》(3)——应用BindingSource实现数据同步
  12. MySQL 如何删除有外键约束的表数据
  13. leetcode 排列组合系列
  14. pythoneducoder苹果梨子煮水的功效_荸荠和梨子一起煮的好处
  15. 那些年,Github上的干货!
  16. MySql无法连接本地地址localhost
  17. uni-app注册全局组件
  18. 用css给video视频标签上添加渐变效果
  19. IDEA 各种疑难杂症
  20. 2021最新整理JAVA常见面试题附答案

热门文章

  1. Swing绝对布局之setBounds
  2. 数字图像处理与Python实现笔记之图像压缩
  3. 记一次利用tomcat manager部署war包失败并解决的经历
  4. 如何帮银行保持长期竞争力?融360天机公布独家秘诀
  5. Java 1082 射击比赛
  6. 对Java语言入门初学者的一些建议
  7. bzoj-1270 [BeijingWc2008]雷涛的小猫
  8. 【论文】Deep Pyramidal Residual Networks(译)
  9. 40.用创业思维复盘:写技术博客到出书
  10. Codeforces Round #612 (Div. 2) C. Garland题解