Android Monkey压力测试学习笔记

步骤:下载SDK -> 解压进入SDK Manager下载系统 -> 配置环境变量 -> 创建虚拟设备或连接真机 -> 进入命令模式按场景输入测试命令

环境搭建

1、安装JDK

2、下载Android sdk,什么是Android sdk?

exe格式和zip格式都可以

3、安装installer_r24.4.1-windows.exe文件,里面有两个应用程序: “SDK Manager.exe”(负责下载或更新SDK包) 和 “AVD Manager.exe”(负责创建管理虚拟机)。

4、我们先运行“SDK Manager.exe”进行SDK下载,我选择为7.0版,点击install packages开始安装(此处下载是为搭建虚拟机和环境变量做准备)

下载说明:

安装

进入漫长等待…

5、设置环境变量

第一种方法:

(1) 新建一个ANDROID_HOME的环境变量加入sdk(zip解压路径)安装路径

(2) 在path加入

%ANDROID_HOME%\tools;%ANDROID_HOME%\platform-tools;

或者

第二种方法:

直接在解压的SDK文件,找到“platform-tools”和“tools”并把这两个路径复制粘贴到Path环境变量里

注意:前面如果没有执行在SDK Manager.exe中下载系统这一步,你的SDK解压包中可能没有platform-tools和tools文件

6、测试环境是否成功,运行DOS输入:

adb

结果示意图:

或者输入adb shell 进入shell

C:\Users\> adb shell
generic_x86_64:/ $

出现以上结果就证明安装OK了

未成功?

尝试一下上面的第二种环境变量(虽然两种效果一样,但我的电脑就出现了这种莫名其妙的事情,尝试第二种就可以了)

使用方法

创建虚拟设备:

此小章内容介绍的是虚拟设备的创建方法

电脑配置低创建完成有可能会有些卡顿

1、打开AVD Manager.exe

2、创建



注意CPU中的选项:

版本不同界面也可能是这样

3、运行虚设备

选择运行



点击后:



执行结果:

如出现报错:emulator: ERROR: x86 emulation currently requires hardware acceleration ?

解决办法下载haxm并安装 打开SDK Manager.exe在最下面Extras中找到选择安装(此方法某些版本系统提示不兼容)

详细参考链接

一直黑屏?

创建时应该是哪个配置选错了,或者仔细看一下前面的教程是不是少下什么包了

执行压测

我们可以使用虚拟设备或真机进行测试(命令一样):

虚拟机: 按上面的小章节安装并运行

真机: usb连接手机,打开开发者模式 -> 开启USB调试(若提示是否允许调试,点是,不然不能某些操作)

1、查看设备是否连接成功

进入DOS(windows+r)输入adb devices

虚拟设备开启后会显示如下结果:

C:\Users\Admin>adb devices
List of devices attached
emulator-5554 device

真机会出现如下类似结果机器型号不同显示结果可能不一致:

C:\Users\Admin>adb devices
List of devices attached
GSLDU17A14004709 device

2、安装apk程序(需要时)

将apk文件复制到android sdk对应platform-tools的目录下。
adb install 文件名.apk #安装方法
adb uninstall 包名 #卸载

3、获取包名(测试时需要,如下将演示对手机上的Email程序进行压测)

方法一:
adb shell pm list package -f #显示所有apk包名包括系统

执行结果:

C:\Users\> adb shell pm list package -f
package:/data/app/SmokeTestApp/SmokeTestApp.apk=com.android.smoketest
package:/system/priv-app/CtsShimPrivPrebuilt/CtsShimPrivPrebuilt.apk=com.android.cts.priv.ctsshim
package:/data/app/CubeLiveWallpapers/CubeLiveWallpapers.apk=com.example.android.livecubes
package:/system/priv-app/TelephonyProvider/TelephonyProvider.apk=com.android.providers.telephony
........ #刚安装的虚拟设备都有好几十
方法二:
adb shell dumpsys window w | findstr \/ | findstr name= #会显示正打开的程序

