monkey自动化测试(日志分析)

栏目: 编程工具 · 发布时间: 4年前

内容简介:参考链接:这里我们接上一篇继续讲解如何利用monkey分析ANR、CRASH、以及monkey运行期间的系统日志。首先对于report的日志命名需要有相应的规范,这里建议是将level 1的文件命名为verbose,将level 2的文件命名为error。前者主要是用来观看日志信息和事件分布信息,后者主要是用来观看error的信息,做进一步的bug分析。

参考链接: www.jianshu.com/p/09751dacd…

这里我们接上一篇继续讲解如何利用monkey分析ANR、CRASH、以及monkey运行期间的系统日志。

1.log文件配置

首先对于report的日志命名需要有相应的规范,这里建议是将level 1的文件命名为verbose,将level 2的文件命名为error。前者主要是用来观看日志信息和事件分布信息,后者主要是用来观看error的信息,做进一步的bug分析。

当然,不同的开发者命名规则可能不一样,可以按照自己的习惯配置。

Code description
2>/sdcard/error.txt Level 2日志保存到sdcard上的error.txt中
1>/sdcard/verbose.txt Level 1日志保存到sdcard上的verbose.txt中

在monkey自动化测试(命令行)这里我们需要在最后的命令行里面加上配置。

adb shell monkey -p jixiang.com.myandroid --ignore-crashes --ignore-timeouts --ignore-native-crashes --pct-motion 60 -v -v --throttle 200 -s 200 1000 2>d:/error.txt 1>d:/verbose.txt

//  ”2>/sdcard/error.txt 1>/sdcard/verbose.txt"
//若是使用PC运行,并保存在PC端,不需加" ",但是若是需要保存在手机文件夹中,需要添加
复制代码

2.获取log文件

这里,先对于log日志文件做一个概要性解释

File description
error.txt 记录了MONKEY测试时产生的一些ANR、强制关闭等异常
verbose.txt 记录了MONKEY测试时发送的各种事件,如触摸事件的位置等等
log.txt 此文件在手机上的LOG文件夹中(data/log目录)中,主要主要记录程序对MONKEY测试时的响应情况

通过检查verbose.txt文件的反馈信息,底部出现

monkey自动化测试(日志分析)

monkey运行结束

我们需要对这3个文件进行分析整理,以便提交开发人员处理。

2.1 log.txt日志

log日志在使用Android Studio自带的logcat就可以查看,这里不再赘述。

2.2 verbose.txt运行日志

我们先对verbose包进行解析。以下是概略性截图

monkey自动化测试(日志分析)

其中

//seed为随机数生成器seed值,count为本次设置的操作次数
:Monkey: seed=200 count=1000
//后面为指定测试的包名
:AllowPackage: com.changan.facein
//monkey进程的category
:IncludeCategory: android.intent.category.LAUNCHER
:IncludeCategory: android.intent.category.MONKEY
复制代码

然后,在后面会有一个数据列表,这个是用来展示本次测试所有事件的百分比,我这里直接贴出7.0(我的手机是小米NOTE3 7.0系统),这里注意,不同的操作系统,得出来参数个数会不一样,但是都大同小异。

* Event percentages本次测试的事件分布频率
* 0:触摸事件百分比,即参数–pct-touch 
*1:滑动事件百分比,即参数–pct-motion 
*2:缩放事件百分比,即参数–pct-pinchzoom 
*3:轨迹球事件百分比,即参数–pct-trackball 
*4:屏幕旋转事件百分比,即参数–pct-rotation 
*5:获取危险权限事件百分比,即参数–pct-permission//低版本没有
*6:基本导航事件百分比,即参数–pct-nav 
*7:主要导航事件百分比,即参数–pct-majornav 
*8:系统事件百分比,即参数–pct-syskeys 
*9:Activity启动事件百分比,即参数–pct-appswitch 
*10:键盘翻转事件百分比,即参数–pct-flip 
*11:其他事件百分比,即参数–pct-anyevent
*/
// Event percentages:
//   0: 6.6666665%
//   1: 60.0%
//   2: 0.8888889%
//   3: 6.6666665%
//   4: -0.0%
//   5: -0.0%
//   6: 11.111112%
//   7: 6.6666665%
//   8: 0.8888889%
//   9: 0.8888889%
//   10: 0.44444445%
//   11: 5.7777777%
复制代码

后面就是一个个switch的内容,由于过多但是内容格式相同,这里就截取其中的一段讲解 //swicth会告诉我们,在具体哪个界面进行测试

Switch: #Intent;action=android.intent.action.MAIN;category=android.intent.category.LAUNCHER;launchFlags=0x10200000;component=com.changan.facein/.activity.WelcomeActivity;end
    // Allowing start of Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=com.changan.facein/.activity.WelcomeActivity } in package com.changan.facein
    // Allowing start of Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=com.changan.facein/.activity.WelcomeActivity } in package com.changan.facein
//motion时间,以及motion参数
Sleeping for 200 milliseconds
:Sending Key (ACTION_DOWN): 21    // KEYCODE_DPAD_LEFT
:Sending Key (ACTION_UP): 21    // KEYCODE_DPAD_LEFT
复制代码

结尾处一般会有以下几行文字:

//Events injected 截止次数
Events injected: 1000
:Sending rotation degree=0, persist=false
:Dropped: keys=0 pointers=0 trackballs=0 flips=2 rotations=0
//整个测试完成持续时间为ms。1s=1000ms
## Network stats: elapsed time=42539ms (0ms mobile, 0ms wifi, 42539ms not connected)
//monkey测试结束标识
// Monkey finished
复制代码

到此对于Verbose的讲解已经结束。

2.3 error.txt 错误日志

error文件中,为发生错误后反馈的数据,一般没有任何错误发生时,数据为空,调试时最好忽略相应的错误,让程序可以继续运行下去。monkey检测到的错误类型分为三种:

CRASH:系统崩溃日志,当Apk存在崩溃的情况下会反馈相应的数据。

A N R:当ANR情况出现时,会反馈相应的数据。

常见的Exception:存在一些Exception的时,会反馈相应的数据

monkey自动化测试(日志分析)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

C语言程序设计

C语言程序设计

K. N. King / 吕秀锋、黄倩 / 人民邮电出版社 / 2010-4 / 79.00元

时至今日, C语言仍然是计算机领域的通用语言之一,但今天的 C语言已经和最初的时候大不相同了。本书最主要的一个目的就是通过一种“现代方法”来介绍 C语言,书中强调标准 C,强调软件工程,不再强调“手工优化”。这一版中紧密结合了 C99标准,并与 C89标准进行对照,补充了 C99中的最新特性。本书分为 C语言的基础特性、 C语言的高级特性、 C语言标准库和参考资料 4个部分。每章末尾都有一个“问与......一起来看看 《C语言程序设计》 这本书的介绍吧!

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具