内容简介:参考链接:这里我们接上一篇继续讲解如何利用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运行结束
我们需要对这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的时,会反馈相应的数据
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- Android自动化测试入门(四)单元测试
- 自动化测试之-测试用例设计
- 从 0 构建自动化测试平台(五):兼容性测试实现
- 实用测试技能分享:jmeter+Jenkins性能测试自动化搭建
- 怎么玩转App测试?自动化测试工具选择方法汇总!
- 从功能测试转成自动化测试,软件测试工程师该如何成功转型?
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。