执行结果:

C:\Users\WeiBing>adb shell dumpsys window w | findstr \/ | findstr name=
mSurface=Surface(name=com.android.email/com.android.email.activity.setup.AccountSetupFinal) #如我们正在运行Email的APP

记住上面的包名:com.android.email

更多获取包名的方法

4、开始压测

方法:adb shell monkey -p your.package.name -v -v -v 100

分析:

参数-p用于约束限制,用此参数指定一个或多个包(Package,即App)。
100是事件计数(即让Monkey程序模拟100次随机用户事件)
-v -v -v 100 # 以深度为三级输出测试信息 一个两个-v也可以效果不同

对上面第3步的Email APP执行测试

adb shell monkey -p com.android.email --throttle 500 -v -v -v 100 > D:/monkey_log.txt  

分析上面命令:

adb shell : 是进入shell 也可和后面的语句分开写
-p : 参数是指定一个包或多个,两个再-p package
com.android.email : 是package name
throttle 500 : 响应时间,500毫秒
-v -v -v : 三级详细信息 也可一个两个-v详细程度不一样
100 : 执行的操作量
D:/monkey_log.txt :将结果日志存储到D盘下面取名为monkey_log.txt

更详细的log参数使用方法

5、找到log查看结果:

C:\Users\> adb shell monkey -p com.android.email --throttle 500 -v -v -v 100 > D:/monkey_log.txt
:Monkey: seed=1520164404419 count=100
:AllowPackage: com.android.email
:IncludeCategory: android.intent.category.LAUNCHER
:IncludeCategory: android.intent.category.MONKEY
....... # 此处省略一大堆
Events injected: 100
:Sending rotation degree=0, persist=false
:Dropped: keys=0 pointers=0 trackballs=0 flips=0 rotations=0
## Network stats: elapsed time=4663ms (0ms mobile, 0ms wifi, 4663ms not connected)
// Monkey finished

详细分析

6、分析日志

查找有无日志中的无响应问题和崩溃问题

## Network stats: elapsed time=5123ms (5123ms mobile, 0ms wifi, 0ms not connected)
// Monkey finished #表明本次的Monkey没有异常,测试通过。

无响应问题搜索”ANR”

奔溃问题搜索”CRASH”

内存泄漏问题搜索”GC”,并进一步分析

异常问题搜索”Exception”,如出现NullpointerException,则出现空指针,需要重视

有这类的情况再进行具体分析

日志分析来源

才疏学浅暂不深究

详细教程一

详细教程二

Android Monkey压力测试环境搭建及使用的更多相关文章

  1. Android Monkey 压力测试 介绍

    Monkey 是Android SDK提供的一个命令行工具, 可以简单,方便地运行在任何版本的Android模拟器和实体设备上. Monkey会发送伪随机的用户事件流,适合对app做压力测试 阅读目录 ...

  2. Android Monkey压力测试

    Monkey 是Android SDK提供的一个命令行工具, 可以简单,方便地运行在任何版本的Android模拟器和实体设备上. Monkey会发送伪随机的用户事件流,适合对app做压力测试. 1为什 ...

  3. Android Monkey压力测试(转)

    参考链接:https://www.cnblogs.com/yyh8/p/6707745.html Monkey 是Android SDK提供的一个命令行工具, 可以简单,方便地运行在任何版本的Andr ...

  4. Android Monkey压力测试使用

    一.Monkey简介: Monkey是Android中的一个命令行工具,可以运行在模拟器里或者现实设备中,向系统发送伪随机的用户事件流(点击.滑动.Application切换.横竖屏.应用关闭)实现对 ...

  5. 『与善仁』Appium基础 — 1、Android系统的测试环境搭建

    目录 1.Android操作系统简介 (1)Android系统诞生 (2)Android系统的结构 (3)Android测试环境搭建整体思路 2.Java环境安装 (1)JDK8下载 (2)安装JDK ...

  6. 转 Android Monkey压力测试使用

    转自:https://www.jianshu.com/p/c8844327f5e9 一.Monkey简介: Monkey是Android中的一个命令行工具,可以运行在模拟器里或者现实设备中,向系统发送 ...

  7. Android Monkey压力测试介绍

    monkey:通过Monkey程序模拟用户触摸屏幕.滑动Trackball. 按键等操作来对设备上的程序进行压力测试,检测程序多久的时间会发生异常. Monkey的构架 Monkey的参数 Monke ...

  8. Monkey稳定性测试环境搭建说明

    一.安装Java环境 安装Java环境-JDK:下载地址:http://pan.baidu.com/s/1pJ6Yqs7,jdk安装解压即可. 二.设置环境变量 双击下载的JDK ,设置安装路径.这里 ...

  9. 1、Locust压力测试环境搭建

    环境准备:阿里云服务器一台.python2.7.pip Locust 介绍 Locust 是一个开源负载测试工具.使用 Python 代码定义用户行为,也可以仿真百万个用户. Locust 简单易用, ...

