monkey自动化、随机测试是Android系统自带的测试工具,只需要通过adb工具连接手机终端,输入简单的命令,就可以做一些随机测试。
下面梳理下之前做monkey测试过程中用到的一些指令,做总结和记录。
#启动monkey方式
adb shell -> monkey [options]
adb shell monkey [options]
#kill monkey进程
adb shell ps | grep monkey
adb shell kill pid
#简单的monkey命令,10 表示随机事件
adb shell monkey -v 10
#常规的稳定性测试,–pct-xxx参数限制monkey执行的事件类型和占比
adb shell monkey
-p com.hytera //应用的包名,monkey会通过包名来找到应用,启动activity执行monkey测试;
–pct-touch 40 //触摸事件占比40%
–pct-motion 25 //手势事件占比25%
–pct-appswitch 10 //Activity切换事件占比10%
–pct-rotation 5 //将横竖屏切换事件调整到5%
–pct-pinchzoom 5//将双指缩放调整占比到5%
-s 12358 //指定命令执行的seed值,每个值对应的事件流是唯一的,如果需要复现,这个值就必须一致,才能完全模拟相同的事件流。
–throttle 400 //控制monkey每个操作之间的时间间隔,固定延迟400ms
–ignore-crashes //日志中记录crash但是monkey测试继续
–ignore-timeouts //日志记录anr,继续执行monkey测试
-v 指定log级别,默认级别为level 0 ,日志级别?日志级别程度越高,详细程度越高。为了方便问题定位,一般级别设置为level 2 -v-v-v
500000 //随机事件数
-hprof 查看内存泄漏
dumpsys
#查看应用包名的几种方式
1. adb shell pm list package
2. apk源码下androidmanifest.xml
3. aapt命令查看
4. adb logcat 抓取当前app包名
#monkey自定义脚本编写模板,将脚本放在手机中;文件格式没有要求
-f scriptfile
eg:
adb push monkey.sh /sdcard/data/
adb shell monkey -f /sdcard/data/monkey.sh -v 1 // 1表示执行1次,这里可以做一些修改。
#自定义脚本是通过获取点击事件的坐标信息来进行的,获取坐标信息:打开开发人员选项,打开显示指针位置
#monkey测试过程中可以另起一个cmd窗口做一些辅助测试
- 获取logcat日志信息
adb shell logcat -v time > log.txt - 获取内存信息
adb shell dumpsys meminfo <进程名> - 获取CPU消耗信息
adb shell top -n 1 | find “进程名” - 获取电量信息
adb shell dumpsys battery - 获取GPU信息
adb shell dumpsys gfxinfo <进程名> - 获取流量信息
adb shell cat /proc/uid_stat/<被测应用的uid>/tcp_rcv - 查看被测应用的进程id
adb shell ps | grep <被测应用的包名> - 查看被测应用的用户id
adb shell cat /proc/$pid/status - 切换wifi状态
adb shell am - 获取当前的网络状态
adb shell ifconfig wlan0
——保存monkey日志的几种方式————-
1.保存到PC中
adb shell monkey [option] > path
2.保存到手机中
adb shell -> monkey [option] > /mnt/sdcard/filename
3.运行日志和异常日志分别保存
monkey [options] 1> path1 2> path2
——————-待解决问题————————
#bat脚本使用
#monkey出现问题时及时截图保存
#monkey如何获取到WiFi的SSID
#monkey测试过程中随机断网解决方法