压力测试结果:
CRASH:崩溃,应用程序在使用过程中,非正常退出
ANR:Application Not Responding

命令很多,不用死记,用到复制、粘贴就行,达到目的最重要。

简单通俗易懂点讲就是,跟猴子一样乱点,查看日志是否有崩溃的日志,

配置好环境,设置好操作次数,关屏幕执行,第二天来看结果就行

MonkeyRunner APIs
MonkeyRunner:用来连接设备或模拟器
MonkeyDevice:提供安装、卸载应用,发送模拟事件
MonkeyImage :完成图像保存,及对比的操作

Monkey:在adb shell中,生成用户或系统的伪随机事件
MonkeyRunner:通过API定义特定命令和事件控制设备

MonkeyRunner提供了一系列的API
可以完成模拟事件及截图操作
MonkeyScript
是一组可以被Monkey识别的命令集合
可以完成重复固定的操作

1.为什么要进行压力测试?
App不稳定
提高产品的留存率

2.什么时候开展压力测试
首轮功能测试通过后
下班后的夜间进行

如何实现自动化测试:
模拟各种事件流

adb:Android Debug Bridge
adb与手机里的monkey进行通讯
adb调试应用的入口

adb shell monkey 1000
activityResuming(com.android.documentsui)
表示app从前台调入后台...又从后台恢复到前台的过程

获取App包名
adb logcat|findstr START (cmp后面的是app的包名)

给指定包打压力
adb shell monkey -p package 1000

-v
作用:命令行上的每一个-v都将增加反馈信息的详细级别
比较常用的是-v -v -v ,即最多详细,一般会保存到指定
文件中供开发人员查找bug原因时使用

--throttle参数
指定事件之间的间隔
adb shell monkey -p packagename --throttle 间隔毫秒 执行次数

seed参数
指定随机生成数的seed值
如果用相同的seed值再次运行monkey,将生成相同的事件序列
adb shell monkey -s<seed><event-count>
adb shell monkey -p com.bit_health.android -s 7672 1000

触摸事件
设定触摸事件百分比
adb shell monkey --pct-touch <percent>
adb shell monkey -v -p com.bit_health.android --pct-touch 100 1000
可以在输出结果中的Event percentages中查看是否是
触摸事件百分百,0表示触摸事件

动作事件
设定动作事件百分比
adb shell monkey --pct-motion <percent>
这里设定的百分比要与其他事件的百分比之和等于100
adb shell monkey -v -p com.bit_health.android --pct-touch 50 --pct-motion 30 500

轨迹球事件
设定轨迹球事件百分比
adb shell monkey --pct-trackball <percent>

基本导航事件
设定基本导肮事件百分比,输入设备的上、下、左、右
adb shell monkey --pct-nav <percent>

主要导航事件
设定主要导航事件百分比,兼容中间键、返回键、菜单按键
adb shell monkey --pct-majornav <percent>

系统导航事件
设定系统导航事件百分比,HOME、Back、拨号、音量键
adb shell monkey --pct-syskeys <percent>

启动Activity事件
设定启动Activity的事件百分比
adb shell monkey --pct-appswitch <percent>

不常用事件
设定不常用事件的百分比
adb shell monkey --pct-anyevent <percent>

崩溃事件
忽略崩溃和异常
adb shell monkey --ignore-crashes <event-count>

超时事件
忽略超时事件
adb shell monkey --ignore-timeouts <event-count>
如果发生了ANR事件,可以在手机中查看
1.输入adb shell命令,进入到手机
2.跳转anr目录,cd /data/anr/
3.在anr目录中,more traces.txt 查看报错信息

Monkey Script
1.DispatchTrackball命令
轨迹球事件
DispatchTrackball(long downtime,long eventide,
int action,float x,float y,float pressure,
float size,int metastate,float xprecision,
float ypercision,int device,int edgeflags)

