monkey

monkey特点
1.monkey用来做Android系统的压力测试
2.monkey是Android自带的工具
3.monkey可以直接通过adb命令直接调用
4.monkey可以同时测试多个APP
5.monkey可以定义每次测试的顺序
6.monkey可以设置测试的日志级别
7.monkey日志分析测试结果
8.monkey可设置时间操作的百分比
9.monkey可以设置异常继续操作

monkey的环境搭建
1.monkey是Android自带的工具
2.Android内核是Linux的
3.Android的操作,adb命令和Linux操作系统的命令一样
4.Android开发语言:Java

JDK环境搭建
① 安装:jdk-8u121-windows-x64.exe
② 配置环境变量:path:C:\Program Files\Java\jdk1.8.0_121\bin;JAVA_HOME:C:\Program Files\Java\jdk1.8.0_121\bin;CLASSPATH:%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar
③ 验证Java是否安装成功:命令行输入java、javac、java -version

① 解压android-sdk-windows.rar
② 配置环境变量:
path:G:\installation-package\android\android-sdk-windows\platform-tools;G:\installation-package\android\android-sdk-windows\tools
Android_home:G:\installation-package\android\android-sdk-windows
③ 命令行输入adb,验证sdb是否安装成功

Android特性
1.Java语言开发
2.Android是一个移动操作系统,系统是Linux内核系统

SDK Manager.exe:创建和管理Android版本

AVD Manager.ext:创建和管理模拟器

adb命令
1.adb shell:进入设备的shell

2.adb devices:查找连接的设备

3.adb kill-server:关闭adb服务
4.adb start-server:启动adb服务
5.adb -s 设备名称 shell:进入制定的设备

6.exit:退出设备的shell


7.只有对sdcard有读写权限,其它的文件都只有读的权限
8.adb shell touch /sdcard/test.txt:新建文件

9.adb shell rm -rf /sdcard/test.txt:删除文件
10.pwd:查看当前的路径


11.adb push 本地路径 /sdcard/:文件上传

12.adb shell mkdir /sdcard/test:新建文件夹

13.adb pull /sdcard/test.txt e:\test:下载文件

14.adb install 路径:安装apk
apk安装路径是在/data/app

15.adb uninstall 包名:卸载apk

16.exit:退出shell

mac地址,每一台电脑都是唯一的
每一个APP都有一个唯一的包名,可以通过包名来找到我们想要的APP,并进行操作,如果我们要卸载一个APP,那么就可以通过包名去卸载

查看包名的方式
cd /data/data目录下就可以找到手机所有的包名,可以找到最新那个包名,就是刚刚安装的那个软件的包名
adb shell pm list package -f来查看所有的包名,通过data查看,只能看到包名,通过adb shell pm list package -f查看,就会把apk的安装路径,与包名相对应。系统自带的APP都安装在/system/app目录,而我们自主开发的APP,一般都安装在data/app目录中
adb shell dumpsys activity>e:\test\test.log把手机所有的包名都保存到本地,然后通过安装前后两次的所有包名进行对比,得出我们刚刚安装的APP的包名

Android命令
android list targets,查看当前Android已安装的版本,和SDK Manager.ext上的版本一致


从上面的命令可以看出,有些是adb pull,并没有带shell,有些是带了shell的,这能说明,代理shell的,可以直接用adb shell,进入到shell里面,然后再执行命令也可以成功的。如果没有带shell的,如:adb install,这样的命令只能在DOS命令行下运行

monkey命令
1.adb shell monkey:启动monkey,如果带shell的,可以到shell里面去运行,也可以再DOS下运行
2.-p:定义包名,后面紧跟着就是被测试APP的包名,再monkey里面,定位APP使用包名
例:adb shell monkey -p 包名
3.monkey正常运行必备的参数
-p 引用包 执行次数
adb shell monkey -p com.tencent.mm 10
4.日志级别
-v:打印出开启和结束的日志
-v -v:打印每个执行的activity的开始和结束的日志,一般详细的日志
-v -v -v:打印出所有的activity的日志,很详细的日志
5.monkey测试多个APP
adb shell monkey -p 包名1 -p 包名2 100


6.seed值:用来记录每次操作的顺序
每次测试的时候,seed值都是不断变化的

-s seed值:自己定义seed值

7.--throttle<毫秒>在事件之间插入固定延迟。(休眠)

monkey除了操作APP本身的功能之外,还操作手机自带的按键
8.--pct-touch:点击事件
9.--pct-rotation:翻屏事件
10.--pct-motion:划屏事件
11.--pct-syskeys:硬件事件(home键、音量调节,打电话、切图)
12.--pct-appswitch:启动activity的百分比
13.--pct-flip:键盘事件的百分比
14.--pct-pinchzoom:缩放
总的事件百分比是100%,不能大于100%,如果总时间不是大于100%,其它的部分就会随机分配

参数
adb shell monkey -p com.tencent.mm --pct-touch 10 --pct-motion 0 --ignore-crashes --ignore-timeouts --ignore- security- exceptions --kill-process- after-error --pct-rotation 50 --pct-appswitch 0 --pct-syskeys 0 --pct-anyevent 0 --pct-flip 10 --pct-pinchzoom 0 -v -v -v 10000

日志分析
anr:程序崩溃
exception :异常,null空指针
error:程序错误
crash:程序闪退

推荐阅读更多精彩内容