9、app稳定性测试之monkey工具使用

news2024/11/18 14:44:19

简介

方法:利用Monkey工具,选择某些场景做持续反复操作,以衡量系统的稳定性
工具: monkey 友盟埋点 日志分析工具 系统监控工具GT
场景:
    * 随机测试 可以用monkey模拟
    * 多个运行中app切换测试;
    * 各种事件打扰,如插拔数据线、电话打扰、收发短信、切换网络、浏览网络、使用蓝牙传送/接收数据、相机等;

什么是Monkey

Monkey测试,就像一只猴子,乱敲键盘在测试。通过Monkey程序模拟用户触摸屏幕、滑动、按键等操作来对设备上的程序进行压力测试,检测程序多久的时间会发生异常(crash).

Monkey作用

1. Monkey 主要用于Android 的压力/稳定性测试的工具,测试APP是否会crash
2. 根据一个指定的命令脚本模拟按键,但是不支持条件判断和读取待测界面信息执行验证操作
3. 什么时候运行monkey测试?
    1. app打包转测试功能测试的同时跑monkey测试;
    2. 当界面和参数有修改时可以运行一次;
4. monkey测试时间 一般进行8个小时

Monkey命令如何启动
adb shell monkey -p com.xyy.vwill --throttle 100 -s 10 10000 -v  -v  -v > d:\vwill.log

 

Monkey命令参数

-p 用此参数指定一个或多个包。指定后只允许系统启动指定的app。不指定包则默认允许系统启动设备中的所有app
 -v 用亍指定反馈信息级别(信息级别就是日志的详细程度),总共分3个级别:
    Level 0  :  adb shell monkey -p com.xyy.vwill -v 100
    缺省值,仅提供启动提示、测试完成和最终结果等少量信息   
    Level 1  :  adb shell monkey -p com.xyy.vwill -v  -v 100
    提供较为详细的日志,包括每个发送到Activity的事件信息 app的归定的activity
    Level 2  :  adb shell monkey -p com.xyy.vwill -v  -v  -v 100
    最详细的日志,包括了测试中选中/未选中的Activity信息  app的所有activity

 -s(随机数种子) 用亍指定伪随机数生成器的seed值.每次操作按照一定的先后顺序所组成的一系列操作,即一个序列.每次执行完Monkey之后,从输出里可以看到当前的seed值,只要通过-s参数指定相同的 seed,就可以重复刚才的操作

4. 事件类型
* pct-touch <percent>:指定触摸事件的百分比。
* pct-motion <percent>:指定滑动事件的百分比。
* pct-trackball <percent>:指定轨迹球事件的百分比。
* pct-nav <percent>:指定导航事件中,up、down、left、right 等事件的百分比。
* pct-majornav <percent>:指定导航事件中,back、menu 等事件的百分比。
* pct-syskeys <percent>:指定系统按键的百分比,包括 HOME、Back、音量等。
* pct-appswitch <percent>:指定 Activity 之间切换的比例。
* pct-anyevent <percent>:指定任意事件的百分比。
* 默认情况下,如果不设置,会是--pct-anyevent为百分之百,也就是纯随机事件。如果通过其他的参数配置了之后,如果相加的百分比不为百分百,余下的百分比部分也会生成随机事件(-pct-anyevent 0,表示100%,输入20,表示20%)

 --throttle
在事件之间插入固定延迟。通过这个选项可以减缓Monkey的执行速度。
如果不指定该选项,Monkey将不会被延迟,事件将尽可能快地被产成。单位是毫秒
 --monitor-native-crashes : 监视并报告Android系统中本地代码的崩溃事件。
 --ignore-crashes:该参数用于指定应用程序出现崩溃时,monkey是否继续运行下去。如果加了该参数那么monkey会继续运行下去直到计数完成
 --ignore-timeouts: 忽略超时,app运行中如果超时可能会报错ANR
 --ignore-security-exception:该参数用于软件出现错误时,例如证书错误,网络错误等。Monkey是否继续运行直到计数完成
 --kill-process-after-error:当应用程序发生错误时,应用程序停止运行并保持当前状态

 monkey日志分析

1. 正常情况:如果Monkey测试顺利执行完成,在log的最后,会打印出当前执行事件的次数和所花费的时间。 Monkey finished 代表执行完成
2. 异常情况 :
程序无响应的问题: 在日志中搜索 “ANR”
崩溃问题:在日志中搜索 “Exception”(如果出现空指针,NullPointerException)肯定是有bug
--理论上来说,Monkey所有的Crash都需要在发布前修复掉

