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

2024-08-22 20:08

本文主要是介绍monkey自动化测试(2)----日志分析,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

本篇文章主要是讲解如何对日志进行分析,需要学习基本命令行,和monkey的运行原理的小伙伴们请移步到:

monkey自动化测试(1)----命令行

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


2326194-c109e26d523f3459.png
monkey

1.log文件配置

首先对于report的日志命名需要有相应的规范,这里建议是将level 1的文件命名为verbose,将level 2的文件命名为error。前者主要是用来观看日志信息和事件分布信息,后者主要是用来观看error的信息,做进一步的bug分析。
当然,不同的开发者命名规则可能不一样,可以按照自己的习惯配置。

Codedescription
2>/sdcard/error.txtLevel 2日志保存到sdcard上的error.txt中
1>/sdcard/verbose.txtLevel 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日志文件做一个概要性解释

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

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


2326194-b3e49bbe4a3bb7aa.png
monkey运行结束

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

2.1 log.txt日志

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

2.2 verbose.txt运行日志

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


2326194-9945c69d4f2e65d2.png
verbose..txt

其中

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

2326194-98ce4f3c7e18818c.png
crash异常反馈

信息已经非常简洁了,可以直接拿来做相应分析
到这里,相应的monkey自动化测试的日志分析已经解析完毕,之后会对monkey的源码和自动分析的dat脚本。

这篇关于monkey自动化测试(2)----日志分析的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1097268

相关文章

Nginx设置连接超时并进行测试的方法步骤

《Nginx设置连接超时并进行测试的方法步骤》在高并发场景下,如果客户端与服务器的连接长时间未响应,会占用大量的系统资源,影响其他正常请求的处理效率,为了解决这个问题,可以通过设置Nginx的连接... 目录设置连接超时目的操作步骤测试连接超时测试方法:总结:设置连接超时目的设置客户端与服务器之间的连接

Springboot中分析SQL性能的两种方式详解

《Springboot中分析SQL性能的两种方式详解》文章介绍了SQL性能分析的两种方式:MyBatis-Plus性能分析插件和p6spy框架,MyBatis-Plus插件配置简单,适用于开发和测试环... 目录SQL性能分析的两种方式:功能介绍实现方式:实现步骤:SQL性能分析的两种方式:功能介绍记录

最长公共子序列问题的深度分析与Java实现方式

《最长公共子序列问题的深度分析与Java实现方式》本文详细介绍了最长公共子序列(LCS)问题,包括其概念、暴力解法、动态规划解法,并提供了Java代码实现,暴力解法虽然简单,但在大数据处理中效率较低,... 目录最长公共子序列问题概述问题理解与示例分析暴力解法思路与示例代码动态规划解法DP 表的构建与意义动

Spring Boot整合log4j2日志配置的详细教程

《SpringBoot整合log4j2日志配置的详细教程》:本文主要介绍SpringBoot项目中整合Log4j2日志框架的步骤和配置,包括常用日志框架的比较、配置参数介绍、Log4j2配置详解... 目录前言一、常用日志框架二、配置参数介绍1. 日志级别2. 输出形式3. 日志格式3.1 PatternL

10个Python自动化办公的脚本分享

《10个Python自动化办公的脚本分享》在日常办公中,我们常常会被繁琐、重复的任务占据大量时间,本文为大家分享了10个实用的Python自动化办公案例及源码,希望对大家有所帮助... 目录1. 批量处理 Excel 文件2. 自动发送邮件3. 批量重命名文件4. 数据清洗5. 生成 PPT6. 自动化测试

C#使用DeepSeek API实现自然语言处理,文本分类和情感分析

《C#使用DeepSeekAPI实现自然语言处理,文本分类和情感分析》在C#中使用DeepSeekAPI可以实现多种功能,例如自然语言处理、文本分类、情感分析等,本文主要为大家介绍了具体实现步骤,... 目录准备工作文本生成文本分类问答系统代码生成翻译功能文本摘要文本校对图像描述生成总结在C#中使用Deep

10个Python Excel自动化脚本分享

《10个PythonExcel自动化脚本分享》在数据处理和分析的过程中,Excel文件是我们日常工作中常见的格式,本文将分享10个实用的Excel自动化脚本,希望可以帮助大家更轻松地掌握这些技能... 目录1. Excel单元格批量填充2. 设置行高与列宽3. 根据条件删除行4. 创建新的Excel工作表5

开启mysql的binlog日志步骤详解

《开启mysql的binlog日志步骤详解》:本文主要介绍MySQL5.7版本中二进制日志(bin_log)的配置和使用,文中通过图文及代码介绍的非常详细,需要的朋友可以参考下... 目录1.查看是否开启bin_log2.数据库会把日志放进logs目录中3.查看log日志总结 mysql版本5.71.查看

MySQL分表自动化创建的实现方案

《MySQL分表自动化创建的实现方案》在数据库应用场景中,随着数据量的不断增长,单表存储数据可能会面临性能瓶颈,例如查询、插入、更新等操作的效率会逐渐降低,分表是一种有效的优化策略,它将数据分散存储在... 目录一、项目目的二、实现过程(一)mysql 事件调度器结合存储过程方式1. 开启事件调度器2. 创

Redis主从/哨兵机制原理分析

《Redis主从/哨兵机制原理分析》本文介绍了Redis的主从复制和哨兵机制,主从复制实现了数据的热备份和负载均衡,而哨兵机制可以监控Redis集群,实现自动故障转移,哨兵机制通过监控、下线、选举和故... 目录一、主从复制1.1 什么是主从复制1.2 主从复制的作用1.3 主从复制原理1.3.1 全量复制