什么是monkey?
Monkey是Android中的一个命令行工具,可以运行在模拟器里或实际设备中。它向系统发送伪随机的用户事件流(如按键输入、触摸屏输入、手势输入等),实现对正在开发的应用程序进行压力测试。Monkey测试是一种为了测试软件的稳定性、健壮性的快速有效的方法。
Monkey的特征
测试的对象仅为应用程序包,有一定的局限性。
Monkey测试使用的事件流数据流是随机的,不能进行自定义。
可对Monkey test的对象,事件数量,类型,频率等进行设 置。
Monkey的基本用法
基本语法如下:
PC启动:> adb shell monkey [options] <count>
其中:[] 表示为可选;<>表示为必选,此种启 动运行后的测试结果可直接保存在PC端
Shell端启动: >adb shell #monkey [options] <count>
如果不指定options,Monkey将以无反馈模式启动,并把事件任意发送到安装在目标环境中的全部包。下面是一个更为典型的命令行示例,它启动指定的应用程序,并向其发送500个伪随机事件:
$ adb shell monkey -p your.package.name -v 500
查看data/data文件夹下的应用程序包,若无权查看则使用以下命令:
adb shell su -c "chmod 777 /data"adb shell su -c "chmod 777 /data/data"ls data/data
保存monkey运行的log
保存在PC中 adb shell monkey [option] <count> > d:\monkey.txt
.保存在手机中 monkey [option] <count> > /mnt/sdcard/monkey.txt
标准流与错误流分开保存
monkey [option] <count> 1> /mnt/sdcard/monkey.txt 2> /mnt/sdcard/error.txt
调试选项
--dbg-no-events:初始化启动的activity,但是不产生任何事件。--hprof:指定该项后在事件序列发送前后会立即生成分析报告 —— 一般建议指定该项。--ignore-crashes:忽略崩溃--ignore-timeouts:忽略超时--ignore-security-exceptions:忽略安全异常--kill-process-after-error:发生错误后直接杀掉进程--monitor-native-crashes:跟踪本地方法的崩溃问题--wait-dbg:知道连接了调试器才执行monkey测试。
查看monkey帮助命令
adb shell monkey –help
adb shell pm list packages 列出所有安装到Android手机上应用的包名
查看出monkey的进程
adb shell ps | find “monkey“, kill 进程:adb shell kill 进程编号
实例
产生时间序列的种子值:500忽略程序崩溃 、 忽略超时 、 监视本地程序崩溃 、 详细信息级别为2 , 产生 10000个事件 。
adb shell monkey -p com.jrj.tougu -s 500 --ignore-crashes --ignore-timeouts --monitor-native-crashes -v -v 10000 > E:\monkey_log\java_monkey_log.txt
随机种子 -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
Adb 基本命令
adb push d:\whitelist.txt /data/local/tmp/
Adb pull /mnt/sdcard/monkey.txt d:monkey.txt
adb install apk名称 //安装Android应用程序
adb uninstall 包名 //卸载android应用程序
aapt dump badging apk 名称 //查看apk 包名
adb shell pm list packages //查看已安装在手机或者模拟器上的android应用程序
adb shell am start -w com.tencent.mm/com.tencent.mm.ui.LauncherUI
//查看apk启动时间
觉得赞的请打赏