随机推荐

  1. Hibernate_事务管理

    今天学习Hibernate,发现当我在执行下面操作时,不会对数据库产生任何效果,就是说Customer对象并不会保存到数据库中 Session session = HibernateUtils.ope ...

  2. Spark记录-大数据简介

    什么是大数据 大数据(big data),指无法在一定时间范围内用常规软件工具进行捕捉.管理和处理的数据集合,是需要新处理模式才能具有更强的决策力.洞察发现力和流程优化能力的海量.高增长率和多样化的信 ...

  3. python学习笔记9-单元测试unittest

    Python中有一个自带的单元测试框架是unittest模块,用它来做单元测试,它里面封装好了一些校验返回的结果方法和一些用例执行前的初始化操作. 在说unittest之前,先说几个概念: TestC ...

  4. 【转】Robot Framework作者建议如何选择自动化测试框架

    原文:http://www.infoq.com/cn/news/2012/06/robot-author-suggest-autotest 软件自动化测试,作为手工测试的替代,越来越受到关注.Pekk ...

  5. [译]Quartz.NET 框架 教程(中文版)2.2.x 之第七课 触发监听器和作业任务监听器

    第七课:触发监听器和作业任务监听器 监听器是在调度器中基于事件机制执行操作的对象.你大概可以猜到,触发监听器接收响应跟触发器有关的事件,作业任务监听器接收响应跟作业任务有关的事件. 跟触发器有关的事件 ...

  6. HAX kernel module is not installed

    dev.android.emulator.haxm 运行emulator -avd xxx来启动名为xxx的模拟器,但报如下错误: emulator: ERROR: x86 emulation cur ...

  7. 我的Mac中毒了,病毒居然叫做MacPerformance

    禁用 ReportCrash 直接干掉进程肯定不管用,从名字就知道这个进程会自动被触发,除非修改系统配置. Google 了一下,发现很简单,在 terminal 里执行 launchctl unlo ...

  8. 集大软件工程15级个人作业Week2

    集大软件工程15级个人作业Week2 快速通读教材<构建之法>,并参照提问模板,提出5个问题. 在每个问题后面,请说明哪一章节的什么内容引起了你的提问,提供一些上下文 列出一些事例或资料, ...

  9. Linux - 日志处理一

    Linux 日志处理 history # 历时命令默认1000条 HISTTIMEFORMAT="%Y-%m-%d %H:%M:%S " # 让history命令显示具体时间 hi ...

  10. $PollardRho$ 算法及其优化详解

    \(PollardRho\) 算法总结: Pollard Rho是一个非常玄学的算法,用于在\(O(n^{1/4})\)的期望时间复杂度内计算合数n的某个非平凡因子(除了1和它本身以外能整除它的数). ...