原文地址:http://www.testwo.com/blog/6188
 
一、Monkey 简介
  • Android的SDK 里面,Monkey的tools是一个命令行工具,当连接Android设备时,只要在命令行里输入相应命令就能运行tools;
  • Monkey test是一项压力测试,可以在规定的次数范围内做任何随机的操作,随机操作包括点击、滑动、Application切换、横竖屏、应用关闭等等,用户能做的操作统统可以模拟;
  • Monkey test跑出来crash的bug等级永远为1,版本release前,Monkey跑出的结果中crash要为0。业内标准:final release前,Monkey跑完的总次数应为25W次,其结果里不允许有nullPointException出现.
二、Monkey 的使用流程

三、简单的Monkey脚本示例
 

adb shell monkey -v 10
其中10代表运行脚本的操作次数为10次,若seed不指定值默认为0;
后面两行为intent的描述,运行了Android基本的LAUNCHER主进程,LAUNCHER主进程之后运行了MONKEY进程;
Event percentages,因为命令中只加了一个限制条件,次数为10,当其余参数没有添加时,就如上图百分比出现;
//Money finished 完成。
四、Monkey 实例1

第一个-s emulator-5554 设备的序列号;
-p com.lovebizhi.wallpaper-1 要测试对象的package name(adb shell data/data),若测试多个对象,则应为-p package_name1 -p package_name2;
--pct-xxx 用来设定每个事件在测试中的百分比,百分比总和不能超过100%;
--pct-touch 调整触摸事件的百分比
--pct-motion 调整动作事件的百分比
--pct-trackball 调整轨迹事件的百分比(轨迹事件由一个或几个随机的移动组成,有时还伴随着点击)
--pct-nav 调整“基本”导航事件的百分比(导航事件由来自方向输入设备的up/down/left/right组成)
--pct-majormav 调整“主要”导航事件的百分比(这些导航事件通常引发图形界面中的动作)
第二个-s 同样的seed值(seed值由自己定义,相当于一个文件的文件名,monkey的操作顺序相当于文件)有同样的随机序列,复现问题时,需要monkey用同样的操作步骤重新跑一遍,可以在日志的第一行看到seed值;
--throttle 设定事件发生的间隔,不设置时,在android系统极限内操作,若手机性能较低,容易出现系统无响应,最佳的时间间隔在300或者500,单位是毫秒;
-v 指定Log的详细程度,共有三个级别:
-v 日志级别为level 0
-v -v 日志级别为level 1

-v -v -v 日志级别为level 2     日志的详细程度越来越详细

 
Monkey tools在Android内只能针对Activity做测试,不能对service做测试。
tips: adb devices 可以获取设备id

adb shell data/data获取应用包的名称

Monkey test中只能指定activity属性的应用包进行测试,当出现指定的应用程序不是activity的时候,monkey会出现以下log,并终止运行:

备注:activity和service的区别,activity是android应用的核心概念,简而言之activity为用户交互管理者,有一个可视界面呈现,而service是在后台运行,没有界面呈现。

五、Monkey 实例2

想要跑完脚本后再去总结过程中出现的crash或者系统无响应,需要指定参数--ignore-crashes --ignore-timeouts,若不指定,遇到问题就会停止运行,效率会降低。

当且仅当设备有滚轮时需要设定--pct-trackball,如果没有滚轮需设置为0。

monkey可以不指定-p后的应用,若为了有针对的跑需要指定。

六、检查结果

查找关键字crash

//sending event表示目前已经执行的测试次数

查看有效crash,注意crash:后的进程(pid),及其后的package name是被测对象;java.lang.NullPointerException下会给出错误在开发工程中的第几行。

tips:指定要保存log的路径(> d:\test.txt)可以进入D盘下的test.txt进行crash关键字的筛选

注意事项:

  • 在进行monkey的测试时,最好不进行adb的操作;
  • 跑monkey时需要记录3个log,monkey的log(重新指向到某个txt中),dump system的log(查看系统占有),android本身的log logcat。

