Monkey日志分析

news2024/10/7 20:34:53

1. Monkey日志详解

Monkey日志由以下几部分组成:

  1. 测试命令信息

    随机种子seed、运行次数、可运行应用列表、各事件百分比。

  2.  App切换和Activity跳转

    可以看到切换到了哪个App,从哪个Activity跳转到了哪个Activity,如果发生了异常,就可以看出是在哪个App和Activity中发生的。

  3.  伪随机事件流

    各种随机事件。

  4.  异常信息

    应用崩溃、无响应等异常相应信息。

  5.  测试结果信息

    完成事件数、其他信息。

(1) 测试命令信息

包括随机种子、事件总数、允许测试包和使用的Activity、各事件百分比。

       

    

(1) App切换和Activity跳转

可以看到切换到了哪个App,从哪个Activity跳转到了哪个Activity,如果发生了异常,就可以看出是在哪个App和Activity中发生的。

注:在允许一次测试多个应用时,会看到多次App切换;只测试一个应用时,一般只看到一次App切换,除非应用异常后重启。

        

       

        

(2) 伪随机事件流

记录各种随机操作及中间的延迟时间,主要是以下几种操作:   

  • touch 触摸操作

  • motion 滑动操作

  •  trackball 曲线滑动操作

 

 pinch-zoom 缩放操作

  • rotation 旋转操作

 

(3) 异常信息

应用无响应、崩溃等异常信息

  • 应用无响应时信息:

    崩溃信息:

 

 

(4) 测试结果信息

完成事件数、其他信息              

  • 完成事件数:

     

  • 其他信息:

     

1. 从日志中发现并提交bug

使用Monkey进行测试结束后,我们关注的是应用在测试中是否出现崩溃或无响应这类问题。测试结果可以通过如下方法判断:

  1. 在日志中搜索“CRASH”,如果搜到,可以判断App在测试过程中发生过崩溃问题;

  2. 在日志中搜索“ANR”,如果搜到,可以判断App在测试过程中发生过无响应的问题;

    我们可以把这些关键字,连同其上下文,包括Java异常信息和其他相关信息一起提交。其中,Java异常信息主要有以下类型:

    算术异常类:ArithmeticExecption

    空指针异常类:NullPointerException

    类型强制转换异常:ClassCastException

    数组负下标异常:NegativeArrayException

    数组下标越界异常:ArrayIndexOutOfBoundsException

    违背安全原则异常:SecturityException

    文件已结束异常:EOFException

    文件未找到异常:FileNotFoundException

    字符串转换为数字异常:NumberFormatException

    操作数据库异常:SQLException

    输入输出异常:IOException

    违法访问错误:IllegalAccessError

    内存不足错误:OutOfMemoryError

    堆栈溢出错误:StackOverflowError

2. ANR异常和traces.txt文件

Monkey日志中ANR相关信息不够详细,当发现APP运行中存在ANR问题时,我们还需要使用adb pull命令从被测设备的/data/anr目录下导出名为traces.txt的对应log文件,一并交给开发人员排查问题。命令如下:

adb pull /data/anr/traces.txt D:\logs\logcat日志

3. adb logcat 查看Android系统日志

使用monkey进行测试时,还要注意logcat日志。这是Android系统日志,包含更详细的内容,可以帮助开发人员定位问题。如果要获取logcat日志,需要在执行monkey测试前开始记录logcat日志。完整步骤如下:

  1. adb logcat -c 清理现有日志

  2. adb logcat -v time > D:\logcat.log 开始记录日志

  3. 运行monkey程序  

    运行monkey程序结束后,可以把logcat日志文件logcat.log也提交给开发作为定位问题的参考。

4. 复现问题

如果需要复现问题,可以在日志中找到当时执行的Seed值,再构建monkey命令运行几次。构建命令时,seed值自定义,定义成与第一次运行相同。程序运行的初始界面也跟第一次运行相同。

后续回归问题也用同一个命令,seed值保持相同。 如果问题不易复现,需要多运行几次,或多运行一段时间。

5. 一次测试发现多个问题

