本文主要是介绍monkey自动化测试(2)----日志分析,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
本篇文章主要是讲解如何对日志进行分析,需要学习基本命令行,和monkey的运行原理的小伙伴们请移步到:
monkey自动化测试(1)----命令行
这里我们接上一篇继续讲解如何利用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自动化测试(1)----命令行这里我们需要在最后的命令行里面加上配置。
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文件的反馈信息,底部出现
我们需要对这3个文件进行分析整理,以便提交开发人员处理。
2.1 log.txt日志
log日志在使用Android Studio自带的logcat就可以查看,这里不再赘述。
2.2 verbose.txt运行日志
我们先对verbose包进行解析。以下是概略性截图
其中
//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自动化测试的日志分析已经解析完毕,之后会对monkey的源码和自动分析的dat脚本。
这篇关于monkey自动化测试(2)----日志分析的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!