monkey测试
Monkey测试是安卓平台自动化测试的一种手段,通过monkey程序模拟用户触摸屏幕,拖动,按键啊什么的操作来对设备上的程序进行压力测试,检测程序多久的时间会出现异常。
缺点:虽然可以根据一个指定的命令脚本发送按键消息,但是它不支持条件判断,也不支持待测节目的值来执行验证操作。
具体什么时候用monkey测试? 一般去测试其稳定性,健壮性(是否发生闪退啊,程序崩溃啊什么的),这些都是建立在功能都差不多测试完了,没有很多bug的时候,也就是项目要上线之前。
常用的命令:
adb –help或者adb -h 查看帮助手册
adb devices 检测连接的设备的连接情况
adb install xxx.apk 安装测试包
adb uninstall 包名 卸载测试包
adb pull 手机路径 电脑路径 从手机中拉取信息放到本地电脑上
adb push 电脑路径 手机路径 从本地推送信息到手机上 (这个在跑monkey脚本时常用)
adb start-server 当adb出问题了或者启动不起来时,先kill后start下
adb kill-server 配合上面的start-server使用
adb shell 登陆设备的shell(命令行的人机界面),llls 命令都可以用,就是一个linux环境
adb get-state 获取设备状态
会打印出其中一种状态::offline |bootloader | deviceadb get-serialno 获取设备***
adb root 获取root权限
adb remount 让系统分区可读可写
adb reboot bootloader 重启进fastboot模式
adb reboot recovery 重启进入recovery模式
adb logcat 输出logcat日志数据
adb logcat > c:\logcat.txt 可以将日志重定向输入到一个日志文件中
adb bugreport > c:\bugreport.txt 输出bugreport日志
monkey命令格式
adb shell monkey 参数 次数
-v 指定反馈信息级别 总共3中级别
-v级别1 仅提供启动提示,测试完成和最终结果少量的相关信息
-v –v 级别2 提供较为详细一点点的信息,包括每个发送到activity的事件信息
-v –v –v级别3 最详细的,包括测试中选中/未选中的activity的信息
Eg:adb shell monkey –p 包名 –v 100
adb shell monkey =p com.sina.weibo -v –v –v 100
如何查找包名
1:adb shell 进入shell 命令行界面
# cd data/data
#ls (真机的话要root后才能进入,手机root后 输入 su进入该目录)
2:如何查看前台运行的包名及应用名
adb shell dumpsys activity | find “mFocusedActivity”
查看当前设备app应用包名
adb shell pm list packages [选项] (FILTER) 显示所有软件包,可选择只显示软件包名称中包含(FILTER)的软件包,使用-f 参数:adb shell pm list packages –f输出包与包相关联的文件
使用aapt查看apk包名和第一个启动的activity 这个方式是app没有安装的时候,在Windows系统文件下面使用的查看方法
使用aapt //aapt是sdk自带的一个工具,在sdk\builds-tools\目录下
1.以ES文件浏览器为例,命令行中切换到aapt.exe目录执行:aapt dump badging E:\apk\es3.apk
2.运行后的结果中以下两行分别是应用包名package和入口activity名称
package: name=’com.estrongs.android.pop’
launchable-activity: name=’com.estrongs.android.pop.view.FileExplorerActivity’
注:在android sdk目录搜索可以找到aapt.exe,如果没有可以下载apktool。(直接使用aapt命令时候,需要将该exe文件路径写入path中)
-p 后面跟包名 ,多个包名就有多个-p
Monkey参数
--pkg—whitelist-file 白名单 后面接txt文件
使用方法:将你设置的白名单的包名写到一个txt文件中,记得路径和文档名字都是英文,然后把这个文件通过adb push 将文件拉到安卓手机上面,放到一个文件下面(一般都放在data/local/tmp)下面。命令如下:
adb push C:\baimingdan.txt data/local/tmp 注意这里的两个反斜杠
adb shell monkey –pkg-whitelist-file/data/local/tmp/baimingdan.txt 1000
--blacklist-file 黑名单 和白名单一样的用法,只是反过来txt文件里面写不启动的软件包名
Eg:adb shell monkey –pkg-blacklist-file/data/local/tmp/heimingdan.txt 1000
--throttle (毫秒) 用于指定用户操作间的时延,单位是毫秒
adb shell monkey –p 包名 –throttle3000 100
--randomize-throttle 在事件之间插入随机延迟,随机延迟范围为0到设置的时间,单位毫秒
Eg:adb shell monkey –p 包名 –throttle 5000–randomize-throttle 100 执行100测monkey随机事件,每次事件的间隔在0到5000ms之间不固定
-s 用于指定伪随机生成器的seed值,如果seed值相同就可以生成相同的事件
Eg:adb shell monkey –p 包名 –s 101 100 seed值问为101
如果在测试中发现写错了脚本或者不想继续测试了,想停下来怎么办?
首先查看monkey进程pid号adb shell ps| find “monkey”
然后呢kill掉进程号adb shell kill pid pid为进程号
保存日志:
Adb shell monkey –v –v –v 100 > 电脑地址
Eg:adb shell monkey –v –v–v 100 >C:\data.txt