Monkey是Android中的一个命令行工具,可以运行在模拟器里或实际设备中。它向系统发送伪随机的用户事件流(如按键输入、触摸屏输入、手势输入等),实现对正在开发的应用程序进行压力测试。Monkey测试是一种为了测试软件的稳定性、健壮性的快速有效的方法。

最近在测试公司手机软件app,抽空研究了下手机自动压力测试-monkey,如下:

步骤1:电脑环境准备:搭建android 开发环境

步骤2:手机环境准备:安装待测试的apk

步骤3:打开cmd,进入adb shell,命令如下:

C:\Users\chenshan>adb shell
shell@hwG750-T20:/ $ monkey -p cn.emoney.acg -v 500 说明:-p :指定被测试apk,主Activity(第一个启动的Activity)所在的包名(我问的开发)
-v :指定测试的次数

  

运行结果如下:

monkey -p cn.emoney.acg -v 500
:Monkey: seed=1423954039925 count=500
:AllowPackage: cn.emoney.acg
:IncludeCategory: android.intent.category.LAUNCHER
:IncludeCategory: android.intent.category.MONKEY
// Event percentages:
// 0: 15.0%
// 1: 10.0%
// 2: 2.0%
// 3: 15.0%
// 4: -0.0%
// 5: 25.0%
// 6: 15.0%
// 7: 2.0%
// 8: 2.0%
// 9: 1.0%
// 10: 13.0%
:Switch: #Intent;action=android.intent.action.MAIN;category=android.intent.categ
ory.LAUNCHER;launchFlags=0x10200000;component=cn.emoney.acg/.SecurityHome;end
// Allowing start of Intent { act=android.intent.action.MAIN cat=[android.in
tent.category.LAUNCHER] cmp=cn.emoney.acg/.SecurityHome } in package cn.emoney.a
cg
:Sending Touch (ACTION_DOWN): 0:(636.0,1832.0)
:Sending Touch (ACTION_UP): 0:(614.0191,1819.9386)
:Sending Touch (ACTION_DOWN): 0:(430.0,1614.0)
:Sending Touch (ACTION_UP): 0:(504.59412,1667.4562)
:Sending Touch (ACTION_DOWN): 0:(788.0,534.0)
:Sending Touch (ACTION_UP): 0:(780.03546,539.9423)
:Switch: #Intent;action=android.intent.action.MAIN;category=android.intent.categ
ory.LAUNCHER;launchFlags=0x10200000;component=cn.emoney.acg/.SecurityHome;end
// Allowing start of Intent { act=android.intent.action.MAIN cat=[android.in
tent.category.LAUNCHER] cmp=cn.emoney.acg/.SecurityHome } in package cn.emoney.a
cg
:Sending Trackball (ACTION_MOVE): 0:(-3.0,-2.0)
:Sending Touch (ACTION_DOWN): 0:(353.0,238.0)
:Sending Touch (ACTION_UP): 0:(356.59268,215.40685)
:Sending Trackball (ACTION_MOVE): 0:(2.0,-1.0)
:Sending Trackball (ACTION_MOVE): 0:(-2.0,4.0)
:Switch: #Intent;action=android.intent.action.MAIN;category=android.intent.categ
ory.LAUNCHER;launchFlags=0x10200000;component=cn.emoney.acg/.SecurityHome;end
// Allowing start of Intent { act=android.intent.action.MAIN cat=[android.in
tent.category.LAUNCHER] cmp=cn.emoney.acg/.SecurityHome } in package cn.emoney.a
cg
:Switch: #Intent;action=android.intent.action.MAIN;category=android.intent.categ
ory.LAUNCHER;launchFlags=0x10200000;component=cn.emoney.acg/.SecurityHome;end
// Allowing start of Intent { act=android.intent.action.MAIN cat=[android.in
tent.category.LAUNCHER] cmp=cn.emoney.acg/.SecurityHome } in package cn.emoney.a
cg
:Sending Trackball (ACTION_MOVE): 0:(-3.0,-5.0)
:Sending Trackball (ACTION_MOVE): 0:(-5.0,3.0)
:Sending Touch (ACTION_DOWN): 0:(601.0,152.0)
:Sending Touch (ACTION_UP): 0:(602.1031,156.88362)
:Sending Touch (ACTION_DOWN): 0:(293.0,175.0)
//[calendar_time:2015-02-02 16:12:45.307 system_uptime:115853036]
// Sending event #100
:Sending Touch (ACTION_UP): 0:(291.35492,141.05412)
:Sending Touch (ACTION_DOWN): 0:(243.0,1537.0)
:Sending Touch (ACTION_UP): 0:(251.39348,1530.0)
:Sending Trackball (ACTION_MOVE): 0:(2.0,-5.0)
:Sending Touch (ACTION_DOWN): 0:(616.0,1098.0)
:Sending Touch (ACTION_UP): 0:(623.84454,1098.5345)
:Sending Touch (ACTION_DOWN): 0:(190.0,98.0)
:Sending Touch (ACTION_UP): 0:(188.01633,81.4052)
:Sending Touch (ACTION_DOWN): 0:(643.0,310.0)
:Sending Touch (ACTION_UP): 0:(643.3258,323.91415)
:Sending Touch (ACTION_DOWN): 0:(83.0,355.0)
:Sending Touch (ACTION_UP): 0:(86.26117,355.42242)
:Sending Trackball (ACTION_MOVE): 0:(-4.0,3.0)
:Sending Touch (ACTION_DOWN): 0:(399.0,398.0)
:Sending Touch (ACTION_UP): 0:(425.0628,350.23315)
:Sending Touch (ACTION_DOWN): 0:(26.0,1817.0)
:Sending Touch (ACTION_UP): 0:(6.7867804,1804.3572)
:Sending Touch (ACTION_DOWN): 0:(562.0,1905.0)
:Sending Touch (ACTION_UP): 0:(560.2228,1905.0571)
:Sending Trackball (ACTION_MOVE): 0:(-1.0,-1.0)
:Sending Touch (ACTION_DOWN): 0:(11.0,872.0)
:Sending Touch (ACTION_UP): 0:(0.0,856.52124)
:Sending Trackball (ACTION_MOVE): 0:(-4.0,1.0)
//[calendar_time:2015-02-02 16:12:45.498 system_uptime:115853191]
// Sending event #200
:Sending Touch (ACTION_DOWN): 0:(26.0,1246.0)
:Sending Touch (ACTION_UP): 0:(30.53358,1232.7083)
:Sending Touch (ACTION_DOWN): 0:(92.0,761.0)
:Sending Touch (ACTION_UP): 0:(70.751976,747.7252)
:Sending Touch (ACTION_DOWN): 0:(590.0,178.0)
:Sending Touch (ACTION_UP): 0:(629.8198,216.51576)
:Sending Touch (ACTION_DOWN): 0:(481.0,1223.0)
:Sending Touch (ACTION_UP): 0:(459.6905,1218.851)
:Sending Trackball (ACTION_MOVE): 0:(3.0,-4.0)
:Sending Touch (ACTION_DOWN): 0:(559.0,566.0)
:Sending Touch (ACTION_UP): 0:(573.4749,652.7251)
:Sending Trackball (ACTION_MOVE): 0:(0.0,-5.0)
:Sending Touch (ACTION_DOWN): 0:(817.0,221.0)
:Sending Touch (ACTION_UP): 0:(783.61285,232.48059)
:Sending Trackball (ACTION_MOVE): 0:(-1.0,-5.0)
:Sending Trackball (ACTION_UP): 0:(0.0,0.0)
//[calendar_time:2015-02-02 16:12:45.673 system_uptime:115853367]
// Sending event #300
//[calendar_time:2015-02-02 16:12:45.674 system_uptime:115853368]
// Sending event #300
:Sending Trackball (ACTION_MOVE): 0:(-1.0,-5.0)
:Sending Trackball (ACTION_MOVE): 0:(-3.0,4.0)
:Sending Touch (ACTION_DOWN): 0:(877.0,1410.0)
:Sending Touch (ACTION_UP): 0:(804.5438,1399.0889)
:Sending Touch (ACTION_DOWN): 0:(325.0,90.0)
:Sending Touch (ACTION_UP): 0:(251.87192,0.0)
:Sending Touch (ACTION_DOWN): 0:(468.0,1280.0)
:Sending Touch (ACTION_UP): 0:(459.7335,1275.3344)
:Sending Trackball (ACTION_MOVE): 0:(-5.0,-1.0)
:Sending Touch (ACTION_DOWN): 0:(517.0,1616.0)
:Sending Touch (ACTION_UP): 0:(514.9753,1622.0171)
:Sending Trackball (ACTION_MOVE): 0:(0.0,-2.0)
:Switch: #Intent;action=android.intent.action.MAIN;category=android.intent.categ
ory.LAUNCHER;launchFlags=0x10200000;component=cn.emoney.acg/.SecurityHome;end
// Allowing start of Intent { act=android.intent.action.MAIN cat=[android.in
tent.category.LAUNCHER] cmp=cn.emoney.acg/.SecurityHome } in package cn.emoney.a
cg
:Sending Touch (ACTION_DOWN): 0:(57.0,1822.0)
:Sending Touch (ACTION_UP): 0:(65.71579,1833.4447)
:Sending Trackball (ACTION_MOVE): 0:(-2.0,-1.0)
:Sending Trackball (ACTION_UP): 0:(0.0,0.0)
:Switch: #Intent;action=android.intent.action.MAIN;category=android.intent.categ
ory.LAUNCHER;launchFlags=0x10200000;component=cn.emoney.acg/.SecurityHome;end
// Allowing start of Intent { act=android.intent.action.MAIN cat=[android.in
tent.category.LAUNCHER] cmp=cn.emoney.acg/.SecurityHome } in package cn.emoney.a
cg
:Sending Trackball (ACTION_MOVE): 0:(2.0,-5.0)
//[calendar_time:2015-02-02 16:12:45.942 system_uptime:115853636]
// Sending event #400
:Sending Touch (ACTION_DOWN): 0:(371.0,456.0)
:Sending Touch (ACTION_UP): 0:(322.275,343.40207)
:Sending Touch (ACTION_DOWN): 0:(869.0,778.0)
:Sending Touch (ACTION_UP): 0:(851.1657,778.8365)
:Sending Trackball (ACTION_MOVE): 0:(-3.0,-1.0)
:Sending Touch (ACTION_DOWN): 0:(1073.0,1322.0)
:Sending Touch (ACTION_UP): 0:(1077.2527,1313.2167)
:Sending Touch (ACTION_DOWN): 0:(499.0,1342.0)
:Sending Touch (ACTION_UP): 0:(467.50674,1373.2031)
:Sending Trackball (ACTION_MOVE): 0:(1.0,3.0)
:Sending Trackball (ACTION_MOVE): 0:(1.0,-1.0)
:Sending Touch (ACTION_DOWN): 0:(449.0,157.0)
:Sending Touch (ACTION_UP): 0:(442.57257,163.57645)
:Sending Trackball (ACTION_MOVE): 0:(-2.0,0.0)
:Switch: #Intent;action=android.intent.action.MAIN;category=android.intent.categ
ory.LAUNCHER;launchFlags=0x10200000;component=cn.emoney.acg/.SecurityHome;end
// Allowing start of Intent { act=android.intent.action.MAIN cat=[android.in
tent.category.LAUNCHER] cmp=cn.emoney.acg/.SecurityHome } in package cn.emoney.a
cg
:Sending Trackball (ACTION_MOVE): 0:(-2.0,4.0)
Events injected: 500
:Sending rotation degree=0, persist=false
:Dropped: keys=124 pointers=369 trackballs=0 flips=0 rotations=0
## Network stats: elapsed time=1037ms (0ms mobile, 1037ms wifi, 0ms not connecte
d)
// Monkey finished

