博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
转:Android自动化压力测试工具Monkey——测试例子
阅读量:4051 次
发布时间:2019-05-25

本文共 2334 字,大约阅读时间需要 7 分钟。

有时候我们需要对一个软件进行压力测试,检查该软件的性能。如果是人工进行测试的话,效率会低很多,而且会比较枯燥。这时,
Android
中的一个命令行工具
Monkey
就可以为我们减轻很多重复而又繁琐的工作。
以下就
Monkey
工具的简介、特性、基本用法、测试示例图解、测试的停止条件和命令参数说明等方面进行介绍。
     一、
Monkey
简介
    至于
Monkey
的名字是有何而来的呢?这个没有去怎么考究,
Monkey
这个工具就是一个调皮的猴子,在
App
中乱按、乱摸、乱滚、乱跳。
Monkey
测试是
Android
平台下自动化测试的一种快速有效的手段,通过
Monkey
工具可以模拟用户触摸屏幕、滑动轨迹球、按键等操作来对模拟器或者手机设备上的软件进行压力测试,检测该软件的稳定性、健壮性。它的原理是向系统发送伪随机的用户事件流(如按键输入、触摸输入、手势输入等),实现对正在开发的应用程序进行压力测试。
    二、
Monkey
的特性
   (
1
)测试的对象仅为应用程序包(
apk
包),有一定的局限性;
   (
2
Monkey
测试使用的事件流数据流是随机的,不能进行自定义;
   (
3
)可对
MonkeyTest
的对象、事件数量、类型、频率等进行设置。
     虽然Monkey
工具并不完善,但是足于应付应用程序的基本测试需要了。如果需要功能更强大的测试工具的话,可以使用
Monkey
的进化版
MonkeyRunner
如果把
Monkey
看作是幼儿园的小孩,那么它的进化版
MonkeyRunner
就可以看作是一个初中生了。它支持自定义插件
,
控制事件
,
随时截图
,
简而言之
,
任何你在模拟器
/
设备中能干的事情
,MonkeyRunner
都能干
,
而且还可以记录和回放。在这里,就不详细介绍MonkeyRunner
了,具体可以参考其官方文档或者其他相关资料。
    注:
MonkeyRunner
官方文档的网址
   
    三、
Monkey
的基本用法
    基本语法如下:
    $ adb shell monkey [options]
    如果不指定
options
Monkey
将以无反馈模式启动,并把事件任意发送到安装在目标环境中的全部包。下面是一个更为典型的命令行示例,它启动指定的应用程序,并向其发送
1000
个伪随机事件:
    $ adb shell monkey -p your.package.name -v number
    $ monkey -p
package
的意思)  指定文件名
-v
(测试的次数和频率)
number
(次数)
    四、Monkey
测试示例图解
    通过简单的测试示例,初步了解并掌握
Monkey
测试的步骤。注意,这里主要是使用
adb
命令进行安装和相关操作。测试的具体参考步骤如下:
    (1)首先,先准备了一个测试用的应用程序(
apk
文件)。为了测试,这里选择了一个格瓦拉手机购票
App
进行测试。下载地址为:
    下载好后,得到下图所示的
apk
文件。
   
   
   (2)将apk文件复制到android sdk对应platform-tools的目录下。例如,笔者的sdk路径为 D:\android\android-sdk-windows\platform-tools。如图所示
   
   (3)进行apk文件的安装(安装的前提是,已经启动并可以检测模拟器):有安装91助手或者豌豆的用户可以直接双击apk文件进行安装;也可以使用android下的adb命令进行安装(如下图所示,Success表示安装成功)。adb命令下安装apk文件的命令为:adb install 文件名.apk
   
    (4)安装好后,会在模拟器上看到应用程序的启动图标
         
    (5)安装好apk文件后,需要知道应用程序主Activity(第一个启动的Activity)所在的包名。这时,我们可以使用adb shell命令查找到程序主Activity所在的包名,如下图所示。(知道了apk的包名,我们也可以利用adb命令进行应用程序的卸载;卸载apk文件的命令为:adb uninstall 包名)
   
   (6)这里是最关键的一步,使用moneky命令进行自动化压力测试。
命令为:#monkey -p com.gewara -v 1000(参数说明:-p后跟着软件所在包名,-v后跟测试的次数)。这里对该软件进行1000次的自动化测试,几分钟内即可以完成测试。如图所示
        
   
  
        
  (7)测试完毕,发现程序出错了。程序出错,表明该软件的稳定性和健壮性还有待提高。
这时,可以打开Lotcat查看出错信息。如图所示
   
    五、
Monkey
测试的停止条件
   (1)如果先顶了
Monkey
运行在一个或几个特定的包上,那么它会检测试图转到它包的操作,并对其进行阻止;
   (2)如果应用程序崩溃或接收到任何失控异常,
Monkey
将停止并报错
   (3)如果应用程序产生了应用程序不响应(
application not responding
)的错误,
Monkey
将会停止并报错。
    通过多次并且不同设定下的
Monkey
测试才算它是一个稳定性和健壮性足够的程序。
    六、
Monkey
命令参数说明  
   随着测试的深入,我们需要忽略
App
的崩溃(
App
的崩溃会导致
Monkey
测试的停止),而不是停住,
monkey
同样能做到。
--ignore crashes
   甚至,它还能生成
profiling
报告。
--hprof
   注:
Monkey
具体参数的设定可参考:
   
   通过参数的设置,可以完成更多的调试功能,
Monkey
命令行参数中文相关说明见下表。

转载地址:http://hkjci.baihongyu.com/

你可能感兴趣的文章
春寒料峭,原来春天这样走近
查看>>
电脑坏了--关于联想笔记本声卡驱动
查看>>
C#中枚举类型在switch语句中值对照问题
查看>>
GridView中根据特殊标记设置不可编辑
查看>>
PowerDesinger中生成数据库时将域的内容转化为实际的字段
查看>>
通过模板将GridView导出为Excel
查看>>
迭代开发过程及一些原则
查看>>
Windows IIS服务器CA认证安装
查看>>
Asp.net 中Excel通过模板导出中发布问题
查看>>
64位机器配置CA认证一些小问题
查看>>
SVN自动完全备份
查看>>
开发中的Warning原来也很有用
查看>>
Silverlight Toolkit例子代码中缺少System.Windows.Controls.Samples.Common.dll的解决办法
查看>>
项目经理培训后的一点感概
查看>>
vc学习之窗口大小发生变更时使控件自动摆放到合适的位置
查看>>
Oracle 获取系统日期时间,导出数据库
查看>>
黄巢的菊花,非常喜欢,贴出来共享一下
查看>>
在光纤环网中的b/s与c/s的比对
查看>>
根据程序名称和程序路径判断程序是否启动
查看>>
史记翻译-汉初三杰-萧何-萧相国世家第二十三
查看>>