【转】monkey工具简介的更多相关文章

  1. monkey测试===Android测试工具Monkey用法简介(转载)

    Monkey是Android中的一个命令行工具,可以运行在模拟器里或实际设备中.它向系统发送伪随机的用户事件流(如按键输入.触摸屏输入.手势输入等),实现对正在开发的应用程序进行压力测试.Monkey ...

  2. Monkey工具使用详解

    上节中介绍了Monkey工具使用环境的搭建,传送门..本节我将详细介绍Monkey工具的使用. 一.Monkey测试简介 Monkey测试是Android平台自动化的一种手段,通过Monkey程序模拟 ...

  3. Android APP压力测试(一)之Monkey工具介绍

    Android APP压力测试(一) 之Monkey工具介绍 前言 本文主要介绍Monkey工具.Monkey测试是Android平台自动化测试的一种手段,通过Monkey程序模拟用户触摸屏幕.滑动. ...

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

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

  5. Android压力测试快速入门教程(图解)——Monkey工具

    文章目录: 一.Monkey简介 二.Monkey的基本用法 三.Monkey测试示例图解 四.Monkey命令参数介绍 五.Monkey log分析 一.Monkey简介 Monkey:Androi ...

  6. Monkey测试简介

    1.Monkey测试简介monkey是安卓命令行工具,它向系统发送伪随机的用户事件,例如:按键的输入.触摸屏的输入.手势输入等操作来对设备上的程序进行压力测试,检测程序多久的时间会发生异常.因此,mo ...

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

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

  8. mac安装monkey工具

    一.monkey测试简介: monkey工具是Android自动化测试工具的一种,主要对Android,APP可进行压力测试.(总结) Monkey是Android中的一个命令行工具,可以运行在模拟器 ...

  9. sysbench压力测试工具简介和使用(一)

    sysbench压力测试工具安装和参数介绍 一.sysbench压力测试工具简介: sysbench是一个开源的.模块化的.跨平台的多线程性能测试工具,可以用来进行CPU.内存.磁盘I/O.线程.数据 ...

随机推荐

  1. 升级iOS8系统后,保险箱Pro、私人保险箱、私密相冊打开就闪退的官方解决方式

    升级iOS8系统后,保险箱Pro.私人保险箱.私密相冊打开就闪退的官方解决方式   写在前面的话: 1.   本文适用条件    适用于:您的保险箱Pro.私人保险箱.私密相冊在iPhone或iPad ...

  2. ZOJ 3826 Hierarchical Notation 模拟

    模拟: 语法的分析 hash一切Key建设规划,对于记录在几个地点的每个节点原始的字符串开始输出. . .. 对每一个询问沿图走就能够了. .. . Hierarchical Notation Tim ...

  3. Uncaught TypeError: Cannot read property 'call' of undefined jquery.validate.min.js:28

    最近在做表单验证时,,自己写的addMethod 方法总是不起作用.折腾了将近一天. 报告的错误,如下面的 Uncaught TypeError: Cannot read property 'call ...

  4. 【POJ】The Suspects(裸并查集)

    并查集的模板题,为了避免麻烦,合并的时候根节点大的合并到小的结点. #include<cstdio> #include<algorithm> using namespace s ...

  5. oracle 打开trace,并分析trace

    SQL> oradebug event 10046 trace name context forever,level 8 ORA-00072: process "Unix proces ...

  6. 创建在SQLServer 和 Oracle的 DBLINK

    dblink 当我们要跨本地数据库.訪问另外一个数据库表中的数据时,本地数据库中就必需要创建远程数据库的dblink,通过dblink本地数据库能够像訪问本地数据库一样訪问远程数据库表中的数据. 一 ...

  7. JAVA缓存技术之EhCache(转)

    最近再ITEYE上看到关于讨论JAVA缓存技术的帖子比较多,自己不懂,所以上网大概搜了下,找到一篇,暂作保存,后面如果有用到可以参考.此为转贴,帖子来处:http://cogipard.info/ar ...

  8. 教你使用vim表白

    99669999996669999996699666699666999966699666699 99699999999699999999699666699669966996699666699 9966 ...

  9. linux如果不进入window磁盘

    最近,在windows8.1下安装ubuntu14.04,在windows沉睡.开放时间和进入选择进入系统选项,当时没有引起重视.他选择进入linux系统.但进入后,发现无法进入windows磁盘,百 ...

  10. 金蝶K3管理软件PDA条码解决方式,盘点机与金蝶K3无缝对接

    申明:以上文字为"武汉汉码科技有限公司"原创,转载时务必注明出处. 技术分享,沟通你我,共同进步!www.hanma-scan.com 原帖:http://www.hanma-sc ...