monkey稳定性测试及日志分析

文章目录

  • 前言
  • 一、目的
  • 二、步骤
  • 三、实操


前言

进行一次简单的monkey测试


一、目的

1.主要用于稳定性测试,测试app 是否会Crash。

二、步骤

1.环境配置:把adb加入系统环境,手机开启开发者模式。
2.连接手机,获取测试的包名。(命令:adb shell pm list packages)
3.Monkey编写测试命令,并运行
monkey自动化脚本
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。



三、实操

1.连接上手机。( 我们这里使用模拟器,用的是雷电模拟器,个人觉得它比夜神好用。


2.输入命令
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:monkey_log.txtmonkey稳定性测试及日志分析_第1张图片
3.如何控制monkey运行时间。
例如:运行monkey三分钟,每条指令间隔一秒,那么三分钟为180秒,将最后的数字改为180即可。monkey稳定性测试及日志分析_第2张图片
4.如何暂停monkey脚本
1、先查进程号:adb shell “ps | grep monkey”
2、然后 :adb shell kill 刚才查到的进程号

monkey稳定性测试及日志分析_第3张图片
5.从Monkey日志中看问题
1.程序无响应的问题:在日志中搜索 “ANR”
2.奔溃问题搜“Crash”
3.搜索“fatal”
4.崩溃问题:在日志中搜索 “Exception” ,常见的Java异常:
算术异常类:ArithmeticExecption
空指针异常类:NullPointerException
类型强制转换异常:ClassCastException
数组负下标异常:NegativeArrayException
数组下标越界异常:ArrayIndexOutOfBoundsException
违背安全原则异常:SecturityException
文件已结束异常:EOFException
文件未找到异常:FileNotFoundException
字符串转换为数字异常:NumberFormatException
操作数据库异常:SQLException
输入输出异常:IOException
违法访问错误:IllegalAccessError
内存不足错误:OutOfMemoryError
堆栈溢出错误:StackOverflowError

6.重现问题

Monkey测试出现错误后,一般的查错步骤为以下几步:
1.找到是monkey里面的哪个地方出错
2.查看Monkey里面出错前的一些事件动作,并手动执行该动作
3.若以上步骤还不能找出,可以使用之前执行的monkey命令再执行一遍,注意seed值要一样

一般 0 ANR 0 Crash是测试标准。

你可能感兴趣的:(软件测试,monkey测试,android)