monkey大全!可直接运用在项目中的常规monkey命令

测试步骤

adb devices-----了解包名-----adb shell monkey -----p 包名 ----v 运行次数(多个参数的组合形成不同的用例以求最大的覆盖)-----当崩溃或无响应时分析monkey日志

常规monkey命令

(可直接在项目里使用)

adb shell monkey -p com.jiochat.jiochatapp --throttle 100 --ignore-crashes --ignore-timeouts --ignore-security-exceptions --ignore-native-crashes --monitor-native-crashes -v -v -v 1000000>d:\b.log

重现bug:monkey日志搜索关键词ANR exception,将之前的事件重新操作,尤其是seed值要一模一样,如monkey -p 包名 -v seed 0 500

日志分析:查看是否有crash等关键字,找上下文,进行简单分析将你所能定位的错误信息发给开发。

该工具用于进行压力测试。开发人员结合monkey 打印的日志 和系统打印的日志,修改测试中出现的问题。

Monkey 是SDK中附带的一个工具,所有的事件都是随机产生的,不带任何人的主观性。

Monkey程序由Android系统自带,使用Java语言写成,在Android文件系统中的存放路径是:/system/framework/monkey.jar。

图片

图片

Monkey.jar程序是由一个名为“monkey”的Shell脚本来启动执行,shell脚本在Android文件系统中的存放路径是:/system/bin/monkey;这样就可以通过在shell窗口中执行: adb shell monkey {+命令参数}来进行Monkey测试了。

图片

图片

运行monkey

运行方式有三种:

1、pc机上 adb shell monkey +参数 

2、 pc机输入adb shell进入到手机的安卓设备后再monkey+参数 

3、手机设备上安装一个模拟器手机执行monkey+参数(手机模拟器可以通过百度搜索或360手机助手搜android terminal,安装即可,可以在模拟器的命令行中输入mokey +参数)

monkey命令详解

图片

monkey -pcom.tencent.mtaexample -s 23 --throttle2000 --ignore-crashes --ignore-timeouts -v -v -v 100000>/data/local/tmp/log.txt 2>&1 &

1. -p后面接着的对应的包名,如果是整机测试,就不需要 -ppackage_name

2. -s后面是对应的种子数,好像就是操作步骤,根据她们测试的经验,一般种子数在23,同步她们测试的结果,一般种子的个数固定为23,和她们选择的操作步骤就是同步的。

3. --ignore-crashes --ignore-timeouts 这里是在monkey测试的过程中遇到carash或者timeout的情况时忽略掉,一般不设置时,出现carash或者timeout时,Monkey测试会终止。这里是防止Monkey测试终止。

4. -v 指的是Monkey测试时打印log级别。

5. 100000 这里是指点击的次数,根据测试的经验,对于单个应用程序这个次数设置在100000次就可以了;如果是整机,一般设置在500000次。

/data/local/tmp/log.txt测试的log记录在手机上/data/local/tmp/ 下面的log.txt里面,这个名字可以自己写。

6. 2>&1 固定的写法,这个也很重要,代表的意思是中间忽略的东东的日志一并输入到指定的文件中。

7. 最后单独的一个"&" 是一旦Monkey测试开始了,之后可以拔掉数据线,不会影响Monkey测试。

8. 测试所有模块 monkey -s 23 --ignore-crashes --ignore-timeouts -v-v -v 100000> /data/local/tmp/log.txt 2>&1 &

杀monkey进程

如果想中断运行中的monkey CTRL+C

adb shell ps | grep monkey 返回进程号

adb shell kill [刚才查到的进程号]

app包名查看

a.手机安装包名查看器'

b.aapt命令 aapt dump badging *.apk

c、源码下的AndroidManifest.xml文件查看

d.adb logcat抓取当前Android机运行的app的包名( I/ActivityManager(数字): Displayed 包名/类
名: +ms )

命令行输入 adb logcat >e:\bag.txt

手机操控app,ctrl+c停止

去e:\bag.txt这个文件下搜索关键字如Displayed ,一般都能找到

感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

 

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!有需要的小伙伴可以点击下方小卡片领取   

 

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

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

相关文章

固定翼无人机入门(二)

这里讲讲无人机的路径跟踪控制相关知识,路径跟踪需要制导率(平面)和控制器,在无人机中较为常用的是L1制导率,不过L1制导率是控制无人机在二维平面上的转向,此处还引入总能量控制,控制无人机的高…

PyTorch(六)优化模型参数

#c 目的 优化的目的 已经拥有了一个「模型」和「数据」,是时候通过「优化模型参数」来训练、验证和测试模型。 #d 迭代训练 训练模型是一个迭代过程;在每次迭代中,模型对输出做出猜测,计算其猜测的误差(损失&#x…

用MySQL+node+vue做一个学生信息管理系统(五):学生信息增删改的实现

先实现增加信息: post参数的获取:express中接受post请求参数需要借助第三方包 body-parser 下载npm install body-parser //引入body-parser模块 const bodyParser require(body-parser); //拦截所有请求,配置body-parser模块 //extended:false 方法…

视频太大怎么压缩变小?6款视频压缩软件免费版分享

视频太大怎么压缩得又小又清晰呢?无论是视频文件传输、视频文件存储,还是进行自媒体视频上传,都对视频文件的大小有一定的限制。高质量的视频文件往往伴随着文件占据大量存储空间,导致文件传输速度变慢。今天教大家6种视频压缩软件…

物理服务器架构和裸金属服务器架构的区别是?

物理服务器架构与裸金属服务器架构作为两种常见的服务器部署方式,各有其特点与优势。本文旨在通过对比两者的区别,并重点阐述裸金属服务器的优势,为学习者提供一份实用的学习指南。 一、物理服务器架构概述 物理服务器架构,顾名…

