Monkey压力测试--用来作稳定性测试

Monkey压力测试

1、什么是Monkey

Monkey是Android SDK附带的一个工具,一个作app压力测试的工具经过某些Linux命令,产生必定数量或必定时间内的随机模拟用户操做的事件, 如点击、按键、手势等, 以及一些系统级别的事件。一般也称随机测试或者稳定性测试。html

2、测试环境搭建

安装Android SDK 并配置环境变量便可。可参考:JDKadb/android环境变量配置完整教程 android

3、测试步骤

一、本地建立白名单文件,如:whitelist.txt,将包名添加到该文件中shell

如:com.ubtechinc.cruzr.advert
com.ubtechinc.cruzr.aiui
com.ubtechinc.cruzr.behavior
com.ubtechinc.cruzr.calendar
com.ubtechinc.cruzr.clock
com.ubtechinc.cruzr.coreservices
com.ubtechinc.cruzr.cruzralbum
com.ubtechinc.cruzr.cruzrbootwizard
com.ubtechinc.cruzr.dance
com.ubtechinc.cruzr.freeguide
com.ubtechinc.cruzr.introduce
com.ubtechinc.cruzr.launcher
com.ubtechinc.cruzr.launcher2
com.ubtechinc.cruzr.map
com.ubtechinc.cruzr.music
com.ubtechinc.cruzr.navigation
com.ubtechinc.cruzr.pccontrolstub
com.ubtechinc.cruzr.power
com.ubtechinc.cruzr.servicesupport
com.ubtechinc.cruzr.systemupdate
com.ubtechinc.cruzr.syswarn
com.ubtechinc.cruzr.timer
com.ubtechinc.cruzr.user
com.ubtechinc.cruzr.video
com.ubtechinc.cruzrpowersettings
com.ubtechinc.cruzrrosexceptionstats
com.ubtechinc.settingsapp

二、电脑链接到设备,将测试应用白名单push到Android系统,如:ide

adb push d:/Monkey/whitelist.txt /mnt/sdcard/data/whitelist.txt工具

三、登陆adb:adb shell测试

四、调用Monkey命令ui

monkey --pkg-whitelist-file /mnt/sdcard/data/whitelist.txt -s 101 --pct-touch 70 --pct-motion 20 --pct-trackball 10 --throttle 300 --ignore-crashes --ignore-timeouts --monitor-native-crashes -v -v 50000 |logcat -v time&>/mnt/sdcard/data/monkey_1019.logspa

 

参数说明:指针

--pkg-whitelist-file /mnt/sdcard/data/whitelist.txt //测试应用白名单

--s 50 //种子序列,出问题须要用相同种子值进行复现;没测出问题,下次须要从新修改种子值再跑

--pct-touch 70 //触摸事件的百分比(触摸事件是一个down-up事件,它发生在屏幕上的某单一位置)

--pct-motion 20 //动做事件的百分比(动做事件由屏幕上某处的一个down事件、一系列的伪随件机事和一个up事件组成)

--pct-trackball 10 //表示调整轨迹球事件的百分比(轨迹球事件由一个或多个随机移动组成,有时还伴随有点击)

--throttle 300 //毫秒,操做延时

--ignore-crashes //忽略无响应,继续执行

--ignore-timeouts //忽略Crash继续执行

--monitor-native-crashes //用于指定是否监视并报告应用程序发生崩溃的本地代码

--ignore-security-exceptions      //表示当应用程序遇到任何类型的权限错误时,Monkey将中止,例如,若是它尝试启动须要某些权限的活动。若是指定此选项,则Monkey将继续向系统发送事件,直到计数完成

-v 日志等级, 经过-v参数能够指定打印信息的详细级别,多一个-v多一个级别 

级别

表示

描述

0

-v

打印最基本的事件

1

-v-v

更全面的信息,如增长了那些Activity被选中

2

-v-v-v

日志记录最全面的信息 

 

50000 //事件数量

> monkey_1019.log //日志保存本地SD卡

--kill-process-after-error   //当Monkey因为一个错误而中止时,出错的应用程序将继续处于运行状态。当设置了此选项时,将会通知系统中止发生错误的进程。注意,正常的(成功的)结束,并无中止启动的进程,设备只是在结束事件以后,简单地保持在最后的状态

--monitor-native-crashes     //表示Android系统原生代码中的监视和报告崩溃。若是设置了-kill-process-after-error,系统将中止

--wait-dbg               //表示中止执行中的Monkey,直到有调试器和它相链接

 

tips:

1) 若只跑指定的几个包,能够不设置白名单,直接执行指令(-p部分添加要执行的包):

adb shell

monkey -p com.ubtechinc.cruzr.music -p com.ubtechinc.cruzr.video -s 50 --pct-touch 70 --pct-motion 20 --pct-trackball 10 --throttle 300 --monitor-native-crashes -v -v -v 10000&>/mnt/sdcard/data/ monkey_1019.log

2)不指定应用,跑安卓系统

 adb shell

 monkey -s 68 --pct-touch 70 --pct-motion 20 --pct-trackball 10 --throttle 300 --monitor-native-crashes -v -v -v 50000 &>/sdcard/monkey/ monkey_1019.log

