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. .net框架

    转载:http://www.cnblogs.com/JimmyZhang/archive/2012/11/27/2790759.html 本书是一本讲解.NET技术的书籍,目标读者群也是在.NET框架 ...

  2. ajax翻页效果模仿yii框架

    ajax翻页效果,模仿yii框架. 复制代码代码如下: <!DOCTYPE html>  <html>  <head>  <title>ajax分页_w ...

  3. php字符串截取问题

    希望将一个字符串限长显示,如果该字符串超过一定长数,就截取前n个字符,后加省略号. 但是在英文和汉字混合的情况下会出现如下问题: 如果有这样一个字符串  $str="这是一个字符串" ...

  4. PHP Startup: Unable to load dynamic library

    昨天帮一朋友配置服务器结果发现apache日志中有PHP Warning: PHP Startup: Unable to load dynamic library 提示了,然后调试数据库连接发现提示C ...

  5. Fragment的创建以及与activity的参数传递

    点击下面不同的TextView变化不同的Fragment avtivity与Fragment之间传递消息不能使用构造器传递,用bunder传递 首先写一个含有FrameLayout(这个布局最佳),里 ...

  6. 通过URLHttpConnection方式连接网络步骤,获取位图为例

    要注意的是:访问网络不能直接放在主线程,要放在另外一个线程里面,如果放在主线程会报android.os.NetworkOnMainThreadException错误1 public Bitmap ge ...

  7. 1)C++对象大小计算

          C++对象的大小不同的编译器的实现是不一样的,以下仅讨论.net2003,其他编译的可能出现的结果以下也做了分析和猜测.在反推不同编译器实现的C++对象的大小时.对齐是一个很重要也容易被遗 ...

  8. 为你的Windows7设置动态壁纸

    From:http://www.cnblogs.com/killerlegend/p/3644014.html By KillerLegend DreamScene是Vista上的一个功能,可以让你设 ...

  9. div+css的优势在哪?

    1.符合W3C标准.微软等公司都是他的支持者. 2.所搜引擎更加友好. 3.样式调整更加方便. 4.css简洁的代码,减少了带宽. 5.表现和结构分离.在团队开发中更容易分工 并不是取代table,t ...

  10. 奇怪的函数 (codevs 3538/1696) 题解

    [题目描述] 给定n,使得x^x达到或超过n位数字的最小正整数x是多少? [样例输入] 11 [样例输出] 10 [解题思路] 首先想到枚举,但是范围有点大,n<=2*10^9,果断用二分.其实 ...