Monkey 是什么?android
Monkey是Google提供的一个用于稳定性与压力测试的命令行工具。shell
Monkey路径:app
路径:/System/framework/monkey.jardom
启动脚本路径:/system/bin/monkey工具
1.首先咱们先打开安卓模拟器测试
2.打开本地cmd命令窗口spa
3.输入命令查看 模拟器是否有链接上命令行
adb devices ,出现以下图所示说明已链接上日志
4.而后就能够输入 adb shell 命令 进入monkey的路径下去执行monkey test了orm
cd /system/framworke/ 成功进入目录,而后再来找下是否是有monkey的jar包
5. 模糊查询含有monkey的命令:ls | grep monkey ,能够看到里面是有monkey.jar包
6.咱们再看下启动脚本 cd /system/bin/ 成功进入目录,而后输入命令: ls | grep monkey 找下是否是有monkey 启动脚本
上图能够看出是有monkey的启动脚本的
由此上一节提到的环境变量的配置童鞋们也知道是作什么用的了
配置adb的环境
monkey是由adb命令启动的,因此要配置adb的环境
1.下载 Android SDK,解压
2.将SDK目录下的platform-tools 和 tools目录配置到系统换环境变量中(将变量配置好以后才能安装apk文件)
3.打开cmd窗口,输入adb,有adb帮助信息则配置成功
安装apk文件
首先 将须要进行测试的apk包拷贝到platform-tools 目录下
而后执行安装命令 adb install test.apk
要注意点的一点就是,执行安装命令的时候,须要进入该目录下,我这边的目录是
命令:E:
进入目录下,cd E:\Android\android-sdk\platform-tools
而后执行安装apk命令,出现下图 Success 表示安装成功,右侧的就是模拟器安装成功的app
命令格式:(输入命令以后,模拟器上会运行对应的指定操做)
1.PC 启动
>adb shell monkey [option] <count> "[]"可选参数,可不填,"<>"里面的参数必填,不填会报错
2.shell端启动
> adb shell
>monkey [optinon] <count>
这两种方式有什么不一样呢,第一种PC启动,结果能够保存在PC端;第二种手机端启动,结果只能保存在手机。
固然 运行monkey时候的log想要保存出来也是能够的
保存monkey运行的log
1.保存在PC中 adb shell monkey [option] <count> > d:\monkey.txt 例如:adb shell monkey 100 > d:\monkey.txt (运行100次,日志保存在D盘,第2,第3同样的意思,就不举例了)
2.保存在手机中 monkey [option] <count> > /mnt/sdcard/monkey.txt
3.标准流与错误流分开保存
monkey [option] <count> 1> /mnt/sdcard/monkey.txt 2> /mnt/sdcard/error.txt
monkey test的话 首先是须要了解各个参数是干吗的,各个参数的意义,再进行实践操做
adb shell monkey -help 查看帮助命令
adb shell pm list packages 列出全部apk的包名
下面来进行实操演练
手机端运行
首先进入adb shell
运营对应的apk文件 adb shell monkey -p com.dabai.app.im 100 ( -p 后面接apk包名 而后接次数)
上面红色框中就是报错的提示 运行19次后报错,由于上图没有加日志导出,下面是事件参数,这边就将各类参数导出日志的方法执行一遍
若是在执行过程当中,运行次数过多,想要中止monkey的运行,那么就再打开一个cmd命令窗口
先查看出monkey的进程
adb shell ps | find "monkey"
查询出来的结果中 后面有跟着对应的apk包名
那么kill这个进程便可
adb shell kill +进程编号 例如我这边的是:adb shell kill 2189,执行后,就会结束运行了
Monkey事件参数
对应日志中的事件
对应命令(执行的效果的话 童鞋们最好本身执行而后对照着模拟器观察就能够知道效果了)
随机种子 -S
adb shell monkey -p com.dabai.app.im -s 100 -v -v 100 (-S后面的100是随机序列号也就是对应seed编号名称,-V后面的100表明的是运行次数)下次若是还要查看该seed的执行过程,就在-s后面加100便可
固定延时 --throttle<毫秒>
adb shell monkey -p com.dabai.app.im --throttle 200 -v -v 100
随机延时 --randomize-throttle
adb shell monkey -p com.dabai.app.im --throttle 200 --randomize-throttle -v -v 100 (这句话的意思是0-200毫秒的随机延时)
touch 点击事件
adb shell monkey -p com.dabai.app.im --pct-touch 100--throttle 200 --randomize-throttle -v -v 100 (--pct是百分比的简称,touch后面跟的100 意思是 100%的操做都是执行这个touch)
motion 移动事件
adb shell monkey -p com.dabai.app.im --pct-motion 100--throttle 200 --randomize-throttle -v -v 100
trackball 轨迹球事件
adb shell monkey -p com.dabai.app.im --pct-trackball 100--throttle 200 --randomize-throttle -v -v 100
nav 导航时事件(上下左右键的意思)
adb shell monkey -p com.dabai.app.im --pct-nav 100--throttle 200 --randomize-throttle -v -v 100
majornav 主要导航事件
adb shell monkey -p com.dabai.app.im --pct-majornav 100--throttle 200 --randomize-throttle -v -v 100
下面的事件都是同理的执行,还有一个地方就是,全部的导航事件都是能够连用的,只要将百分比设置的不一样便可