09- monkey命令详解

安装模拟器

如果你没有手机可以安装个模拟器,如果有手机了,忽略此步骤。

1.下载模拟器:http://www.xyaz.cn/

2.安装:直接默认安装。

3.打开安卓模拟器,设置-关于手机-点击版本号-进入开发者模式,勾选USB调试。

4.打开cmd窗口,进入模拟器安装目录,执行cmd命令:adb connect 127.0.0.1:62001

 

参考:https://www.cnblogs.com/xinjing-jingxin/p/9326837.html

Monkey是什么?

monkey是Android中附带的一个工具。可以运行在模拟器或者实际设备中。

它像系统发送伪随机的用户事件流(如按键输入,触摸屏输入,手势输入等)实现对正在开发的应用程序进行压力测试。

monkey测试的目的是什么?

1.进行压力测试

2.然后开发人员结合monkey打印的日志和系统打印的日志,发现测试中出现的问题。

monkey测试的特点

monkey测试,所有的事件都是随机产生的,不带任何主观性。

monkey的组成:

1.基本配置选项,如设置尝试的事件数量。

2.运行约束选项,如设置值对单独的一个包进行测试

3.事件类型和频率

4.调试选项。

压力测试要从两个点开始:

1.CRASH:奔溃,闪退。

2.ANR:无响应

monkey的工作原理

monkey运行的时候,他生成伪随机事件流,并把他们发给系统。同时,monkey还对测试中的系统进行监控,并进行特殊处理(比如:自动停止)

如果应用程序崩溃或接收到任何失控异常,monkey将停止并报错。

如果应用程序产生了应用程序不响应(application not responding)的错误,monkey将会停止并报错。

按照选定不同级别的反馈信息,在monkey中还可以看到其执行过程报告和生成的事件。

monkey命令运行

开始》运行》cmd

USB连接手机,输入adb shell monkey命令 :就会列出monkey命令参数

adb shell monkey 20 :随机执行20次

adb shell monkey -p 程序包 -v 测试次数(其中程序包可以通过pm list packages显示所有的程序包)

例子:adb shell monkey -p com.taobao.taoboa -v 100  :对淘宝这个程序包进行100次的monkey测试。

 日志的获取:

为了方便分析问题,也可以将日志信息重定向到文件中。

monkey -p 包名 -v 2000 >D1.Ttxt

monkey命令行参数-P

指定多个包:

monkey -p 包名1 -p包名2

不指定包:monkey 100

说明:monkey随机启动APP并发100个随机事件。

monkey命令行参数 -v

参数:-v

用于指定反馈信息级别(信息级别就是日志的详细程度),总共分三个级别,对应如下:

日志级别 level 0

示例:monkey -p  包名 -v 100

说明:缺省值,仅提供启动提示,测试完成和最终结果等少量信息。

日志级别 level 2

示例:monkey -p 包名 -v -v 100

说明:提供较为详细的日志,包括每个发送到Activity的事件信息。

日志级别:level 2

示例:monkey -p 包名 -v -v -v 100

说明:最详细的日志,包括测试中选中/来选中的Activity信息。

monkey命令行参数 -S

参数:-s

用于指定伪随机数生成器的seed值,如果seed相同,则两次monkey测试所产生的事件序列也是相同的。

monkey -p 包名 -s 10  100

monkey -p 包名 -s 10  100

两个测试的效果是相同的,因为模拟的用户操作序列(每次操作按照一定的先后顺序所组成一系列操作,即一个序列)是一样的。操作序列虽然是随机生成,但是我们指定了相同的seed值,就可以保证两次测试产生的随机操作序列是完全相同的,所以这个操作序列到伪随机的。

monkey命令行参数 --throttle

参数:--throttle<毫秒>

用于指定用户操作(即事件)的时间延迟,单位是毫秒。

实例:

monkey -p 包名 --throttle 3000  100

向此应用发送100次伪随机事件,每次事件间隔3s。

monkey命令行参数 -ignore

参数: --ignore - crashes

用于指定当应用程序崩溃时(force&close错误),monkey是否停止运行。如果使用此参数,即使应用程序崩溃,monkey依然会发送事件,知道事件计数完成。

示例:

monkey 包名 -ignore -crashes 1000

测试过程中即使程序崩溃,monke依然会继续发送事件直到事件数目达到1000为止。

monkey命令行参数 -timeout

 参数: --ignore -timeout 

用于指定当应用程序发生ANR(application no responding)错误时,monkey是否停止运行。如果使用此参数,即使应用程序发生ANR错误,monkey依然会发送事件,直到事件计算完成。

 

 

 monkey测试结果分析步骤

重要命令:

crash:奔溃

ANR:无响应

[--ignore-crashes]  [--ignore-timeouts] 

100次:60次停止 。。。

操作上忽略,日志记录+系统日志:全部

[-s  SEED] : 序列值

adb shell monkey -p com.taobao.taobao -s 450 -v

[-v  [-v] ...]:  日志级别:一个 -v是一个级别 最多三个-v

throttle:打印文档的速率  throttle  3000  (单位是毫秒)

adb shell monkey -p com.taobao.taobao -s 450 -v  --throttle 3000

日志的获取

monkey- p cn.com.pyc   -v 20000>d:1.txt

monkey测试结果分析步骤

1.monkey结束以后,要查看是否遇到异常结束,如果log结束出现monkey aborted due to erro异常。

2.复现时,使用之前执行的monkey命令在执行一遍,注意seed值要一样。

 

原文地址:https://www.cnblogs.com/Chamberlain/p/10989789.html