3)指定黑名单,不执行该应用

a. 建立黑名单文件blacklist.txt

b. push黑名单到Android系统:adb push d:/Monkey/whitelist.txt /mnt/sdcard/data/blacklist.txt

c. 执行的时候增长--pkg-whitelist-file /mnt/sdcard/data/ blacklist.txt

4、导出日志及日志分析

一、导出日志到本地:

adb pull /mnt/sdcard/data/ monkey_1019.log E:\Cruzr\Monkey\log\ monkey_1019.log

二、日志分析

1)无响应问题能够在日志中搜索 “ANR”,崩溃问题搜索 “CRASH”, 若是碰到这两类问题,抓取日志同时,须要提供traces.txt,具体存放目录可询问开发

2)内存泄露问题搜索"GC"(需进一步分析),异常问题搜索 “Exception”(若是出现空指针, NullPointerException,需重视) 

 

(Monkey日志内容分析:
通常测试结果分析-搜索关键字:
1.程序无响应,ANR问题:在日志中搜索“ANR”
2.崩溃问题:在日志中搜索“CRASH”
3.其余问题:在日志中搜索”Exception”
4.ForceClosed 和程序异常退出问题:在日志中搜索"Fatal" 
5.搜索“system error”)

5、如何中断测试

一、登陆adb :adb shell

二、查看进程号:ps | grep monkey

三、kill掉w进程:kill <进程号>

 

 

 

操做说明:(单独一个文件夹复制过来的,仅供参考)

Cruzr Monkey测试操做说明        monkey --pkg-whitelist-file /mnt/sdcard/monkey/whitelist.txt -s 88 --pct-touch 70 --pct-motion 20 --pct-trackball 10 --throttle 800 --ignore-crashes --ignore-timeouts --monitor-native-crashes -v -v 50000    一、将测试应用白名单push到Android系统,如:     adb push d:/monkey/whitelist.txt /mnt/sdcard/monkey/whitelist.txt 二、登陆adb     adb shell 三、调用Monkey     monkey --pkg-whitelist-file /mnt/sdcard/monkey/whitelist.txt -s 53 --pct-touch 70 --pct-motion 20 --pct-motion 10 --throttle 500 --ignore-crashes --ignore-timeouts --monitor-native-crashes -v -v -v 100000 &>/mnt/sdcard/monkey/b0f1ecac466e_0806-001.log     参数说明:         --pkg-whitelist-file /mnt/sdcard/data/whitelist.txt        //测试应用白名单         -s 50        //种子序列(不一样的随机操做系列),出问题须要用相同种子值进行复现;没测出问题,下次须要从新修改种子值再跑         --pct-touch 70        //触摸事件的百分比(触摸事件是一个down-up事件,它发生在屏幕上的某单一位置)         --pct-motion 20        //动做事件的百分比(动做事件由屏幕上某处的一个down事件、一系列的伪随件机事和一个up事件组成)         --pct-motion 20        “基本”导航事件的百分比(导航事件由来自方向输入设备的up/down/left/right组成)         --throttle 500        //毫秒,操做延时         -ignore-crashes        //忽略无响应,继续执行         --ignore-timeouts        //忽略Crash继续执行         --monitor-native-crashes        用于指定是否监视并报告应用程序发生崩溃的本地代码         -v        日志等级         500000        //事件数量                  >>/mnt/sdcard/data/b0f1ecac46a3_0319-001.log        //标准输出日志保存本地SD卡         &>/mnt/sdcard/data/b0f1ecac46a3_0319-001.log        //标准输出和标准错误输出日志保存到本地SD卡         -v -v -v 500000 |logcat -v time &>/mnt/sdcard/hly-0414-002.log    //输出日志带时间戳          四、导出日志     adb pull /mnt/sdcard/monkey/b0f1ec8c21b7_0327-001.log d:/Monkey/b0f1ec8c21b7_0327-001.log           单个应用跑Monkey     adb shell monkey -p com.ubtechinc.cruzr.timer -s 50 --pct-touch 70 --pct-motion 20 --pct-motion 10 --throttle 500 --monitor-native-crashes -v -v -v 100000>d:/monkey/ test.log 多个应用跑Monkey         adb shell monkey -p com.ubtechinc.cruzr.timer -p com.ubtechinc.cruzr.launcher -s 50 --pct-touch 70 --pct-motion 20 --pct-motion 10 --throttle 500 --monitor-native-crashes -v -v -v 100000>d:/monkey/test.log                待确认:     monkey --pkg-whitelist-file /mnt/sdcard/monkey/whitelist.txt -s 55 --pct-touch 70 --pct-motion 20 --pct-motion 10 --throttle 300 --monitor-native-crashes -v -v -v 50000 &>/mnt/sdcard/monkey/fss0324-006.log     monkey --pkg-whitelist-file /mnt/sdcard/monkey/whitelist.txt -s 55 --pct-touch 70 --pct-motion 20 --pct-motion 10 --throttle 300 --ignore-crashes --ignore-timeouts --monitor-native-crashes -v -v -v 30000 &>/mnt/sdcard/monkey/fss0326-003.log

相关文章
相关标签/搜索