赞
踩
官网:https://developer.android.google.cn/studio/test/monkey?hl=zh_cn
是Android系统自带的命令行工具,由java语言编写,它可以向被测应用发送用户事件(比如点击、手势、触摸等),对软件进行稳定性与压力测试。
Monkey.jar程序是由一个名为“Monkey”的shell脚本来启动执行。由adb shell命令启动。
adb shell Monkey {+命令参数}
-v 只打印启动信息,测试完成信息和最终结果信息
-v -v 提供有关测试在运行时的更多详细信息,例如发送到您的Activity的各个事件
-v -v -v 打印最详细的信息,例如已选择或未选择用于测试的Activity
adb shell
##进入shell
ls |grep monkey
## 浏览文件
cat monkey
##adb shell Monkey {命令参数}
如果系统崩溃或收到任何未处理的异常,Monkey会报错
adb logcat|findstr "Displayed " net.onest.portablecheckoutdevice/net.onest.ui.CheckoutActivity
adb shell monkey -p net.onest.portablecheckoutdevice -v 500 > d:/demo/monkey.log
monkey -p net.onest.portablecheckoutdevice -v 500 >/mnt/sdcard/m20210930.txt
ls |grep 2021
标准流和错误流分开 重点关注错误流信息。
monkey -p net.onest.portablecheckoutdevice -v 500 1>/mnt/sdcard/1scard.txt 2 >/mnt/sdcard/errorcard.txt
adb shell monkey --help
adb logcat |findstr "Displayed "
##得到包名com.example.myapplication0922/.MainActivity:
## 多个选项就多个-p
adb shell monkey -p com.example.myapplication0922/.MainActivity -pcom.example.myapplication0922/.MainActivity
## -s 随机数种子 种子数
adb shell monkey -s 1234 -p net.onest.portablecheckoutdevice -v 500
## 100毫秒 停顿的时间
adb shell monkey -s 1234 --throttle 100 -p net.onest.portablecheckoutdevice -v 500
##时间之间加入随机延迟
##--randomize--throttle
adb shell monkey -p net.onest.portablecheckoutdevice -s 1234 --randomize-throttle 100 -v 500
## --pct-touch <percent> 触摸屏幕时间
adb shell monkey -p net.onest.portablecheckoutdevice -s 1234 --randomize-throttle 100 --pct-touch 100 -v 500
## 对于一部分倾向于滑动与长按的app 可以调用 这一部分 touch命令
常见错误类型:
ANR:5秒内没有响应
Crash: 异常停止、异常退出。
忽略参数
##--ignore-crasges 忽略异常
adb shell monkey -p net.onest.portablecheckoutdevice --ignore-crasges -v 500
##--ignore-
##
## --ignore-native-crashes 忽略android底层C/C++崩溃
黑名单:不测试的应用
白名单:只测试包含在白名单中的应用。
## 白名单先上传到设备
adb shell pm list packages > e:/demo/list.txt
adb -s 127.0.0.1:60021 shell pm list packages > d:demo/list2021.txt
adb push d:demo/list2021.txt /data/local/temp
## 白名单上的应用执行100次
adb shell monkey --pkg--whitelist-file /data/local/tmp/list2021.txt -v 100
##-v -v -v 打印最详细的信息。
adb shell monkey -p com.example.myapplication0922 --ignore-crashes -v -v -v 500
在文本里面直接搜索“Exception”
运行次数越多 越容易出现内存溢出异常。
adb shell monkey -p net.onest.portablecheckoutdevice -s 1234 --randomize-throttle 100 --pct-touch 100 -s ignore-timeouts -v -v -v 500 > d:/demo/monkey0930011.txtx
策略例子1:整机测试,而不测试拨号应用,忽略所有错误,次数100万次 adb shell monkey --ignore-crashes --ignore-timeouts --pkg-blacklist-file /data/local/tmp/blacklist.txt -v -v 1000000 策略例子2:测试计算器30万次,随机种子为100,随机延迟0-1秒,忽略所有错误 adb shell monkey -p com.android.calculator2 -s 100 --throttle 1000 --randomize-throttle --ignore-crashes --ignore-timeouts -v -v 300000 策略例子3:测试计算器,触摸事件30%,其他按键50%,错误停止,延时200 adb shell monkey -p com.android.calculator2 --throttle 200 --pct-touch 30 --pct-anyevent 50 -v -v 100000 策略例子4:对计算器进行旋转压力测试,事件延时2秒,10万次 adb shell monkey -p com.android.calculator2 --pct-rotation 100 --throttle 2000 100000 策略例子5:仅对整机的应用开启测试,事件延时5秒,10万次 adb shell monkey --pct-appswitch 100 --throttle 5000 100000
命令的组合:
选取策略+随机种子策略+事件策略+异常策略+延时策略+事件数量
应用选取策略: 单应用 多应用组合 黑白名单组合
异常策略: 1.跑完,全部异常忽略 2.专门测试某个异常 3.出现异常马上终止
应用选取策略:
1、 单应用
2、 多应用组合
3、 黑白名单组合
4、 整机测试
随机种子策略:
1、 固定种子,从小到极大的种子
2、 随机种子
事件策略:
1、 用户故事策略:依据常见的用户场景划分各事件百分比
2、 应用特性策略:依据应用策略对Monkey各事件进行划分百分比
3、 专项测试策略:对某个事件提高到很高的百分比,对应用进行专项测试
1.连接真机不稳定:检查是否接触不良
2.Monkey执行过程中有时候会触碰到通知栏等其他地方, 如何避免? 官网下载Monkey源代码,进行二次开发。 Monkey命令的使用需要组合多种参数方式来实现覆盖
应用特性策略:依据应用策略对Monkey各事件进行划分百分比
3、 专项测试策略:对某个事件提高到很高的百分比,对应用进行专项测试
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。