九、monkey工具

一. Monkey 简介和基本使用

1.1 环境
同 Android 环境
1.2 Monkey 用来做什么
Monkey 主要用于Android 的压力测试 自动的一个压力测试小工具, 主要目的就是为了测试app 是否会Crash.
1.3 Monkey 程序介绍
Monkey程序由Android系统自带,使用Java语言写成,在Android文件系统中的存放路径是:/system/framework/monkey.jar;
Monkey.jar程序是由一个名为“monkey”的Shell脚本来启动执行,shell脚本在Android文件系统中 的存放路径是:/system/bin/monkey;
1.4Monkey 命令启动方式:
可以通过PC机CMD窗口中执行: adb shell monkey {+命令参数}来进行Monkey测试
在PC上adb shell 进入Android系统,通过执行 monkey {+命令参数} 来进行Monkey 测试
在Android机或者模拟器上直接执行monkey 命令,可以在Android机上安装Android终端模拟器(Terminal Emulator for Android)
1.4 Monkey 输出日志

adb shell monkey -p cn.goapk.market 100 > 路径/log.txt

二. Monkey 的参数

2.1 启动指定 app
-p <允许的包名列表>
用此参数指定一个或多个包。指定包之后,monkey将只允许系统启动指定的app。如果指定包列表, monkey将允许系统启动设备中的所有app。
指定一个包:adb shell monkey -p cn.goapk.market 100
指定多个包:adb shell monkey -p fishjoy.control.menu –p cn.goapk.market 100
2.2 日志级别
-v
用于指定反馈信息级别(信息级别就是日志的详细程度),总共分3个级别,分别对应的参数如下 表所示:
Level 0 : adb shell monkey -p cn.goapk.market -v 100 // 缺省值,仅提供启动提示、测试完成和最终结果等少量信息
Level 1 : adb shell monkey -p cn.goapk.market -v -v 100 // 提供较为详细的日志,包括每个发送到Activity的事件信息
Level 2 : adb shell monkey -p cn.goapk.market -v -v -v 100 // 最详细的日志,包括了测试中选中/未选中的Activity信息
2.3 随机数种子
-s(随机数种子)
用于指定伪随机数生成器的seed值,如果seed相同,则两次Monkey测试所产生的事件序列也相同的。 示例:

monkey测试1:adb shell monkey -p cn.goapk.market –s 10 100
monkey测试2:adb shell monkey -p cn.goapk.market –s 10 100

2.4 事件间隔时间
–throttle <毫秒>
cn.goapk.market --throttle 3000 100
2.5 随机事件出现的百分比

--pct-touch <percent>
调整触摸事件的百分比(触摸事件是一个down-up事件,它发生在屏幕上的某单一 位置)--pct-motion <percent>
调整动作事件的百分比(动作事件由屏幕上某处的一个down事件、一系列的伪随机事 件和一个up事件组成)--pct-pinchzoom <percent>
缩放事件百分比
--pct-trackball <percent>
调整轨迹事件的百分比(轨迹事件由一个或几个随机的移动组成,有时还伴随有点击)--pct-rotation <percent>
屏幕旋转事件百分比
--pct-nav <percent>
调整“基本”导航事件的百分比(导航事件由来自方向输入 设备的up/down/left/right组成)--pct-majornav <percent>
调整“主要”导航事件的百分比(这些导航事件通常引发图 形界面中的动作,如:回退按键、菜单按键)
--pct-syskeys <percent>
调整“系统”按键事件的百分比(这些按键通常被保留,由 系统使用,如Home、Back、Start Call、End Call及音量控
制键)--pct-appswitch <percent>
调整启动Activity的百分比。在随机间隔里,Monkey将执行一个startActivity()调 用,作为最大程度覆盖包中全部
Activity的一种方法。
--pct-flip <percent>
键盘翻转事件百分比
--pct-anyevent <percent>
调整其它类型事件的百分比。它包罗了所有其它类型的事件,如:按键、其它不常用的设备按钮、等等。

三. Monkey 日志分析

正常情况
如果Monkey测试顺利执行完成, 在log的最后, 会打印出当前执行事件的次数和所花费的时间; // Monkey
finished 代表执行完成
异常情况
Monkey 测试出现错误后,一般的分析步骤

  1. 程序无响应的问题: 在日志中搜索 “ANR” (可能仅仅是因为卡)
  2. 崩溃问题:在日志中搜索 “Exception” (如果出现空指针, NullPointerException) 肯定是有bug Monkey 执行中
    断, 在log最后也能看到当前执行次数

四、实战指令

步骤:

  1. 打开cmd
  2. 输入指令即可,就会自动执行
adb shell monkey –p com.citicpub.fly--throttle 1000 -v -v -v -s 1 --ignore-security-exceptions --kill-process-after-error --monitor-native-crashes 16400000 >C:\Users\xuxu\Desktop\java_monkey_log.txt

注意:
com.citicpub.fly 是你测试的包名,通过iadb命令获取即可

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值