查找gt文件

1. 查找gt文件地址: find -name "test"
./mnt/shell/emulated/0/GT/GW/com.xyy.vwill/1.0/test
./data/media/0/GT/GW/com.xyy.vwill/1.0/test
2. 进入查询保存的设备文件
cd ./data/media/0/GT/GW/com.xyy.vwill/1.0/test
3. 将结果保存到本地
adb pull /data/media/0/GT/GW/com.xyy.vwill/1.0/ D:\GT
adb pull ./mnt/shell/emulated/0/GT/GW/com.xyy.vwill/1.0/vwill.log D:\GT

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

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

相关文章

软件测试之冒烟测试须知

冒烟测试的介入时间? 开发编码完成&#xff0c;自测通过以后为最佳介入时间。 如果开发无自测直接提交&#xff0c;一般冒烟测试通过率会很低【除非你遇到的是大内高手】 什么需求需要做冒烟测试? 理论上&#xff0c;所有的需求均可以做冒烟测试。 冒烟测试需要做几轮? 一轮…

分享会上狂吹MySQL的4大索引结构,没想到大家的鉴赏能力如此的~~~~

索引&#xff08;index&#xff09;是帮助MySQL高效获取数据的数据结构(有序)。在数据之外&#xff0c;数据库系统还维护着满足 特定查找算法的数据结构&#xff0c;这些数据结构以某种方式引用&#xff08;指向&#xff09;数据&#xff0c; 这样就可以在这些数据结构 上实现高…

企业需要做哪些准备,来落地商业智能 BI 系统

随着新一代信息化、数字化技术的应用&#xff0c;引发了新一轮的科技革命&#xff0c;现代化社会和数字化的联系越来越紧密&#xff0c;数据也变成继土地、劳动力、资本、技术之后的第五大生产要素&#xff0c;这一切都表明世界已经找准未来方向&#xff0c;前沿科技也与落地并…

中国电子学会2022年09月份青少年软件编程Scratch图形化等级考试试卷四级真题(含答案)

2022-09 Scratch四级真题 分数&#xff1a;100 题数&#xff1a;29 测试时长&#xff1a;60min 一、单选题(共15题&#xff0c;共30分) 1.运行下列程序&#xff0c;说法正确的是&#xff1f;&#xff08;D&#xff09; A.列表中的数字全部小于11 B.列表的长度为10 C.变量…

项目管理:甘特图的作用是什么?

在我们工作和学习中&#xff0c;有一个提高工作效率&#xff0c;简单又实用的神器——甘特图。 甘特图以表格进度条&#xff0c;展示任务列表和时间表示出项目的持续时间及进度。并根据实际执行时间和工期对计划进行动态调整的进度控制方法。 甘特图将各个任务的完成情况在时间…

论Unity_InputSystem如何使用(三)

PlayerInput InputSystem提供专门用来处理玩家输入的组件&#xff0c;通过关联配置输入文件&#xff0c;可以不需要编写设备输入的相关逻辑&#xff0c;专注于编写输入触发后的逻辑。 如何添加 创建一个Cube&#xff0c;点击Add Component&#xff0c;搜索Player Input即可添…

【C语言 数据机构】时间复杂度与空间复杂度

文章目录时间复杂度空间复杂度时间复杂度 判断一个算法所编程序运行时间的多少&#xff0c;并不是将程序编写出来&#xff0c;通过在计算机上运行所消耗的时间来度量。原因很简单&#xff0c;一方面&#xff0c;解决一个问题的算法可能有很多种&#xff0c;一一实现的工作量无疑…

cocoapods安装失败到成功的记录贴

mac系统版本&#xff1a;10.15.5 (19F101) 最优解安装顺序&#xff1a;Xcode > HomeBrew > RVM > Ruby > CocoaPods 1. 安装方案1(百度常用法&#xff09; 1.1 更新gems和换国产源&#xff1a; RubyGems 镜像 - Ruby Chinahttps://gems.ruby-china.co…

使用VBA获取电脑MAC地址

实例需求&#xff1a;如何使用VBA读取电脑的MAC地址&#xff0c;包含有线网卡和无线网卡。 这个需求看似有些无厘头&#xff0c;为嘛要用VBA来读取MAC地址&#xff0c;存在的就是合理的。例如使用MAC地址和其他硬件信息可以生成电脑的唯一识别号&#xff0c;用于软件注册和实现…

