1、压力测试和中断测试是移动测试中的重要部分。有了工具的帮助,移动测试员就能确定app可能存在的性能或稳定性方面的问题。具体参考:http://www.spasvo.com/news/html/20141112144940.html
2、有时候我们需要对一个软件进行压力测试,检查该软件的性能。如果是人工进行测试的话,效率会低很多,而且会比较枯燥。这时,Android中的一个命令行工具Monkey就可以为我们减轻很多重复而又繁琐的工作。
一、Monkey简介
至于Monkey的名字是有何而来的呢?这个没有去怎么考究,Monkey这个工具就是一个调皮的猴子,在App中乱按、乱摸、乱滚、乱跳。Monkey测试是Android平台下自动化测试的一种快速有效的手段,通过Monkey工具可以模拟用户触摸屏幕、滑动轨迹球、按键等操作来对模拟器或者手机设备上的软件进行压力测试,检测该软件的稳定性、健壮性。它的原理是向系统发送伪随机的用户事件流(如按键输入、触摸输入、手势输入等),实现对正在开发的应用程序进行压力测试。
二、Monkey的特性
(1)测试的对象仅为应用程序包(apk包),有一定的局限性;
(2)Monkey测试使用的事件流数据流是随机的,不能进行自定义;
(3)可对MonkeyTest的对象、事件数量、类型、频率等进行设置。
虽然Monkey工具并不完善,但是足于应付应用程序的基本测试需要了。如果需要功能更强大的测试工具的话,可以使用Monkey的进化版MonkeyRunner。如果把Monkey看作是幼儿园的小孩,那么它的进化版MonkeyRunner就可以看作是一个初中生了。它支持自定义插件,控制事件,随时截图,简而言之,任何你在模拟器/设备中能干的事情,MonkeyRunner都能干,而且还可以记录和回放。在这里,就不详细介绍MonkeyRunner了,具体可以参考其官方文档或者其他相关资料。
注:MonkeyRunner官方文档的网址
http://developer.android.com/guide/developing/tools/monkeyrunner_concepts.html
三、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进行测试。下载地址为: http://www.gewara.com/mobile/mobileMovie.xhtml。
下载好后,得到下图所示的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具体参数的设定可参考:
http://developer.android.com/guide/developing/tools/monkey.html
通过参数的设置,可以完成更多的调试功能,Monkey命令行参数中文相关说明见下表。
相关推荐
移动测试规范是软件测试领域中一个重要的组成部分,特别是在2007至2008年间,随着智能手机和平板电脑的兴起,移动应用测试的需求日益增长。这个时期的移动测试规范主要关注如何确保在不同设备、操作系统版本和网络...
在IT领域,鼠标移动测试是一项重要的用户体验和软件质量保证环节,它主要关注用户与计算机图形用户界面(GUI)之间的交互。这项测试确保鼠标在屏幕上移动时的流畅性、精确性和响应速度,因为这些因素直接影响到用户...
移动测试点总结,包括 代码 组件 专项 网页 性能 国际化 自动化 升级
大唐移动测试工程师笔经,可以看看那,是不错的选择,
### 创业公司移动测试体系:非常详细的移动测试点 #### 移动测试体系概览 创业公司在构建移动测试体系时,需要考虑诸多方面,包括但不限于功能测试、性能测试、兼容性测试、用户体验测试等。本文将从这些角度出发...
根据给定的文件信息,显然该文档的主题与移动测试手机开发无关,而是关于中国生物能源的发展现状与技术预见。然而,基于题目要求,我们将聚焦于移动测试手机开发相关的IT知识生成。 ### 移动测试手机开发相关知识点...
【移动测试】是本次大会的核心话题,这涵盖了在智能手机和平板电脑等移动设备上进行的应用程序和系统的测试过程。移动测试的重要性在于,由于移动设备的多样性(操作系统、硬件配置、屏幕尺寸、网络环境等),其测试...
移动测试项目书是针对移动应用或服务进行全面质量验证的详细规划文档,旨在确保在不同环境、设备和网络条件下的功能性和用户体验。以下是一些关键的知识点: 1. **测试计划**(附录4:测试计划.doc):测试计划是...
根据给定的信息,“2016年深圳移动测试岗位笔试题目”,我们可以推断出这份文档主要涉及的是2016年春季招聘期间,深圳移动针对测试岗位进行的笔试题目。以下将围绕这一主题展开,详细介绍可能包含的重要知识点,并对...
B-3-5+14AM+移动测试智能化:助力高品质App生态体系+PPT.pdf
移动测试软件快操说明书主要涉及的是使用CDS (Call Data Services) LTE测试软件对移动设备进行测试的操作流程,尤其强调了如何与采用高通LTE芯片的手机进行连接和配置。以下是对这些知识点的详细说明: 1. **软件主...
无线分布式移动云资源管理模式下的移动测试创新实践主要涵盖了移动测试中的资源管理、测试能力提升、测试方案构建效率提升以及线下发现问题效率的提升等方面。针对移动测试面临的测试资源瓶颈、测试方案复用性低、...
在电信行业中,移动测试架是一种重要的设备,它主要用于测试各种通信设备、网络组件以及软件功能,确保它们在实际运行环境中能够稳定、高效地工作。移动测试架的设计与应用是通信技术发展的重要一环,它可以帮助...
标题中的“电信设备-一种可移动测试探针的测试治具”揭示了这个资料包主要涉及的是电信设备的测试技术,特别是使用可移动测试探针的测试治具。这种治具是电子工程和电信领域中用于检测和验证设备性能的重要工具。 ...
《GSM网络移动测试系统的设计》一文详细探讨了如何构建一套基于SAGEM OT 35G手机和GPS的GSM测试系统,利用VB5.0编程语言编写测试软件,以实现对GSM网络的优化。随着GSM移动通信的迅速发展,网络优化成为提升通信质量...
移动测试框架是现代软件开发中的重要组成部分,尤其是在移动应用日益普及的今天。本文主要探讨了在移动应用测试领域中的几个关键知识点,包括敏捷测试、自动化测试框架以及全栈测试的概念。 首先,敏捷测试是一种...
【中国移动测试网络工具】是一款专为中国移动用户设计的网络诊断工具,主要应用于CRM(Customer Relationship Management,客户关系管理)领域,旨在帮助用户检测和优化网络连接,确保与Baidu、Google等重要网站的...
在无线分布式移动云资源管理模式下,移动测试的创新实践涵盖了多个关键领域,这些领域共同构成了一个高效、灵活且适应性强的测试解决方案。这种模式利用云计算的可扩展性和分布式架构,为移动应用测试提供了新的视角...