app测试2--monkey稳定性测试

一、monkey基础

1、为什么要进行monkey测试

monkey测试是为了测试稳定性和健壮性

crash:崩溃、闪退

ANR机制--Application Not Responding:在主线程中进行了耗时的操作

主线程:负责UI相关,子线程:负责具体事务

耗时操作有:在主线程中请求网络操作、数据库的查询、

2、monkey简介

是android中附带的一个工具

它向系统发送伪随机的用户事件流(如按键输入、触摸屏输入、手势输入等),实现对应用程序进行稳定性和健壮性测试

3、monkey工作原理

monkey运行的时候,生成伪随机事件流,并把他们发给系统,同时monkey还对测试中的系统进行监测,并进行特殊处理

如果应用程序崩溃或接收到任何失控异常,monkey将停止并报错

如果应用程序产生了应用程序不响应的错误,monkey将会停止并报错

按照选定的不同级别的反馈信息,在monkey中还可以看到其执行过程报告和生成的事件

二、monkey的使用

1、开始-运行-cmd

usb连接手机,输入adb  shell  monkey 命令

adb monkey shell -p com.tencent.mm -v  500

2、日志的获取

为了方便分析问题,可以将日志信息重定向到文件中

格式:monkey -p  com.tencent.mm -v 1000 >1.log   --一个>是覆盖

           monkey -p  com.tencent.mm -v 1000 >>1.log  --两个>>是追加

adb shell

monkey   -p  com.tencent.mm -v 1000 >d:/1.txt  --不正确,因为adb shell 后进入了手机,手机没有d盘,正确的指令是:

adb shell  monkey   -p  com.tencent.mm -v 1000 >d:/1.txt

如果进行monkey测试时,遇到anr或crash的情况,在抓取log的同时需要提供traces.txt(在/data/anr/下)

adb  shell cd /data/anr

ls

monkey命令行参数 :

-p 

monkey -p com.tencent.mm -p  com.aotuyidongzhifa.cn  -v  100

-V -VV  -VVV  

-s 用于指定伪随机事件生成器的seed值,如果seed相同,则两次monkey测试所产生的事件序列也是相同的

-throttle<毫秒>用于指定用户操作间的延迟,单位是毫秒

--ignore -crashes 应用程序即使发生崩溃,也会运行直到计数完成

adb shell monkey -p  com.tencent.mm  --ignore -crashes -v 500

--ignore - timeouts 应用程序即使发生ANR错误时,monkey依然会发送事件,直到事件计数完成

adb shell monkey  -p com.tencent.mm  --ignore -timeouts 

adb shell  -> cd system/bin  ->ls 可以看到很多linux命令,包括

adb shell monkey  -p  cn.com.pyc  200

adb  shell monkey -p cn.com.pyc -v 500

adb shell monkey -p cn.com.pyc  -s  12345  -v 500  >e:1.txt

--打开monkey测试的日志文件,搜索error、exception、crash、anr

adb  shell monkey -p cn.com.pyc  -v  -s 1234567  --throttle  300 200 >e:/1.txt

--如果想让多一点触摸事件

adb  shell monkey  -p cn.com.pyc -v -s  11709 --throttle 300  --pct-touch 50 200 >e:/1.txt

--如果测试的过程中出现crash异常,提供monkey日志的同时还要提供monkey指令,还要附上响应的crash截图

--如果测试过程中出现anr异常,需要另外提供traces文件   adb shell->cd data/anr ->ls ->traces.txt

原文地址:https://www.cnblogs.com/runoob/p/9566500.html