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. Java跨平台(系统)的主要原理

    Java是可以在系统运行的,主要是Java在执行的时候先通过Java虚拟机JVM,对应不同的操作系统,JVM会采用对应的翻译机制.

  2. Oracle导出数据中的prompt,set feedback 等是什么意思

    prompt 显示后面的提示,相当于一般的操作系统命令echo,输出后面的信息Importing table t_testset feedback off 1.set feedback 有三种方式: ...

  3. 用 Lua 控制 MIDI 合成器来播放自定义格式乐谱

    用 Lua 控制 MIDI 合成器来播放自定义格式乐谱 作者: FreeBlues 最新: https://www.cnblogs.com/freeblues/p/9936844.html 说明: 本 ...

  4. SQL语句(四)可视化创建和修改表

    可视化创建修改表 数据库(teaching)->表->新建表 数据库(teaching)->表->(右键)设计->CHECK约束->添加---->标识(名称) ...

  5. 搭建Linux下Android程序开发环境

    从AndroidStudio中文社区下载SDK压缩包,http://dl.google.com/android/android-sdk_r24.2-linux.tgz. 解压到某个目录,比如我的~/p ...

  6. nmap扫描出现tcpwrapped

    FAQ tcpwrapped From SecWiki Jump to: navigation, search What does "tcpwrapped" mean? tcpwr ...

  7. float导致出现大面积空白

    float导致出现大面积空白,解决方法: *{ padding: 0; margin: 0; overflow:hidden; }

  8. 第5月第6天 NSOperation isConcurrent category同名覆盖

    1. @implementation AFURLConnectionOperation ... - (BOOL)isConcurrent { return YES; } NSOperation调用st ...

  9. C++ vector 使用笔记

    map 插入 vector #include <string> #include <iostream> #include <algorithm> #include ...

  10. I - Interesting Calculator (bfs使用优先队列求步数最小或者花费最小)

    题目链接:https://cn.vjudge.net/contest/245287#problem/I 代码: 使用普通的队列和优先队列相比,优先队列能更快地找到目的变量. #include<i ...