monkey 执行时如果加了--ignore-crashes和--ignore-native-crashes,App出现崩溃退出后,还会自动重启并继续发送事件(否则monkey中断)。我们可以等monkey进程结束后,去日志里直接搜索CRASH。可能会看到多处问题。所以加这两个选项可以帮助我们在一次测试中发现多处崩溃问题。

monkey 执行时如果加了--ignore-timeouts,App出现无响应后还会继续发送事件;我们可以等monkey进程结束后,去日志里直接搜索ANR,可能会看到多处问题。所以加这个选项可以帮助我们在一次测试中发现多处无响应的问题。

上述三个选项都加,则可能在一次测试中发现多处CRASH或ANR问题。


以下是我收集到的比较好的学习教程资源,虽然不是什么很值钱的东西,如果你刚好需要,可以评论区,留言【777】直接拿走就好了

各位想获取资料的朋友请点赞 + 评论 + 收藏,三连!

三连之后我会在评论区挨个私信发给你们~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/795542.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

JVM详解(超详细)

目录 JVM 的简介 JVM 执行流程 JVM 运行时数据区 由五部分组成 JVM 的类加载机制 类加载的过程(五个) 双亲委派模型 类加载器 双亲委派模型的优点 JVM 中的垃圾回收策略 GC GC 中主要分成两个阶段 死亡对象的判断算法 引用计数算法 可达性分析算法 垃圾回收算…

Mac m1 下eclipse下载及jdk环境变量配置

一、安装eclipse 1、下载eclipse Eclipse downloads - Select a mirror | The Eclipse Foundation 此版本为m1芯片适用版本 2、下载后下一步安装即可 安装成功后,可以看到图标: 二、安装jdk 1、下载jdk 下载此版本即可,下载完成之后一直…

Linux系统中的SQL语句

本节主要学习,SQL语句的语句类型,数据库操作,数据表操作,和数据操作等。 文章目录 一、SQL语句类型 DDL DML DCL DQL 二、数据库操作 1.查看 2.创建 默认字符集 指定字符集 3.进入 4.删除 5.更改 库名称 字符集 6…

(十三)定时任务

以下内容来自 尚硅谷,写这一系列的文章,主要是为了方便后续自己的查看,不用带着个PDF找来找去的,太麻烦! 第 13 章 定时任务 13.1 什么是定时任务 1、InfluxDB任务是一个定时执行的FLUX脚本,它先查询数据…

小程序创建

1,下载HBuilder X ;(3.8.7) HBuilderX-高效极客技巧 2,下载模板(不选云服务的); 3,运行-运行到小程序模拟器; 4,安装小程序开发工具; 5,选择稳定版-windows64版&…

骆驼祥子思维导图

《骆驼祥子》简单介绍 《骆驼祥子》小说,以20世纪20年代的旧北京为背景。祥子所处的时代是北洋军阀统治的时代。今天我们就用ProcessOn 思维导图 来给大家解析这本名著。所有文章中的思维导图都可以到ProcessOn 模板社区获得。 1936年,老舍的一位山东大…

【雕爷学编程】Arduino动手做(93)--- 0.96寸OLED液晶屏模块5

37款传感器与执行器的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止这37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的&am…

Wonderful Sql

Wonderful Sql 一. 初识数据库 练习题 1.1 编写一条 CREATE TABLE 语句,用来创建一个包含表 1-A 中所列各项的表 Addressbook (地址簿),并为 regist_no (注册编号)列设置主键约束 表1-A 表 Addressbook…

LeetCode64.Minimum-Path-Sum<最小路径和>

题目: 思路: 一开始使用的深度优先搜索,结果果然是超时了.好吧 是需要动态规划的. 和上次有一题有点像.(12条消息) LeetCode62.Unique-Paths<不同路径>_Eminste的博客-CSDN博客 将边缘初始化为数组原本的数.然后每次只能向下或…

#P1108. [NOIP2008提高组] 双栈排序