Vue Node

Vue配置代理服务器 一、运行后台服务 启动后台Node服务器&#xff0c;运行后台程序&#xff0c;学习资料node代码&#xff0c;服务5000开启 FeHelper - Awesome 二、Ajax请求 xhr 【不常用】Windows 内部 new XMLHttpRequest()xhr.open() xhr.send()内部公司封装xhr开源封装…

力扣 2325. 解密消息

题目 给你字符串 key 和 message &#xff0c;分别表示一个加密密钥和一段加密消息。解密 message 的步骤如下&#xff1a; 使用 key 中 26 个英文小写字母第一次出现的顺序作为替换表中的字母 顺序 。 将替换表与普通英文字母表对齐&#xff0c;形成对照表。 按照对照表 替换…

OAuth2 01

目录 1.什么是OAuth 2.OAuth2中的角色 3.认证流程 4.生活中的OAuth2思维 5.令牌的特点 6.OAuth2的授权方式 6.1 OAuth2授权码 6.2 隐藏方式 6.3 密码方式 6.4 凭证方式 1.什么是OAuth2 1.OAuth2.0介绍 OAuth&#xff08;Open Authorization&#xff09;是一个关于授权&…

Android 抓包相关 SSL相关

https无法明文抓包 Android P版本开始强制App使用Https协议&#xff0c;否则访问崩溃如下所示错误&#xff1a; java.lang.ClassCastException: com.android.okhttp.internal.huc.HttpURLConnectionImpl cannot be cast to javax.net.ssl.HttpsURLConnection可参阅&#xff…

C 语言零基础入门教程(二十三)

C 可变参数 有时&#xff0c;您可能会碰到这样的情况&#xff0c;您希望函数带有可变数量的参数&#xff0c;而不是预定义数量的参数。C 语言为这种情况提供了一个解决方案&#xff0c;它允许您定义一个函数&#xff0c;能根据具体的需求接受可变数量的参数。下面的实例演示了…

Centos8中安装配置php

一、问题描述Centos8中我们在使用Apache部署配置网站的时候&#xff0c;发现Apache服务已经正常启动且网站也配置完成到Apache主目录中&#xff0c;但是访问时网站却不能正常运行【即&#xff1a;只能够以列表的方式列出所有网站的资源文件&#xff0c;而不是以网页的形式展现】…

关于荧光素76863-28-0,FITC-5-thiosemicarbazide,荧光素-5-氨基硫脲 相关知识分享

荧光素-5-氨基硫脲&#xff0c;Fluorescein-5-thiosemicarbazide&#xff0c;FITC-5-thiosemicarbazide荧光素-5-氨基硫脲是一种含胺的荧光探针&#xff0c;可用于标记糖和蛋白质羰基衍生物Product specifications&#xff1a;1.CAS No&#xff1a;76863-28-02.Molecular formu…

超越OCR的富文档内容解析神器LayoutParser

论文题目&#xff1a;《A unified toolkit for Deep Learning Based Document Image Analysis》 论文链接&#xff1a;https://arxiv.org/abs/2103.15348 论文官方网站&#xff1a;https://layout-parser.github.io/ 论文开源项目&#xff1a;https://github.com/Layout-Par…

Ubuntu 18.04安装配置MySQL数据库

文章目录1. 安装MySQL数据库2. 配置MySQL数据库3. 远程访问设置4. Navicat连接MySQL数据库1. 安装MySQL数据库 这里可以通过包管理工具apt安装MySQL数据库&#xff0c;在ubuntu18.04下mysql版本默认为5.7。 安装命令如下&#xff1a; sudo apt-get install mysql-server安装…

【Echarts雪花宝典特殊示例100+】 目录

目前已发表2篇示例文章vueecharts系列教程旨在为开发者提供简单快捷的代码示例&#xff0c;复制即可用。在每一个示例中&#xff0c;解释相应的API知识点&#xff0c;做到简易实现&#xff0c;轻松学会。 通常一个Echarts图表通常由title(标题)、legend(图例)、grid&#xff0…

ESP-IDF:插入排序和希尔排序测试

代码&#xff1a; /插入排序和希尔排序测试/ void printArray14(int arr[], int len) { for (int i 0; i < len; i) { cout << arr[i] << " "; } cout << endl; } void insertSort(int arr[], int start, int end) { // 无序插入有序队列&am…