拥抱智能化,WMS系统让仓库管理精细化与人性化结合-亿发

在当今竞争激烈的市场环境中,仓库管理不再是简单的货物存储和流通,而是一个复杂而精细的管理系统。仓库管理系统(Warehouse Management System, WMS)作为现代仓库管理的核心技术,通过“有过程”的管理理念,…

GB/T22239-2019信息安全技术网络安全等级保护基本要求笔记

网络安全等级保护基本要求笔记 缩略语二级安全要求安全物理环境1、物理位置选择2、物理访问控制3、防盗窃和防破坏4、防雷击5、防火6、防水和防潮7、防静电8、温湿度控制9、电力供应10、电池防护 安全通信网络1、网络架构2、通信传输3、可信验证 安全区域边界1、边界防护2、访问…

真的假不了,假的真不了

大家好,我是瑶琴呀,拥有一头黑长直秀发的女程序员。 最近,17岁的中专生姜萍参加阿里巴巴 2024 年的全球数学竞赛,取得了 12 名的好成绩,一时间在网上沸腾不止。 从最开始的“数学天才”,到被质疑&#xff…

Markdown2Html全面使用教程:从入门到精通

文章目录 1. Markdown2Html简介1.1 项目地址与贡献方式1.2 功能特性概览1.3 自定义样式的支持1.4 多平台排版优化 2. 安装与配置2.1 使用npm安装2.2 配置个性化选项2.3 部署教程本地部署云服务部署静态网站托管 4.1 掘金的代码高亮与图片缩放4.2 知乎的标题样式与引用4.3 微信公…

问题记录:一个局部变量导致的内存泄露(cpp)

问题描述 最近在项目里面写了一个算法,居然有严重的内存泄露问题!!!为了解决这个问题,花了好几天时间,慢慢排除问题,终于解决了,在此记录一下。 阶段一: 刚开始发现问…

STM32开发工具STM32CubeMX 6.11.1版本在Windows系统上的下载与安装配置

目录 前言一、STM32CubeMX安装二、使用配置总结 前言 STM32CubeMX是使用STM32微控制器的开发人员不可或缺的工具。该软件配置实用程序由意法半导体精心设计,提供了一个强大的平台,可以轻松高效地配置和初始化STM32器件。在其核心,STM32CubeM…

宠物洗澡机缺水提醒功能如何实现

如今随着养宠物的人越来越多,宠物用品也越来越多,宠物洗澡机也为养宠物的人带来很大方便,在宠物洗澡机内部通常会加一个缺液提醒功能,那么宠物洗澡机缺水提醒功能如何实现,其实只需加一个光电液位传感器即可。 光电液…

实战whisper第三天:fast whisper 语音识别服务器部署,可远程访问,可商业化部署(全部代码和详细部署步骤)

Fast Whisper 是对 OpenAI 的 Whisper 模型的一个优化版本,它旨在提高音频转录和语音识别任务的速度和效率。Whisper 是一种强大的多语言和多任务语音模型,可以用于语音识别、语音翻译和语音分类等任务。 Fast Whisper 的原理 Fast Whisper 是在原始 Whisper 模型的基础上进…

springboot dynamic配置多数据源

pom.xml引入jar包 <dependency><groupId>com.baomidou</groupId><artifactId>dynamic-datasource-spring-boot-starter</artifactId><version>3.5.2</version> </dependency> application配置文件配置如下 需要主要必须配置…

动手RAG: ocr调研

对于rag应用来说&#xff0c;文档是第一步&#xff0c;对于部分扫描件的文件来讲&#xff0c;主要就需要OCR. OCR tesseractppocrmmocr OCR包含几类&#xff0c; 自然场景中的文字识别&#xff0c;文档中的文字识别pipeline: 文本检测&#xff0c;文本识别&#xff0c;文…

Android 内存原理详解以及优化(二)

上一篇讲了内存原理&#xff0c;如果还没看可以先看上一篇&#xff1a;Android 内存原理详解以及优化&#xff08;一&#xff09; 这一篇我总结一下我们经常遇到的内存优化问题&#xff1a; 1.内存抖动 自定义view的ondraw是会被频繁调用的&#xff0c;那在这个方法里面就不能频…

全网最简单的Java设计模式【一】设计模式的定义、分类及七大设计原则

引言 Java设计模式从入门到精通-设计模式的定义、设计模式分类及七大设计原则 设计模式简介 在软件开发中&#xff0c;设计模式是解决常见设计问题的最佳实践。它们为开发者提供了一种通用的解决方案&#xff0c;使得代码更加灵活、可复用和可维护。在Java编程语言中&#x…

Linux--V4L2应用程序开发(二)改变亮度

一、思路流程 创建一个新线程用来控制亮度&#xff0c;线程通过读取用户输入来增加或减少亮度值&#xff0c;并使用 ioctl 函数将新亮度值设置到视频设备。 二、代码 /*创建线程来控制亮度*/ pthread_t thread; pthread_create(&thread, NULL, thread_brightness_contrl…

C++利用常量来防止形参误修改

#include<iostream> using namespace std;void displayInfo(const int& num) {// 函数体内不能修改num的值cout << "num " << num << endl; }int main() {int myNumber 5;displayInfo(myNumber);// 传递myNumber的引用&#xff0c;但不…

Latex 绘图:Tikz 包

参考文献&#xff1a; TiKZ入门教程 - LaTeX工作室 (latexstudio.net)Latex-TiKZ绘制数学平面几何图教程_latex绘制几何图形-CSDN博客【TikZ 简单学习(上)&#xff1a;基础绘制】Latex下的绘图宏包-CSDN博客LaTeX—Tikz 宏包入门使用教程 - 知乎 (zhihu.com)Latex 实时编译 &a…