Monkey日志分析

Monkey日志分析

前言

  • 当我们运行ADB工具进行Monkey压力测试后会打印出Monkey的压力测试结果,具体的压力测试步骤就不再详解,如有需要,请参考: ADB工具的安装以及进行Monkey压力测试
  • Monkey输出日志一般包含四类信息,分别是测试命令信息、伪随机事件流信息、异常信息、 Monkey 执行结果信息

1. 测试命令信息

  • 在Monkey日志的开头就是测试命令的信息,包含种子( Seed )信息、事件数量、可运行的应用列表等。这些信息都是通过 Monkey 命令参数所指定的,如图:标红部分正是我执行的测试命令。
    在这里插入图片描述

2. 伪随机事件流信息

在这里插入图片描述

  • 伪随机事件流主要就是各个事件,在输入的文档中可以看见如图所示的事件百分比,这分别代表什么意思呢?首先需要说明的是,Monkey测试的原理是模拟用户向系统发送伪随机的用户事件(如按键、手势、触摸屏等输入),对软件进行稳定性与压力测试。
  • 所以,以下事件分别表示:

0:–pct-touch//touch
events percentage触摸事件百分比(触摸事件是一个在屏幕单一位置的按下-抬起事件)

1:–pct-motion//motion
events percentage手势事件百分比(手势事件是由一个在屏幕某处的按下事件、一系列的伪随机移动、一个抬起事件组成)即一个滑动操作,但是是直线的,不能拐弯

2:–pct-pinchzoom//pinch
zoom events percentage二指缩放百分比,即智能机上的放大缩小手势操作

3:–pct-trackball//trackball
events percentage轨迹球事件百分比(轨迹球事件包括一个或多个随机移动,有时还伴有点击。轨迹球现在智能手机上已经没有了,就是类似手柄的方向键一样)

4:–pct-rotation//screen
rotation events percentage屏幕旋转百分比,横屏竖屏

5:–pct-nav//nav
events percentage”基本”导航事件百分比(导航事件包括上下左右,如方向输入设备的输入)老手机的上下左右键,智能机上没有

6:–pct-majornav//major
nav events percentage”主要”导航事件百分比(这些导航事件通常会引发UI的事件,例如5-way pad的中间键、回退键、菜单键)

7:–pct-syskeys//system(key)
operations percentage”系统”按钮事件百分比(这些按钮一般专供系统使用,如Home, Back, Start Call, End Call,音量控制)

8:–pct-appswitch//app
switch events percentage启动activity事件百分比。在随机的间隔里,Monkey会执行一个startActivity()调用,作为最大程度覆盖包中全部Activity的一种方法

9:–pct-flip//keyboard
flip percentage键盘轻弹百分比,如点击输入框,键盘弹起,点击输入框以外区域,键盘收回

10:–pct-anyevent//anyevents
percentage其他类型事件百分比。包括了其他所有的类型事件,如按键、其他不常用的设备上的按钮等等。

3. 异常信息

3.1 报错

如果执行Monkey命令时出现以下报错:不要怀疑,多半是你的包名搞错了,曾经遇到过这个坑!!
** No activities found to run, monkey aborted.

3.2 错误查找

  • 建议把Monkey打印日志保存在一个单独的文档中,这样方便查找错误信息,只要在执行的Monkey命令的最后加上">你要保存文档路径"就可以了,例:
    adb shell monkey -p com.tencent.mm -s 300 -v -v 300 > D:\test\test.txt说明该测试结果就保存在test.txt文档中。
  • 查找错误日志一般在测试结果文档中搜索关键字:
  1. 程序无响应,ANR问题:在日志中搜索“ANR”;
  2. 崩溃问题:在日志中搜索“CRASH”;
  3. 其他问题:在日志中搜索”Exception”;

3.3 错误重现

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

4. Monkey执行结果信息

  • 当Monkey命令执行完毕会在最后输出执行结果,如图:如果最后输出如;红框所示,则表示顺利执行完毕,并没有任何报错信息。
    在这里插入图片描述

Events injected: 30000//注入事件30000

1)Sending rotation degree=0, persist=false //发送屏幕翻转度=0,存留=假

2)Dropped: keys=4 pointers=0 trackballs=0 flips=89 rotations=0 //丢弃:键=4,指针=0,轨迹球=0,键盘轻弹=89,屏幕翻转=0

3)Network stats: elapsed time=142346ms (0ms mobile, 0ms wifi, 142346ms not connected) //网络状态:占用时间=142346ms(手机0ms,wifi0ms,未连接142346ms)

4)Monkey finished //Monkey测试完成

  • 如果 Monkey 执行过程中出现了异常导致执行失败,会输出对应的执行失败的原因,第几个事件执行失败以及所使用的随机种子数:
// 显示
Monkey 执行失败
** Monkey aborted due to error.
// 执行的事件数量
Events injected: 8
// 旋转的角度为0
:Sending rotation degree=0, persist=false
// 丢失的事件数量
:Dropped: keys=0 pointers=0 trackballs=0 flips=0 rotations=0
// 网络状态
## Network stats: elapsed time=405ms (0ms mobile, 0ms wifi, 405ms not connected)
// 提示在执行到第8 个事件时出现Crash ,以及所使用的随机种子的值
** System appears to have crashed at event 8 of 100 using seed 1454216848235

最后

最后,希望这篇文章对于读者有所帮助,欢迎指正!

参考文章:

  1. Monkey日志信息的11种Event percentages
  2. Monkey日志分析
  • 3
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值