博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
monkey自动化测试(日志分析)
阅读量:6221 次
发布时间:2019-06-21

本文共 3325 字,大约阅读时间需要 11 分钟。

参考链接:

这里我们接上一篇继续讲解如何利用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的时,会反馈相应的数据

转载于:https://juejin.im/post/5ce36a72f265da1b95702adf

你可能感兴趣的文章
Apache Pulsar中的地域复制,第1篇:概念和功能
查看>>
Java的序列化特性将要退出历史舞台了
查看>>
2018年最好的45个Vue开源项目汇总
查看>>
Oracle即将发布的全新Java垃圾收集器 ZGC
查看>>
初识Python
查看>>
shell无限循环
查看>>
推荐.Net、C# 逆向反编译四大工具利器
查看>>
nginx 在ubuntu 上的启动,停止,重启
查看>>
安装xen和虚拟机以及解决其中出现的问题
查看>>
数据库常用授权和授权回收参数配置
查看>>
华为交换机组播配置
查看>>
数通手稿留档——Switch
查看>>
linux命令:kernel内核编译、装载模块管理modprobe/screen
查看>>
定期删除mysql的log文件的脚本
查看>>
Linux主机安全加固
查看>>
30分钟配置好-Puppet: 强大的中心化配置管理系统
查看>>
Oracle 10G R2 RAC 日常管理
查看>>
一些术语
查看>>
梭子鱼宣布新的云融合防火墙功能
查看>>
linux网络相关配置
查看>>