action 0代表按下,1代表谈起,x和y代表坐标点

2.DispatchPointer命令
点击事件
DispatchPointer(long downtime,long eventide,
int action,float x,float y,float pressure,
float size,int metastate,float xprecision,
float ypercision,int device,int edgeflags)
action 0代表按下,1代表谈起,x和y代表坐标点

3.DispatchString命令
输入字符串事件
DispatchString(String text)

4.LaunchActivity命令
启动应用
LaunchActivity(package,Activity)

5.UserWait命令
等待事件
UserWait(1000)

6.DispatchPress命令
按下键值
DispatchPress(int keycode)#keycode 66 回车键

实例:重复点击搜索100次
1.启动App
2.点击输入框
3.输入查询词
4.点击键盘的回车
5.点击搜索按钮
6.等待结果的出现
7.点击clear按钮

手机不能执行电脑上的脚本
将脚本push到手机中
adb push mook.script /data/local/tmp/

之后执行adb shell monkey -f mook.script 2
执行的效果是无法正确启动app
(!!!)需要在mainfest清单文件中声明android:exported="true"
意思是允许该activity被外部调用

使用monkey script编写脚本最大的困难是没有调试功能
也没有截屏操作

MonkeyRunner
1.MonkeyRunnner API-alert
警告框
void alert(String message,String title,String okTitle)

2.MonkeyRunner Api-waitForConnection
等待设备连接,有多个device id,需要指明具体哪个设备
waitForConnection(float timeout,String deviceid)

3.MonkeyDevice API -drag
拖动
drag(tuple start,tuple end ,float duration,integer steps)
start 起点位置
end 终点位置
duration手势持续的时间
steps 插值点的步数,默认10

4.MonkeyDevice API -press
按键
press(String keycode,dictionary type)
keycode名,Down,UP,DOWN_AND_UP

5.MonkeyDevice API -startActivity
启动应用
startActivity(package+'/'+activity)
6.MonkeyDevice API - touch 
点击
touch(integer x,integer y,integer type)
x 坐标值, y坐标值
type:DOWN,UP,DOWN_AND_UP

7.MonkeyDevice API - type
输入
type(String message)

8.MonkeyDevice API - takeSnapshot
截屏
MonkeyImage takeSnapshot()

9.MonkeyImage API - sameAs
图像对比
boolean sameAS(MonkeyImage other,float percent)

10.MonkeyImage API - writetoFile
保存图像文件
void writetoFile(String path,String format)

App压力测试MonkeyRunner整理的更多相关文章

  1. Android App 压力测试 monkeyrunner

    Android App 压力测试 第一部分 背景 1. 为什么要开展压力测试? 2. 什么时候开展压力测试?第二部分 理论 1. 手工测试场景 2. 自动测试创建 3. Monkey工具 4. ADB ...

  2. 【转载】Loadrunner实现Android / IOS 手机APP压力测试

    随着手机APP用户量的增大,大的手机APP一般都需要进行压力测试,这几天用了loadrunner 12进行了手机APP的压力测试,整理了下,大家可以参考参考怎样给Andorid / IOS手机APP进 ...

  3. Android APP压力测试(三)之Monkey日志自动分析脚本

    Android APP压力测试(三) 之Monkey日志自动分析脚本 前言 上次说要分享Monkey日志的分析脚本,这次贴出来分享一下,废话不多说,请看正文. [目录] 1.Monkey日志分析脚本 ...

  4. Android APP压力测试(二)之Monkey信息自动收集脚本

      Android APP压力测试(二) 之Monkey信息自动收集脚本 前言: 上一篇Monkey介绍基本搬抄官方介绍,主要是为了自己查阅方便.本文重点介绍我在进行Monkey时如何自动收集相关信息 ...

  5. Android APP压力测试(一)之Monkey工具介绍

    Android APP压力测试(一) 之Monkey工具介绍 前言 本文主要介绍Monkey工具.Monkey测试是Android平台自动化测试的一种手段,通过Monkey程序模拟用户触摸屏幕.滑动. ...

  6. Loadrunner&Jemeter进行手机APP压力测试

    一.loadrunner通过代理录制app脚本 随着手机APP的广泛应用,手机应用的使用已占据了大量的市场份额,尤其是优秀的手机APP,动辄用户过千万过亿,对于如此庞大的用户量,我们在开发APP时,也 ...

  7. App压力测试整理

    压力测试结果:CRASH:崩溃,应用程序在使用过程中,非正常退出ANR:Application Not Responding MonkeyRunner APIs MonkeyRunner:用来连接设备 ...

  8. APP压力测试 monkey(新猿旺学习总结)

    安卓APP做压力测试 需要配置JDK(Java)和 配置SDK 遮掩才能使用adb命令连接手机进行模拟动作事件进行压力测试 配置 K JDK 与 K SDK 环境 a java 与 与 sdk 用于 ...

  9. android app 压力测试工具-monkey tool

    一.什么是Monkey? Monkey测试是Android自动化测试的一种手段,Monkey测试本身非常简单,就是模拟用户的按键输入,触摸屏输入,手势输入等,看设备多长时间会出异常. Monkey是A ...

