Android的Monkey工具使用

Monkey工具的使用

官网:https://developer.android.google.cn/studio/test/monkey?hl=zh_cn

​ 是Android系统自带的命令行工具,由java语言编写,它可以向被测应用发送用户事件(比如点击、手势、触摸等),对软件进行稳定性与压力测试。

​ Monkey.jar程序是由一个名为“Monkey”的shell脚本来启动执行。由adb shell命令启动。

adb shell Monkey {+命令参数}

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++崩溃


Monkey黑白名单

​ 黑名单:不测试的应用

​ 白名单:只测试包含在白名单中的应用。

## 白名单先上传到设备
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

Monkey测试策略介绍

策略例子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、 专项测试策略:对某个事件提高到很高的百分比,对应用进行专项测试

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值