Android App 压力测试方法(Monkey)
一.为什么要开展压力测试
a.提高产品的稳定性;b.提高产品的留存率
二.什么时候开展压力测试
a.首轮功能测试通过后;b.下班后的夜间进行
三.7个基础知识(理论部分)
3.1 手动测试场景与自动测试场景

3.2 Monkey测试工具介绍
Monkey是发送伪随机用户事件的工具;Monkey在手机系统里;Monkey需要借助ADB使用;

3.3 MonkeyScript测试命令集合介绍


3.4 异常测试结果分析

四.6个实践小案例
4.1 一次Android App的压测实践
需要准备的环境:1.Android SDK环境;2.python环境
压测过程:Step1.
Step2.
Step3.
Step4.
Step5.
Step6.
4.2 Monkey高级参数——throttle实践

4.3 Monkey高级参数——seed实践
每一个seed值对应一个操作序列,seed值相同,操作序列就相同,最终的结果也是相同的,设定seed值可以用来复现bug

4.4 Monkey高级参数——触摸事件实践

加 -v 可以看到每次事件的详情
4.5 Monkey高级参数——其他事件实践





4.6 crash异常测试结果析取

4.7 anr异常测试结果析取

4.9 MonkeyScript常用命令介绍
其中,<scriptfile>是脚本文件;
一般只需要关注标红的3个参数就可以了;x,y坐标点可以通过uiautomatorviewer获取;



4.10 MonkeyScript实践
实现上述流程的MonkeyScript脚本如下:

前4行的数据原文照抄就可以了
,由于目前相关的资料很少,具体的含义不必深究。
这两条命令完成“点击”的操作;
如图,坐标(100,100)通过uiautomatorviewer获取;
4.11 MonkeyScript实践问题解决
遇到的问题:脚本执行后,调用的不是被测试app
问题出在第一行LaunchActivity这一行语句上,这一行语句没有生效!

具体原因是,测试app的工程文件内缺少一个属性值!如果缺少这一个属性值的话,app是不允许被外部调用的,也就是说通过命令行的方式是无法调用app的!

所以,在执行monkeyscript脚本时,要确认的几个点:
A.被测app试被允许外部调用的!
B.
通过adb logcat获得的activity名需要和package名合在一起作为第二个参数!
C.因为执行monkeyscript脚本没有调试功能,出现问题需要自己查找,所以在写monkeyscript脚本时一定要更加注意,特别是标点符号(一定是英文下的半角符号)!
4.12 MonkeyRunner常用API介绍
monkeyscript最大的弊端是在跑自动化脚本的时候不能截屏,而MonkeyRunner能做到这一点


MonkeyRunner的脚本用Python实现,如下图:

执行.py文件的方式如下图:用 monkeyRunner .py 文件的形式










4.13 MonkeyRunner实践
目标:实现在搜索框中输入查询词,并截图
MonkeyRunner的实现脚本如下图:


