对安卓手机上的APP做monkey压力测试

之前对安卓手机上的APP做了monkey测试,今天来总结一下如何使用安卓自带的monkey命令去做测试。

首先,PC端要对安卓手机进行monkey测试的话,必须要有以下条件:

1.电脑中必须配有ADB的环境才能进行操作。
ADB是Android SDK里的一个工具,可以直接管理手机(手机一定是处于开发者模式下),所以jdk和安卓sdk是必须的

2.手机连接电脑时要开启USB调试模式(手机是开发者模式),否则ADB命令进行检测连接设备时是无法检测到的。

其次是adb插件的安装,adb安装包在网上有很多资源,随便找一个网站下载即可,但是下载后我们怎么才能安装呢?

首先将下载的压缩包进行解压,解压后,我们需要将它放置如图目录下。

在我的电脑中,我的cmd命令进入后默认是AZ这个文件夹,所以将其放入AZ目录下,为什么要这样做,因为放在其他目录中我们执行ADB命令是找不到命令的,所以我们需要将其放置在这个目录下。

然后我们就可以开始操作了(前提是手机已经连接好)

怎么判断我们的手机已经连接了呢?

输入:adb devices

就可以查看我们的设备是否连接了。这里注意一个问题,如果命令输入后报

daemon not running. starting it now on port 5037 *
这样一个错,那就是adb命令使用的是5037端口,而5037被占用了,我们需要查出来是谁占用了这个程序,并且KILL掉这个程序,具体操作如下:
先输入:netstat -ano

找出占用了端口的程序和它的PID,然后

输入:Taskkill /f/pid xxx

就可以关掉占用5307端口的程序,就可以使用adb了

安装包:
在cmd中输入 adb install -r 后,将apk直接拖到到cmd界面光标处,点击回车
(注意:r后面加个空格)

判断手机连接成功后,我们就可以进行操作了,但是又一个问题来了,我们如何确定我们要执行的程序在手机内部叫什么名字呢?

如果手机中文件不多,我们可以
输入:adb shell pm list package -f
这个命令可以查看手机中包的名字和路径

当手机中文件太多时,这时候我们只需要打开我们需要执行的APP,然后
输入:adb shell dumpsys window | findstr mCurrentFocus 命令,可以查看当前启动中的应用信息


就可以查看我们要执行程序的包名了。
得知包名后,我们就可以对APP进行monkey测试了

一、下载JDK
http://www.oracle.com/technetwork/java/javase/downloads/index.html
JDK11之后没有直接的jre, 所以手动安装jre模块
进入jdk安装目录下
点击shift+右键,在此处打开命令窗口,然后执行如下命令:
bin\jlink.exe --module-path jmods --add-modules java.desktop --output jre
可以看到目录下出现了jre文件

安装好后,要配置环境变量。
新建一个系统环境变量,变量名为JAVA_HOME,变量值为JDK的安装路径
然后在系统变量列表中,双击Path变量,并将;
%JAVA_HOME%\bin
%JAVA_HOME%\jre\bin
追加到变量值后面(注意,在变量的最末尾添加时,要记得加上分号):

一、安装eclipse
下载地址:
https://www.eclipse.org/downloads/download.php

一、下载安装android SDK

两种方式:

(1)官网下载(需翻墙):https://developer.android.com/studio/index.html

(2)无需翻墙下载:http://www.androiddevtools.cn/

找到SDK Tools,选择下载windows的zip格式的。

下载后在需要安装的位置解压,得到:

打开SDK Manager.exe,在以下界面中选择:

然后install

二、配置环境变量

右键我的电脑,打开属性,点击高级系统设置,打开环境变量:

1、新建一个环境变量名称为ANDROID_HOME,变量值为当前安装SDK的目录

例如SDK装在D:\androidSDK中,则环境变量为:

2、把%ANDROID_HOME%\platform-tools;%ANDROID_HOME%\tools添加到Path环境变量中。

三、检测是否安装成功

win+R,输入cmd,打开命令提示符面板。

输入abd

四、安装ADT

前提是已经安装好了eclipse以及jdk、并配好了环境

1、下载ADT.zip

(1)需翻墙:http://dl-ssl.google.com/android/eclipse/

(2)无需翻墙:http://www.androiddevtools.cn/
1
2
3
2、打开eclipse、点击help菜单,选择install new software

  点击Add按钮,点击archive,选择我们所下载的ADT压缩包,然后随便取个名字(例如ADT),确定后就可以看到对应的Developer Tools,全部选中、然后一直next到finish
1
3、安装完成后重启eclipse就好了

(注:但是最新版的eclipse已经不支持android开发了,需要进行原生android开发,推荐android studio)
Android Monkey 压力测试 介绍
Monkey 是Android SDK提供的一个命令行工具, 可以简单,方便地运行在任何版本的Android模拟器和实体设备上。 Monkey会发送伪随机的用户事件流,适合对app做压力测试