题目描述 Tom 最近在研究一个有趣的排序问题。如图所示,通过 22 个栈 S_1S1​ 和 S_2S2​,Tom 希望借助以下 44 种操作实现将输入序列升序排序。 操作 aa:将第一个元素压入栈 S_1S1​。 操作 bb:将 S_1S1​ 栈顶元素弹出至输出序…

13.5.3 【Linux】PAM 模块设置语法

PAM 借由一个与程序相同文件名的配置文件来进行一连串的认证分析需求。我们同样以passwd 这个指令的调用 PAM 来说明好了。 当你执行 passwd 后,这支程序调用 PAM 的流程是: 1. 使用者开始执行 /usr/bin/passwd 这支程序,并输入密码&#xf…

windos 服务器设置指定ip访问指定端口,其他ip不能访问

需求:设置指定ip访问指定端口,其他ip不能访问 一,禁止所有ip访问 需要打开IP安全策略 或者winR 输入secpol.msc 1.先创建一个ip安全策略 2.点击添加,不使用添加向导,建一个安全策略 继续点添加 二,放开需…

01 Excel常用高频快捷键汇总

目录 一、简介二、快捷键介绍2.1 常用基本快捷键1 复制:CtrlC2 粘贴:CtrlV3 剪切:CtrlX4 撤销:CtrlZ5 全选:CtrlA 2.2 常用高级快捷键1 单元格内强制换行:AltEnter2 批量输入相同的内容:CtrlEnt…

448.找到所有数组中消失的数字

448.找到所有数组中消失的数字 class Solution {public List<Integer> findDisappearedNumbers(int[] nums) {int[] temp new int[nums.length1];for (int i 0; i < nums.length; i) {temp[nums[i]];}ArrayList<Integer> list new ArrayList<>();for (…

【雕爷学编程】Arduino动手做(93)--- 0.96寸OLED液晶屏模块4

37款传感器与执行器的提法&#xff0c;在网络上广泛流传&#xff0c;其实Arduino能够兼容的传感器模块肯定是不止这37种的。鉴于本人手头积累了一些传感器和执行器模块&#xff0c;依照实践出真知&#xff08;一定要动手做&#xff09;的理念&#xff0c;以学习和交流为目的&am…

Linux——设备模型

目录 本章目标 一、设备模型基础 二、总线、设备和驱动 --------------------------------------------------------------------------------------------------------------------------------- 工作两周了&#xff0c;真吃不消啊&#xff0c;虽然年轻但是早8.30晚10点还…

JAVA面试总结-Redis篇章(四)——双写一致性

JAVA面试总结-Redis篇章&#xff08;四&#xff09;——双写一致性 问&#xff1a;redis 做为缓存&#xff0c;mysql的数据如何与redis进行同步呢&#xff1f;第一种情况&#xff0c;如果你的项目一致性要求高的话 采用以下逻辑我们应该先删除缓存&#xff0c;再修改数据库&…

【C++】STL——string的模拟实现、常用构造函数、迭代器、运算符重载、扩容函数、增删查改

文章目录 1.模拟实现string1.1构造函数1.2迭代器1.3运算符重载1.4扩容函数1.5增删查改 1.模拟实现string string使用文章 1.1构造函数 这里我们实现常用的第四个string(const char* s)和析构函数 class string { public://初始化列表赋值//string(const char* str "\0…

如何搭建一个成功的书店小程序

随着互联网的快速发展&#xff0c;传统实体书店面临着客流量下降的困境。为了适应市场需求&#xff0c;书店行业转型变得尤为重要。而制作书店小程序商城则成为了一种必备的转型方式。下面将详细介绍如何利用专业的小程序商城制作平台&#xff0c;手把手制作书店小程序商城。 首…

Docker 基础知识解析:容器与虚拟化的区别与优势

&#x1f337;&#x1f341; 博主猫头虎 带您 Go to New World.✨&#x1f341; &#x1f984; 博客首页——猫头虎的博客&#x1f390; &#x1f433;《面试题大全专栏》 文章图文并茂&#x1f995;生动形象&#x1f996;简单易学&#xff01;欢迎大家来踩踩~&#x1f33a; &a…