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 路径
:安装apk15.
adb uninstall 包名
:卸载apk16.
exit
:退出shellmac地址,每一台电脑都是唯一的
每一个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值:用来记录每次操作的顺序
-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
:程序闪退