阅读目录
环境搭建
什么是Monkey
Monkey 用来做什么
Monkey程序介绍
Monkey 架构
Monkey弱点
Monkey 参数大全
Monkey 命令 基本参数介绍
Monkey 实例
Monkey 查看包名
Monkey 日志分析
必须重视Crash

环境搭建
安装Android SDK 并配置环境变量

http://pan.baidu.com/s/1jIlifbS

什么是Monkey
顾名思义,Monkey就是猴子, Monkey测试,就像一只猴子, 在电脑面前,乱敲键盘在测试。 猴子什么都不懂, 只知道乱敲

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

Monkey 用来做什么
Monkey 主要用于Android 的压力测试 自动的一个压力测试小工具, 主要目的就是为了测试app 是否会Crash.

Monkey程序介绍
(1) Monkey程序由Android系统自带,使用Java诧言写成,在Android文件系统中的存放路径是: /system/framework/monkey.jar;
(2) Monkey.jar程序是由一个名为“monkey”的Shell脚本来启动执行,shell脚本在Android文件系统中 的存放路径是:/system/bin/monkey;
(3)Monkey 命令启动方式:
a)可以通过PC机CMD窗口中执行: adb shell monkey {+命令参数}来进行Monkey测试

b)在PC上adb shell 进入Android系统,通过执行 monkey {+命令参数} 来进行Monkey 测试

c ) 在Android机或者模拟器上直接执行monkey 命令,可以在Android机上安装Android终端模拟器

Monkey 架构
Monkey 运行在设备或模拟器上面,可以脱离PC运行(普遍做法是将monkey作为一个像待测应用发送 随机按键消息的测试工具。验证待测应用在这些随机性的输入面前是否会闪退或者崩溃)

Monkey弱点
Monkey虽然可以根据一个指定的命令脚本发送按键消息,但其丌支持条件判断,也丌支持读取待测界 面的信息来执行验证操作。

Monkey 参数大全

Monkey 命令 基本参数介绍
-p <允许的包名列表>

用此参数指定一个或多个包。指定包之后,monkey将只允许系统启动指定的app。如果丌指定包, monkey将允许系统启动设备中的所有app。

指定一个包:adb shell monkey -p com.shjt.map 100

指定多个包:adb shell monkey -p fishjoy.control.menu –p com.shjt.map 100

-v

用亍指定反馈信息级别(信息级别就是日志的详细程度),总共分3个级别,分别对应的参数如下 表所示:

Level 0 : adb shell monkey -p com.shjt.map -v 100 // 缺省值,仅提供启动提示、测试完成和最终结果等少量信息

Level 1 : adb shell monkey -p com.shjt.map -v -v 100 // 提供较为详细的日志,包括每个发送到Activity的事件信息

Level 2 : adb shell monkey -p com.shjt.map -v -v -v 100 // 最详细的日志,包括了测试中选中/未选中的Activity信息

-s(随机数种子)

用亍指定伪随机数生成器的seed值,如果seed相同,则两次Monkey测试所产生的事件序列也相同的。 示例:

monkey测试1:adb shell monkey -p com.shjt.map –s 10 100

monkey测试2:adb shell monkey -p com.shjt.map –s 10 100

–throttle <毫秒>

用亍指定用户操作(即事件)间的时延,单位是毫秒;如果丌指定这个参数,monkey会尽可能快的 生成和发送消息。 示

例:adb shell monkey -p com.shjt.map --throttle 3000 100

Monkey 实例
用monkey 命令 对上海公交 app进行 性能测试
adb shell monkey –p com.shjt.map –-throttle 100 –-pct-touch 50 –-pct-motion 50 –v –v 1000 >c:\monkey.txt

Monkey 查看包名
手机中安装APK包名查看器

源码下的AndroidManifest.xml文件查看
aapt命令查看

Monkey 日志分析
正常情况, 如果Monkey测试顺利执行完成, 在log的最后, 会打印出当前执行事件的次数和所花费的时间; // Monkey finished 代表执行完成\

异常情况

Monkey 测试出现错误后,一般的分析步骤
看Monkey的日志 (注意第一个swith以及异常信息等)

程序无响应的问题: 在日志中搜索 “ANR”
崩溃问题:在日志中搜索 “Exception” (如果出现空指针, NullPointerException) 肯定是有bug
Monkey 执行中断, 在log最后也能看到当前执行次数

必须重视Crash

虽然Monkey测试有部分缺陷,我们无法准确地得知重现步骤, Monkey测试所出现的NullPointException, 都是可以在用户使用时出现的, 何时出现只是时间问题

理论上来说, Monkey所有的Crash 都需要在发布前修复掉
————————————————
版权声明:本文为CSDN博主「suntingting_100」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/suntingting_100/article/details/97915636

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值