目录
前言:
一、Monkey简介
二、monkey常见命令
三、日志导出
前言:
Monkey测试是一种黑盒测试方法,用于测试Android应用程序的压力稳定性,目的是评估应用在极端情况下是否能够稳定、可靠地工作。它是Android SDK自带的一个工具,可以随机生成伪造的触屏事件、按键事件等,模拟人类的随机操作,以此来测试应用程序的稳定性。适当的Monkey测试可以帮助开发人员发现未知Bug,提高应用程序的稳定性和可靠性。
一、Monkey简介
Android系统自带monkey程序,模拟用户触摸屏幕、滑动Trackball、按键等操作来对设备上的程序进行压力测试,检测程序多久的时间会发生异常。
Monkey的使用是在产品稳定了,没有特别多的Bug时候。用monkey去测试待测应用的稳定性、健壮性(是否会发生闪退、崩溃),手机出厂前的整机测试。Monkey犹如其猴子的译名,就是杂乱无章的乱点,通过指定执行点击次数,不断的点击安卓系统,或者指定的App,给系统产生压力。
注意:在使用Monkey之前,需要利用adb将PC端与安卓设备连接。
二、monkey常见命令
1.1、调出说明手册
命令:adbshellmonkey–help或者-h
这个命令可以查看monkey使用的说明,如下:
1.2、monkey基本命令格式:adbshellmonkey{+命令参数}[执行事件次数]
例如:adbshellmonkey-v100
命令参数例如:-p,-v,-c事件:一个点击、一个回退,等就是一个事件
1.3、命令参数
注意:所有的参数都需要放在monkey和设置的事件次数之间,参数的顺序可以调整;若带了-p,-p最好放在monkey之后。
例:
adbshellmonkey-p<包名>--throttle1000--ignore-crashes--ignore-timeouts--ignore-security-exceptions--ignore-native-crashes--monitor-native-crashes-v-v-v-s300500
1.3.1、打印日志等级
-v:用于指定反馈信息级别(信息级别就是日志的详细程度)。
总共分3个级别;
一级:-v//默认级别,仅提供启动、测试完成和最终结果等少量信息
二级:-v–v//提供较为详细的日志,包括每个发送到Activity的事件信息
三级:-v-v-v//提供最详细的日志,包括了测试中选中/未选中的Activity信息
例如:adbshellmonkey-v-v-v100
1.3.2、指定测试App
-p<App包名>:增加App的包名时,可以只针对该App进行压力测试;
包名可同时添加多个,同时对多个App测试;
不加"-p<App包名>"时,则对安卓系统进行测试。
例:1)对一个App测试
adbshellmonkey-pcom.tecentmobileqq-v-v-v300
2)对两个App进行测试
adbshellmonkey-pcom.lemon.lemon-pcom.tecentmobileqq-v-v-v300
1.3.3、seed值
-s用于指定随机数生成器的seed值;
如果前后两次使用monkey时seed值相同,测两次monkey测试所产生的事件序列也相同。用于问题重现;
seed值相当于执行顺序,可以是300、400等。但是遇到问题,需要再次使用monkey复现问题时,seed必须相同。可以直接运行上一次的命令。
格式:
adbshellmonkey-p<包名>-v-v-v-s<seed值>[执行事件次数]
例:
adbshellmonkey-pcom.tecentmobileqq-v-v-v-s4001000
【400:seed的值,1000:执行事件次数】【复现同一问题时,将此命令重新输一遍】
1.3.4、操作时延
--throttle<毫秒>用于指定用户操作(即事件)间的时延,单位是毫秒。
例如:时延为1秒,在执行点击事件后等1秒在进行回退事件。
格式:
adbshellmonkey-v-v-v-p<包名>-s<seed值>--throttle1000[执行事件次数]
例:
adbshellmonkey-v-v-v-pcom.tecentmobileqq-s300--throttle1000500【--throttle1000指时间间隔为一秒】
1.3.5、忽略超时和崩溃
monkey测试的过程中遇到crash(崩溃)或者timeout(超时)的情况时,会停止测试。如果想在遇到crash或者timeout时继续运行指令,需要加--ignore-crashes--ignore-timeouts将crash和timeout忽略掉。
格式:
adbshellmonkey-p<包名>--throttle1000--ignore-crashes--ignore-timeouts-v-v-v-s300500
三、日志导出
Monkey执行过程中产生异常时,需要把日志导出,将异常信息找出。
1、直接将日志打印至PC端
命令:
adbshellmonkey-p<包名>-v-v-v[执行事件次数]><PC端存放目录>
可以在执行monkey过程中,直接将日志存放至PC端。
例:
adbshellmonkey-p<包名>-v-v-v200D:\log.txt
2、执行完monkey之后导出日志
命令:
adblogcat–vtime>D:\log.txt拉取的日志自带时间
3、日志定位
当日志生成后,我们需要进入日志当中查看是否有APP崩溃记录或者无响应记录。
查找关键字:
A、崩溃记录查找”CRASH”;
B、无响应记录查找”ANR”;
C、内存泄露问题搜索"GC"(需进一步分析);
D、异常问题搜索“Exception”;
作为一位过来人也是希望大家少走一些弯路,在这里我给大家分享一些自动化测试前进之路的必须品,希望能对你带来帮助。(WEB自动化测试、app自动化测试、接口自动化测试、持续集成、自动化测试开发、大厂面试真题、简历模板等等),相信能使你更好的进步!
留【自动化测试】即可【自动化测试交流】:574737577(备注ccc)http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=6gweEAHLIo-VjldEz9_yMjFfeBIGgEu2&authKey=MC4ik2bydrYxO5if1oNFzT6c93XUrxOxYtv7IRYOVRDNh47xpEllgkFVDlFD%2Bf6M&noverify=0&group_code=574737577