4.12 MonkeyRunner补充说明
MonkeyRunner只能实现功能性的自动化过程,如果想让MonkeyRunner执行多次的话,可以通过python脚本来实现,也就是说用python来实现多线程、
循环操作等来执行脚本,可以帮助我们完成重复的操作过程!
以上简单介绍了用Monkey做Android App的压力测试,希望对初学者有所帮助。
Android App 压力测试方法(Monkey)的更多相关文章
- Android App压力测试方法(Monkey)
一.为什么要开展压力测试 a.提高产品的稳定性:b.提高产品的留存率 二.什么时候开展压力测试 a.首轮功能测试通过后:b.下班后的夜间进行 三.7个基础知识(理论部分) 3.1 手动测试场景与自动测 ...
- Android APP压力测试-Monkey
压力测试-Monkey学习 Monkey测试特点 什么是Monkey test? 如其名,像猴子一样,虽然什么都不懂,但是可以乱点一通,可以理解为压力测试.在规定的时间或次数范围内做任何随机的操作,随 ...
- Android APP压力测试(三)之Monkey日志自动分析脚本
Android APP压力测试(三) 之Monkey日志自动分析脚本 前言 上次说要分享Monkey日志的分析脚本,这次贴出来分享一下,废话不多说,请看正文. [目录] 1.Monkey日志分析脚本 ...
- Android APP压力测试(二)之Monkey信息自动收集脚本
Android APP压力测试(二) 之Monkey信息自动收集脚本 前言: 上一篇Monkey介绍基本搬抄官方介绍,主要是为了自己查阅方便.本文重点介绍我在进行Monkey时如何自动收集相关信息 ...
- Android APP压力测试(一)之Monkey工具介绍
Android APP压力测试(一) 之Monkey工具介绍 前言 本文主要介绍Monkey工具.Monkey测试是Android平台自动化测试的一种手段,通过Monkey程序模拟用户触摸屏幕.滑动. ...
- Android App 压力测试 monkeyrunner
Android App 压力测试 第一部分 背景 1. 为什么要开展压力测试? 2. 什么时候开展压力测试?第二部分 理论 1. 手工测试场景 2. 自动测试创建 3. Monkey工具 4. ADB ...
- android 自动化压力测试-monkey 1 实践
Monkey是Android中的一个命令行工具,可以运行在模拟器里或实际设备中.它向系统发送伪随机的用户事件流(如按键输入.触摸屏输入.手势输入等),实现对正在开发的应用程序进行压力测试.Monkey ...
- android app 压力测试工具-monkey tool
一.什么是Monkey? Monkey测试是Android自动化测试的一种手段,Monkey测试本身非常简单,就是模拟用户的按键输入,触摸屏输入,手势输入等,看设备多长时间会出异常. Monkey是A ...
- Android自动化压力测试之Monkey Test (三)
Monkey 是什么? Monkey是Google提供的一个用于稳定性与压力测试的命令行工具. Monkey路径: 路径:/System/framework/monkey.jar 启动脚本路径:/sy ...
随机推荐
- ASIHTTPRequest
ASIHTTPRequest,是一个直接在CFNetwork上做的开源项目,提供了一个比官方更方便更强大的HTTP网络传输的封装.
- 【编程技巧】addSubview和insertSubview的区别
addSubview 是将view加到所有层的最顶层 相当于将insertSubview的atIndex参数设置成view.subviews count 即 [view addSubview:onev ...
- Java 中判断类和实例之间的关系
判断类与实例的关系有以下三种方式 1.instanceof关键字,用来判断对象是否是类的实例 (对象 => 类 ) 2.isAssignableFrom,用来判断类型间是否存在派生关系 (类 ...
- 商品鼠标移过去hover效果---图片放大1.1倍
.home-standard-layout .middle-goods-list ul li:hover{ box-shadow: 0 0 10px gray;} .home-standard-lay ...
- Linux Server release 7.3 更换阿里网络yum源
查看当前系统下的yum源 [root@localhost ~]# rpm -qa |grep yum yum-3.4.3-150.el7.noarch yum-utils-1.1.31-40.el7. ...
- linux_nginx反向代理
什么代理? 代理他人工作 什么是正向代理和反向向代理,他们之间的区别? 这两个代理很类似,但扮演了两个不同角色,一个站在用户角度,一个站在服务端角度 正向代理: 帮助用户请求服务 返向代理:帮助服务均 ...
- django url路由参数错误
出现错误: TypeError get() got an unexpected keyword argument 'teacher_id 出错原因: view类中,get方法获得了一个多余的额参数,这 ...
- Linux指令--route
Linux系统的route命令用于显示和操作IP路由表(show / manipulate the IP routing table).要实现两个不同的子网之间的通信,需要一台连接两个网络的路由器,或 ...
- 错误:The request sent by the client was syntactically incorrect的解决
问题: 错误400-The request sent by the client was syntactically incorrect. springMVC中,某个页面提交时报400错误,如下图. ...
- SSE图像算法优化系列十五:YUV/XYZ和RGB空间相互转化的极速实现(此后老板不用再担心算法转到其他空间通道的耗时了)。
在颜色空间系列1: RGB和CIEXYZ颜色空间的转换及相关优化和颜色空间系列3: RGB和YUV颜色空间的转换及优化算法两篇文章中我们给出了两种不同的颜色空间的相互转换之间的快速算法的实现代码,但是 ...