App压力稳定性测试之Monkey
一、Monkey简介
Android系统自带monkey程序,模拟用户触摸屏幕、滑动Trackball、按键等操作来对设备上的程序进行压力测试,检测程序多久的时间会发生异常。
Monkey的使用是在产品稳定了,没有特别多的Bug时候。用monkey去测试待测应用的稳定性、健壮性(是否会发生闪退、崩溃),手机出厂前的整机测试。Monkey犹如其猴子的译名,就是杂乱无章的乱点,通过指定执行点击次数,不断的点击安卓系统,或者指定的App,给系统产生压力。
注意:在使用Monkey之前,需要利用adb将PC端与安卓设备连接。
二、monkey常见命令
1.1、调出说明手册
命令:adb shell monkey –help或者-h
这个命令可以查看monkey使用的说明,如下:
1.2、monkey基本命令格式:adb shell monkey {+命令参数} [执行事件次数]
例如:adb shell monkey -v 100
命令参数例如:-p,-v,-c 事件:一个点击、一个回退,等就是一个事件
1.3、命令参数
注意:所有的参数都需要放在monkey和设置的事件次数之间,参数的顺序可以调整;若带了-p ,-p最好放在monkey之后。
例:adb shell monkey -p <包名> --throttle 1000 --ignore-crashes --ignore-timeouts --ignore-security-exceptions --ignore-native-crashes --monitor-native-crashes -v -v -v -s 300 500
1.3.1、打印日志等级
-v: 用于指定反馈信息级别(信息级别就是日志的详细程度)。
总共分3个级别;
一级:-v //默认级别,仅提供启动、测试完成和最终结果等少量信息
二级:-v –v //提供较为详细的日志,包括每个发送到Activity的事件信息
三级:-v -v -v //提供最详细的日志,包括了测试中选中/未选中的Activity信息
例如:adb shell monkey -v -v -v 100
1.3.2、指定测试App
-p <App包名> :增加App的包名时,可以只针对该App进行压力测试;
包名可同时添加多个,同时对多个App测试;
不加"-p <App包名>"时,则对安卓系统进行测试。
例:1)对一个App测试
adb shell monkey -p com.tecent mobileqq -v -v -v 300
2)对两个App进行测试
adb shell monkey -p com.lemon.lemon -p com.tecent mobileqq -v -v -v 300
1.3.3、seed值
-s 用于指定随机数生成器的seed值;
如果前后两次使用monkey时seed值相同,测两次monkey测试所产生的事件序列也相同。用于问题重现;
seed值相当于执行顺序,可以是300、400等。但是遇到问题,需要再次使用monkey复现问题时,seed必须相同。可以直接运行上一次的命令。
格式:adb shell monkey -p <包名> -v -v -v -s <seed值> [执行事件次数]
例:adb shell monkey -p com.tecent mobileqq -v -v -v -s 400 1000
【400:seed的值,1000:执行事件次数】 【复现同一问题时,将此命令重新输一遍】
1.3.4、操作时延
--throttle <毫秒> 用于指定用户操作(即事件)间的时延,单位是毫秒。
例如:时延为1秒,在执行点击事件后等1秒在进行回退事件。
格式:adb shell monkey -v -v -v -p <包名> -s <seed值> --throttle 1000 [执行事件次数]
例:adb shell monkey -v -v -v -p com.tecent mobileqq -s 300 --throttle 1000 500 【--throttle 1000指时间间隔为一秒】
1.3.5、忽略超时和崩溃
monkey测试的过程中遇到crash(崩溃)或者timeout(超时)的情况时,会停止测试。如果想在遇到crash或者timeout时继续运行指令,需要加--ignore-crashes --ignore-timeouts将crash和timeout忽略掉。
格式:adb shell monkey -p <包名> --throttle 1000 --ignore-crashes --ignore-timeouts -v -v -v -s 300 500
三、日志导出
Monkey执行过程中产生异常时,需要把日志导出,将异常信息找出。
1、直接将日志打印至PC端
命令:adb shell monkey -p <包名> -v -v -v [执行事件次数] > <PC端存放目录>
可以在执行monkey过程中,直接将日志存放至PC端。
例:adb shell monkey -p <包名> -v -v -v 200 D:\log.txt
2、执行完monkey之后导出日志
命令:adb logcat –v time > D:\ log.txt 拉取的日志自带时间
3、日志定位
当日志生成后,我们需要进入日志当中查看是否有APP崩溃记录或者无响应记录。
查找关键字:
A、崩溃记录查找”CRASH”;
B、无响应记录查找”ANR”;
C、内存泄露问题搜索"GC"(需进一步分析);
D、异常问题搜索“Exception”;
App压力稳定性测试之Monkey的更多相关文章
- APP压力稳定性测试之monkey入门
1.什么是monkey? Monkey是一个命令行工具,使用安卓调试桥(adb)来运行它,模拟用户触摸屏幕.滑动Trackball.按键等随机事件流来对设备上的程序进行压力测试,检测程序多久的时间会发 ...
- APP压力稳定性测试之monkey环境搭建
一.搭建adb环境: 需要的安装软件包可以使用我分享的,链接:https://pan.baidu.com/s/13DThDtc0GALabTakshcLfg 密码:0kuo:也可以自己百度下载 1)下 ...
- [Android 测试] 压力稳定性测试之: Monkey 详解分析脚本(转载)
一.什么是稳定性测试? 通过随机点击屏幕一段时间,看看app会不会奔溃,能不能维持正常运行. 二. Money是什么? Monkey测试是Android平台自动化测试的一种手段,通过Monkey程序模 ...
- android app 压力测试工具-monkey tool
一.什么是Monkey? Monkey测试是Android自动化测试的一种手段,Monkey测试本身非常简单,就是模拟用户的按键输入,触摸屏输入,手势输入等,看设备多长时间会出异常. Monkey是A ...
- Android App 压力测试方法(Monkey)
一.为什么要开展压力测试 a.提高产品的稳定性:b.提高产品的留存率 二.什么时候开展压力测试 a.首轮功能测试通过后:b.下班后的夜间进行 三.7个基础知识(理论部分) 3.1 手动测试场景与自动测 ...
- APP压力稳定性测试
转自:https://www.cnblogs.com/nuonuozhou/p/8643735.html 1.android系统自带monkey程序,模拟用户触摸屏幕,滑动track ball,按键等 ...
- Android App压力测试方法(Monkey)
一.为什么要开展压力测试 a.提高产品的稳定性:b.提高产品的留存率 二.什么时候开展压力测试 a.首轮功能测试通过后:b.下班后的夜间进行 三.7个基础知识(理论部分) 3.1 手动测试场景与自动测 ...
- 安卓手机APP压力monkey测试
一.Monkey概述 Monkey是Android中的一个命令行工具,可以运行在模拟器里或实际设备中.它向系统发送伪随机的用户事件流(如按键输入.触摸屏输入.手势输入等),实现对正在开发的应用程序进行 ...
- Android APP压力测试(一)之Monkey工具介绍
Android APP压力测试(一) 之Monkey工具介绍 前言 本文主要介绍Monkey工具.Monkey测试是Android平台自动化测试的一种手段,通过Monkey程序模拟用户触摸屏幕.滑动. ...
随机推荐
- KEMET新型电容器推动了电动汽车技术的发展
前言:KEMET成立于1919年,总部位于佛罗里达州劳德代尔堡,是全球领先的高端电子组件供应商,KEMET为客户提供业内最广泛的电容器技术选择,以及不断扩大的机电设备,电磁兼容性解决方案和超级电容器. ...
- 关于HTTP那些事
写这篇文章的原因 记录前端性能优化用到的关键概念 简化大家对HTTP的学习 大家或许面试的时候可以用得到哦 HTTP是什么 Web的应用层协议(超文本传输协议HyperText Transfer Pr ...
- 使用HBuilder开发移动APP
前言 HBuilder是DCloud(数字天堂)推出的一款支持HTML5的Web开发IDE.HBuilder的编写用到了Java.C.Web和Ruby.HBuilder本身主体是由Java编写,它基于 ...
- 用vue开发一个公众号商城SPA——1.前期准备和写页面
使用vue开发公众号商城 第1篇记录项目准备.搭建,写页面遇到第问题以及总结,持续更新 公司最近接了个商城项目,包括PC端商城.微信公众号网页商城.后台管理系统.这几天在做微信公众号商城,又新接触了很 ...
- 使用tf serving-gpu时,没有安装NVIDIA时报的错?
当部署tf serving-gpu时,出现上述的错误,有两种情况: 1.服务器中已经安装NVIDIA驱动了,只是版本比较低了,需要升级一下比较新的nvidia驱动: 2.就是服务器中没有安装NVIDI ...
- centos7搭建ceph集群
一.服务器规划 主机名 主机IP 磁盘配比 角色 node1 public-ip:10.0.0.130cluster-ip:192.168.2.130 sda,sdb,sdcsda是系统盘,另外两块数 ...
- 进阶之路 | 奇妙的Thread之旅
前言 本文已经收录到我的Github个人博客,欢迎大佬们光临寒舍: 我的GIthub博客 需要已经具备的知识: Thread的基本概念及使用 AsyncTask的基本概念及使用 学习清单: 线程概述 ...
- iOS中使用block进行网络请求回调
iOS中使用block进行网络请求回调 HttpRequest.h // // HttpRequest.h // UseBlockCallBack // // Created by Michael o ...
- linux最常用命令记录(一)
一.vim个人最常用设置: vim .vimrc 然后添加以下内容 set nu set tabstop=4 set encoding=utf-8 二.查看磁盘空间相关命令 1.df -h 查看硬 ...
- Simulink仿真入门到精通(十五) Simulink在流程工业中的仿真应用
15.1 工业乙醇生产与计算机仿真 乙醇作为可再生清洁能源不仅可以代替四乙基铅作为汽油的防爆剂,还可以制造汽油醇.这一巨大的潜在需求促使人们去寻找提高乙醇工业生产率的途径,使人们着手于发酵工程的研究. ...