随机推荐

  1. C++学习笔记--名称空间

    名称空间是为了更好的控制名称的作用域,以管理不同的类库,避免发生冲突. 1.创建名称空间 如下,使用namespace关键字创建了pers和debts两个名称空间. #ifndef NAMESP_H_ ...

  2. Python:6种标准数据类型

    原文地址https://www.cnblogs.com/qin1991/p/5910145.html #!/usr/bin/python3 #python的基本语法和数据类型 #python3中 一行 ...

  3. 编译安装MariaDB-10.0.21

    一.源码编译安装gcc-5.1.0 1.下载gcc源码包 Download (HTTP): http://ftpmirror.gnu.org/gcc/gcc-5.2.0/gcc-5.2.0.tar.b ...

  4. @RequestMapping @SessionAttributes @ModelAttribute注解用法

    简介: @RequestMapping RequestMapping是一个用来处理请求地址映射的注解,可用于类或方法上.用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径. RequestM ...

  5. php中获得数组长度的方法

    php中获得数组长度的方法   count统计数组里元素的个数:  strlen是统计数组中元素的长度: 你如果想统计数组中所有元素的长度,那就用循环统计吧tqeb 代码: $a  =  array( ...

  6. 微信企业号的JAVA开发平台

    JEEWX 微信企业号平台 - 开源|免费 JEEWX 微信企业号平台,是基于JEECG3.6.3版本开发,采用插件方式提供,如果你的系统采用JEECG3.6.3版本开发,可以轻松集成JEEWX微信企 ...

  7. hadoop yarn HA集群搭建

    可先完成hadoop namenode HA的搭建:http://www.cnblogs.com/kisf/p/7458519.html 搭建yarnde HA只需要在namenode HA配置基础上 ...

  8. python3.6连接mysql或者mariadb

    python3.6版本的安装查看上一篇文章 mysql或mariadb数据库的安装查看以前的文章,这里不再赘述 首先在mariadb数据库中创建相应的库和表: MariaDB [(none)]> ...

  9. nmap与Nessus扫描特定靶机分析

    打开装载Metasploitable2虚拟机的靶机,并获取靶机ip: 使用nmap+ip初步扫描靶机 PORT为端口,STATE为端口开放状态,SERVICE为端口的提供的服务.靶机的MAC地址为: ...

  10. Ubuntu 12.04下安装QQ 2012 Beta3

    Ubuntu 12.04下安装QQ 2012 Beta3   由于wine的发展非常迅速.现在网上的利用老版本的wine来安装QQ2012的教程已经有些过时了.实际上操作起来非常简单: 第一步:Ctr ...