android 自动化压力测试-monkey 1 实践的更多相关文章

  1. android 自动化压力测试-monkey 2 获取程序包名

    monkey 1 中我们写到: C:\Users\chenshan>adb shell shell@hwG750-T20:/ $ monkey -p cn.emoney.acg -v 500 说 ...

  2. android 自动化压力测试-monkey 3 命令参数

    使用monkey help 命令查看命令参数,如下: C:\Users\chenfenping>adb shell monkey -help usage: monkey [-p ALLOWED_ ...

  3. Android自动化压力测试图解教程——Monkey工具

    [置顶] Android自动化压力测试图解教程--Monkey工具 标签: 测试androidprofiling工具测试工具文档 2012-04-01 10:16 38185人阅读 评论(10) 收藏 ...

  4. Android自动化压力测试图解教程——Monkey工具 (转)

    有时候我们需要对一个软件进行压力测试,检查该软件的性能.如果是人工进行测试的话,效率会低很多,而且会比较枯燥.这时,Android中的一个命令行工具Monkey就可以为我们减轻很多重复而又繁琐的工作. ...

  5. Android APP压力测试-Monkey

    压力测试-Monkey学习 Monkey测试特点 什么是Monkey test? 如其名,像猴子一样,虽然什么都不懂,但是可以乱点一通,可以理解为压力测试.在规定的时间或次数范围内做任何随机的操作,随 ...

  6. Android自动化压力测试之Monkey Test (三)

    Monkey 是什么? Monkey是Google提供的一个用于稳定性与压力测试的命令行工具. Monkey路径: 路径:/System/framework/monkey.jar 启动脚本路径:/sy ...

  7. Android自动化压力测试快速入门教程(图解)——MonkeyRunner

    一.MonkeyRunner测试环境配置(转自) 1.  android-sdk 下载地址:http://www.android-doc.com/sdk/index.html 下载完成后,只需要解压就 ...

  8. Android自动化压力测试之Monkey Test Android常见的错误类型及黑白名单的使用方法(四)

    Android常见的错误类型有两种 1.ANR类型 1)在5秒内没有响应输入的事件(例如,按键按下,屏幕触摸) 2)BroadcastReceiver在10秒内没有执行完毕 2.Crash类型 1)异 ...

  9. Android自动化压力测试之Monkey Test 异常解读(五)

    monkey结果分类 monkey结果详细解读 monkey运行log输出后,得读懂日志内容,定位错误 lgo日志顺序输出分别为  测试命令信息.随机事件流(11种事件).异常信息(anr.crash ...

随机推荐

  1. 关于javascript 里面类型的判断

    javacript至今共有7中类型 Six data types that are primitives: Boolean Null Undefined Number String Symbol (n ...

  2. c#中操作word文档-一、模板方式写入

    转载自:http://blog.csdn.net/fujie724/article/details/5443322 适合模板写入 今天正好有人问我,怎么生成一个报表式的Word文档. 就是文字的样式和 ...

  3. cocos run -p android报错 BUILD FAILED ..\ant\build.xml:892

    使用编译指令生成apk文件时,出现这个错误,是因为重复引用了..\YourGame\cocos2d\cocos\platform\android\java\bin\classes.jar文件. 为什么 ...

  4. WebForm与MVC混用

    步骤一:添加引用 -> 程序集 -> 扩展 -> System.Web.Mvc ; System.Web.Razor; System.Web.WebPages; System.Web ...

  5. python之poplib库

    pop3能实现访问远程主机下载新的邮件或者下载后删掉这些邮件.不支持多信箱,也不能提供持久稳定的邮件认证.也就是说不能使用pop3来作为邮件同步协议. poplib支持多个认证方法.最普遍的是基本的用 ...

  6. 成功完成Moses Manual中BaseLineSystem

    终于把这个破法语句子翻译出来了,各种耗时,bug,弄了一天,明天争取看完详细的翻译教程! 而且还要学习中文分词,晚安,Moses!

  7. JavaWeb之 JSP:内置对象,EL表达式,JSP标签基础

    JSP的内置对象 什么是JSP的内置对象呢? 在JSP页面进行编程的时候,如果我们要使用一些对象,如:HttpSession,ServletConfig,ServletContext这些对象,如果每次 ...

  8. MIFARE系列2《非接触卡标准》

    根据信号发送和接收方式的不同,ISO/IEC14443-3定义了TYPEA.TYPEB两种卡型.它们的不同主要在于载波的调制深度及二进制数的编码方式.从读写机具向卡传送信号时,二者是通过13.56Mh ...

  9. SharePoint 项目的死法(一)

    SharePoint是Microsoft的一个巨NB的产品, 从可查到的数据来看, 财富500强中已经有超过80%的企业已经使用了SharePoint的不同版本,从项目实施的经验来看, 个人感觉这个数 ...

  10. hdu 5142 NPY and FFT

    题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=5142 NPY and FFT Description A boy named NPY is learn ...