Android monkey测试

@[DOC]

monkey测试

一、获取包名
adb shell pm list packages        查看手机所有的安装包
adb shell pm list packages -3    查看手机上所有的第三方安装包

二、简单的monkey测试指令

  • -p参数:表示指定测试的程序(空格后面跟安装包名字,拿刚才的第三方安装包一个个试)

  • -v参数:表示查看monkey执行过程的信息(日志级别)(-v 越多越详细,最多三个)

  • 数字100:表示测试事件数为100

 adb shell monkey  -p  com.tencent.news  -v -v -v  100   (此时指定软件会被打开并开始乱点乱按)指定一个包
 adb shell monkey -p com.tencent.news -p com.pdfreader -p com.widgets  -v 1000  指定多个包
 adb shell monkey -v 1000    不指定包
  • 结果如下
    在这里插入图片描述
  • Event percentages(事件百分比)
0:触摸事件百分比,即参数--pct-touch

1:滑动事件百分比,即参数--pct-motion

2:缩放事件百分比,即参数--pct-pinchzoom

3:轨迹球事件百分比,即参数--pct-trackball

4:屏幕旋转事件百分比,

5:基本导航事件百分比,即参数--pct-nav

6:主要导航事件百分比,即参数--pct-majornav

7:系统事件百分比,即参数--pct-syskeys

8:Activity启动事件百分比,即参数--pct-appswitch

9:键盘翻转事件百分比,即参数--pct-flip

10:其他事件百分比,即参数--pct-anyevent

三、-throttle 添加事件延迟

adb shell monkey -pcom.htc.Weather –throttle 3000 100

四、参数: --ignore-crashes

  • 用于指定当应用程序崩溃时(Force& Close错误),Monkey是否停止运行。如果使用此参数,即使应用程序崩溃,Monkey依然会发送事件,直到测试完成
adb shellmonkey -p com.htc.Weather --ignore-crashes 1000 测试过程中即使Weather程序崩溃,Monkey依然会继续发送事件直到事件数目达到1000为止;

五、参数: --ignore-timeouts (无响应ANR)

  • 用于指定当应用程序发生ANR(ApplicationNo Responding)错误时,Monkey是否停止运行。如果使用此参数,即使应用程序发生ANR错误,也不会停止运行
adb shell monkey -p com.htc.Weather --ignore-timeouts 1000

六、日志保存以及日志分析

  • adb shell monkey -p 包名 --pct-touch 40 --pct-motion 25 --pct-appswitch 10 --pct-rotation 5 -s 12358 --throttle 1000 --ignore-crashes --ignore-timeouts -v-v 500000>D:log11.txt
脚本解释:
**--pct-touch 和 --pct-motion** 
分别代表触摸事件和手势事件,是比较常见的操作,
所以通过--pct-touch 和 --pct-motion 将这两个
事件的占比调整到40%与25% (自定义)
**--pct-appswitch**
目标应用包含了多个 Activity (页面),为了能覆盖大部分的activity,
所以通过--pct-appswitch将Activity切换的事件占比调整到10% 即--pct-appswitch 10 。
**--pct-rotation**
通过--pct-rotation把横竖屏切换事件调整到5%。
**-s (s 值随便设都可以)**
Monkey会根据seed值来生成对应事件流, 同一个seed生成的事件流是完全相同的。 
这里指定了seed值, 是为了测试发现问题时便于问题复现,所以seed 可以随便设,
如果要复现上次的过程,需要保证两次的值一致。
**--throttle**
来控制Monkey每个操作之间的时间间隔,单位:毫秒 1秒=1000毫秒
--ignore-crash和--ignore-timeouts (奔溃、无响应)
在执行Monkey测试时, 会因为应用的崩溃或没有响应而意外终止,所以需要在命令中增加限制参数--ignore-crash和--ignoretimeouts, 
让Monkey在遇到崩溃或没有响应的时候, 能在日志中记录相关信息, 并继续执行后续的测试。
**–-ignore-security-exceptions**
忽略安全异常(比如证书许可,网路许可)
**–-ignore-native-crashes** 
忽略本地代码导致的崩溃
**–-monitor-native-crashes** 
监听并报告程序发生崩溃的本地代码
**-v**指定log的详细级别
Monkey的日志输出有3个级别: -v默认的是level 0, -v-v日志级别为level 1, -v-v-v日志级别为level 2。 日志的级别越高, 其详细程度也越
高。 为了方便问题的定位, 将日志级别设置为level2。
  • 如何暂停monkey测试脚本
1、先查进程号:adb shell “ps | grep monkey”
2、然后 :adb shell kill 刚才查到的进程号
  • 日志分析
程序无响应的问题:在日志中搜索 “ANR”
奔溃问题搜“Crash”
搜索“fatal”
崩溃问题:在日志中搜索 “Exception” ,常见的Java异常:
算术异常类:ArithmeticExecption
空指针异常类:NullPointerException
类型强制转换异常:ClassCastException
数组负下标异常:NegativeArrayException
数组下标越界异常:ArrayIndexOutOfBoundsException
违背安全原则异常:SecturityException
文件已结束异常:EOFException
文件未找到异常:FileNotFoundException
字符串转换为数字异常:NumberFormatException
操作数据库异常:SQLException
输入输出异常:IOException
违法访问错误:IllegalAccessError
内存不足错误:OutOfMemoryError
堆栈溢出错误:StackOverflowError
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值