讲解如何利用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日志文件做一个概要性解释

Filedescription

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的时,会反馈相应的数据

 如果对你有帮助的话,点个赞收个藏,给作者一个鼓励。也方便你下次能够快速查找。

END绵薄之力

最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!

加入我的软件测试交流群:110685036免费获取~(同行大佬一起学术交流,每晚都有大佬直播分享技术知识点)

软件测试面试小程序

被百万人刷爆的软件测试题库!!!谁用谁知道!!!全网最全面试刷题小程序,手机就可以刷题,地铁上公交上,卷起来!

涵盖以下这些面试题板块:

1、软件测试基础理论 ,2、web,app,接口功能测试 ,3、网络 ,4、数据库 ,5、linux

6、web,app,接口自动化 ,7、性能测试 ,8、编程基础,9、hr面试题 ,10、开放性测试题,11、安全测试,12、计算机基础

获取方式 :

详解Monkey自动化测试(日志分析)相关推荐

  1. hadoop作业初始化过程详解(源码分析第三篇)

    (一)概述 我们在上一篇blog已经详细的分析了一个作业从用户输入提交命令到到达JobTracker之前的各个过程.在作业到达JobTracker之后初始化之前,JobTracker会通过submit ...

  2. [原创]Android Monkey 在线日志分析工具开发

    [原创]Android Monkey 在线日志分析工具开发 在移动App测试过程中,Monkey测试是我们发现潜在问题的一种非常有效手段,但是Android原生的Monkey有其天然的不足,数据不能有 ...

  3. SpringMVC异常处理机制详解[附带源码分析]

    SpringMVC异常处理机制详解[附带源码分析] 参考文章: (1)SpringMVC异常处理机制详解[附带源码分析] (2)https://www.cnblogs.com/fangjian0423 ...

  4. spark RDD详解及源码分析

    spark RDD详解及源码分析 @(SPARK)[spark] spark RDD详解及源码分析 一基础 一什么是RDD 二RDD的适用范围 三一些特性 四RDD的创建 1由一个已经存在的scala ...

  5. spark 调度模块详解及源码分析

    spark 调度模块详解及源码分析 @(SPARK)[spark] spark 调度模块详解及源码分析 一概述 一三个主要的类 1class DAGScheduler 2trait TaskSched ...

  6. FPGA学习之路—接口(2)—I2C协议详解+Verilog源码分析

    FPGA学习之路--I2C协议详解+Verilog源码分析 定义 I2C Bus(Inter-Integrated Circuit Bus) 最早是由Philips半导体(现被NXP收购)开发的两线时 ...

  7. Batch Normalization详解(原理+实验分析)

    Batch Normalization详解(原理+实验分析) 1. 计算过程 2. 前向传播过程 3. 反向传播过程 4. 实验分析 4.1 实验一:验证有没有BatchNorm下准确率的区别 4.2 ...

  8. 方案详解|AARRR+八角行为分析=用游戏化思维实现用户增长

    我们需要一套基于AARRR模型,围绕增长成本.效率.质量三个话题来针对每一层转化漏斗提炼可操作的运营方案,以AARRR模型+八角行为分析法为理论框架的,游戏化运营增长策略应运而生.随着互联网线上流量的 ...

  9. 中科大-计算机类考研真题(初试笔试真题详解+复试笔试机试真题详解+面试问题汇总分析)

    中科大-计算机类考研真题(初试笔试真题详解+复试笔试机试真题详解+面试问题汇总分析) 初试笔试真题2003年~2019年:答案+详解 复试面试问题总结:问题汇总+详解分析 复试面试经验总结:个人小结 ...

最新文章

  1. 将Eclipse中Web项目打成war包
  2. gitlab解决一些问题
  3. 输入和输出移位寄存器的同步串行模式
  4. hibernate的一对多双向关联映射----客户和订单关系
  5. 一个mybatis处理batch的插件,类似于pageHelper插件
  6. 千里眼摄像头支持对象存储吗_【手机技术】专业相机应用Halide全面支持苹果iPhone SE 2人像模式...
  7. java计算时间差 Java问题通用解决代码
  8. 【WCF】服务并发中的“可重入模式”
  9. 大湾区足球联赛港澳赛区上演进球大战
  10. 【语音处理】基于matlab GUI语音信号综合处理平台【含Matlab源码 290期】
  11. OpenGL.Superbible.7th.Edition(openGL超级宝典第七版)随书例子运行
  12. 打印机提示更换墨盒,但打印字仍很清晰,打印机设置还能用很久
  13. 数据库ASM管理-ASM文件
  14. 个性化系统推送 java_个性化推送系统
  15. DPI/DFI/端口识别技术
  16. 产品需求与项目需求的差异
  17. 建模人必备的C4D素材网站,解决你的创作问题
  18. 求三个数的最小公倍数的解法之美
  19. WPF实现组态软件-逼真的管道和速度可变流体(五)
  20. python写的hadoop实战_hadoop实战 pdf

热门文章

  1. ca证书 csr_CSR文件在线验证工具
  2. 【jmeter测试--自带录制脚本功能】
  3. md5 collision(NUPT_CTF)
  4. 水瓶座 -- 双子座
  5. ERROR L121: IMPROPER FIXUP keil c 51单片机编译错误原因
  6. 冯诺依曼体系、冯诺依曼型计算机的基本特点、组成、五大功能。
  7. 什么是渲染?一文看懂,萌新赶紧收藏码住!
  8. 先装Vista后装XP双系统的方法
  9. OSI以及TCP参考模型
  10. oracle查询某表近两个月数据