noahedu:Android的monkey测试、自动化压力测试

Android的monkey测试、压力测试

money可以进行自动化压力测试,他会随机给手机发送指令(包括所有触屏操作,按键(电源键、音量键)操作)。

不说多的了,直接来。

其实也很简单,首先要保证手机是连接电脑了的。

来几个进阶的 

打印详细的输出日志

-v

因为monkey会执行较长时间 那怎么停止monkey呢?

1.打开一个新的命令窗口。

2.输入 adb shell 后,再输入 ps | grep monkey

3.找到pid后(这里是14570),kill 掉pid. 这样就停止掉monkey了。

 一、常见用法: 

场景1:对 包名为com.noahedu.intelligentguidestudy的应用做15000000次测试,时间间隔为300毫秒(打印到终端)。

adb shell monkey -s 201902061031 -p com.noahedu.intelligentguidestudy --throttle 300  --pct-syskeys 0 --pct-anyevent 0  -v 15000000

场景2:日志保持到sdcard,方便保存信息和查看。

adb shell "monkey -s 201810110022  -p com.noahedu.intelligentguidestudy  --throttle 300  --pct-syskeys 0 --pct-anyevent 0     -v -v -v 5000000 1> /sdcard/lll_mk_10_2801.txt  2>/sdcard/lll_err_190523.txt"

场景3:整机monkey

adb shell monkey -s 201902061031 --throttle 300  --pct-syskeys 0 --pct-anyevent 0  -v 15000000

场景4:多应用同时做monkey

adb shell "monkey -s 201810061010 -p com.noahedu.magichanzicollege -p com.noahedu.magichanzicard --throttle 100  --pct-syskeys 0 --pct-anyevent 0 -v -v -v 15000000 1> /sdcard/magichanzicollege_mk_12_261.txt  2>/sdcard/magichanzicollege_err_12_262.txt"

场景5:忽略错误(正常出现crashmonkey会终止,忽略后还会继续monkey,检测内存泄漏性能等问题)

adb shell monkey -s 201810091001 -p com.ysyx.launcher --throttle 10 --ignore-crashes --ignore-timeouts --ignore-security-exceptions --ignore-native-crashes --monitor-native-crashes -v -v -v 5000000 > D:\MonkeyTest\launcher\tv_laucher_V1.0.9_20181009_1.txt

 

场景6:加入--pct-syskeys 0 --pct-anyevent 0 (防止monkey的时候按音量键,把办公室变成菜市场

adb shell monkey -s 201810061031 -p com.noahedu.teachingvideo  --throttle 300  --pct-syskeys 0 --pct-anyevent 0   -v -v -v 15000000 > D:\analysis\tv_tea_V1.0.9_20190522_1.txt

二、参数解析:

* throttle 间隔多少毫秒再次点击

* ignore-crashes 忽略crash,当发生应用奔溃时继续monkey测试

* ignore-timeouts忽略超时

* ignore-security-exceptions忽略安全异常

* monitor-native-crashes跟踪本地方法的崩溃问题,so库中的问题

* -p指定测试的应用包名

* -v -v -v 详细信息

* 1000 点击的次数

* 1> 将monkey测试的普通的报告重定向(输出到D盘)到D盘normal.txt

* 2> 将奔溃日志重定向到D盘error.txt

* 注意: 1> 2>为固定写法,切勿修改,标准流与错误流分开保存

三 、停止monkey:( grep是linux下的命令,windows用findstr)

adb shell ps | findstr monkey

adb shell kill 6842

四、测试结果分析:

Monkey测试的log分析,我们可以通过几个关键词来判断测试是否通过。

1)Monkey finished

打开LOG,查看log的最下端,是否有类似以下字段:

## Network stats: elapsed time=5123ms (5123ms mobile, 0ms wifi, 0ms not connected)

// Monkey finished

这个字段表明本次的Monkey没有异常,测试通过。

2)CRASH

同样,在得到LOG后,搜索”CRASH”字段,如果搜索到有结果,则表明有进程出现问题,测试不通过。

// CRASH: com.onekchi.downloadmanager (pid 12919)

3)ANR

在Log中搜素该字段,如果有搜索有结果,则表示测试过程中,测试对象出现了无响应的现象,因此测试不通过。--throttle <毫秒>值建议为500

4)无法搜索到上述信息

出现这种情况,一般都是外界原因而非程序本身原因。比如电脑异常测试中断,需要重新测试。

(1)、ANR问题(程序无响应):在日志中搜索“ANR"(application no response)

(2)、闪退问题:在日志中搜索"crash"

(3)、异常:搜索"exception"

(4)、强制退出:搜索"force closed"

如何避免monkey压力测试自动关闭WiFi

办法1:将手机root后,使用下述命令先关闭WiFi,再打开WiFi; 最后再开始执行monkey测试命令

adb shell svc wifi disable

adb shell svc wifi enable

使用上述命令后,暂未发现monkey会再次自动关闭WiFi的现象

办法2:monkey测试时,用命令控制,Monkey测试的比例,将 --pct-touch 比例设置为100%,就会自动禁止掉滑动操作(如果要测试的应用没有滑动操作),就不会拉出状态栏,关闭WiFi等。

参考:

Android自动化压力测试图解教程——Monkey工具_android民工-CSDN博客_安卓压力测试工具

Android 程序员必须掌握的三种自动化测试方法 - 希尔瓦娜斯女神 - 博客园

https://developer.android.com/topic/libraries/testing-support-library/index.html?hl=zh-CN

  APP压力稳定性测试之Monkey入门 - 吃个鱼丸 - 博客园

事件数目较大,执行过程中如何停止Monkey测试_u010056063的博客-CSDN博客

相关推荐

相关文章