如何控制monkeyrunner视频教程回放或某个动作执行的次数?

android自动化测试monkeyrunner学习_中华文本库
第1页/共5页
文本预览:
monkeyrunner 自动化测试简介
概述 monkeyrunner 工具提供一个 API 来控制 Android 设备。可以写一个 python 脚本来安 装应用,运行应用,发送键值,截图。monkeyrunner 对 python 进行了封装,加入了一 些针对 Android 设备的类。可以完全用 python 脚本来实现这些功能。 monkeyrunner 工具的使用: monkeyrunner 工具有三个类: 1. MonkeyDevice 2. MonkeyImage 3. MonkeyRunner
MonkeyDevice:可以实现应用安装、卸载,按键、触击、拖拽,Activity 的启动,输入 等操作。
按键: press(‘按键值’, 动作) 按键值为 Andriod 键值表中有的值: /reference/android/view/KeyEvent.html 动作:DOWN, UP, DOWN_AND_UP。大部分时间用 DOWN_AND_UP 来模拟按键、松 手的过程。比如要进行一个返回键操作: device.press('KEYCODE_BACK', MonkeyDevice.DOWN_AND_UP) 手指触击: touch(x 坐标, y 坐标,动作) 这里的坐标值要通过 hierarchyviewer 工具来获取,动作同上。
拖拽/滑动: drag((x, y),(x, y),持续时间,轨迹点) 第一组是起始坐标, 第二组终点坐标。 这里的坐标值要通过 hierarchyviewer 工具来获取, 轨迹点类似采样。
shell: shell(‘string’)
这里可以输入 adb shell 命令,是对 monkeyrunner 的有效拓展,利用 shell 方法,可以 进行 am 操作。
启动 Activity: startActivity(‘string’) MonkeyDevice 的其他方法参照 google 官方。 MonkeyRunner: 这里只介绍延时操作 sleep(float seconds) MonkeyRunner.sleep(5.0) /延时 5 秒钟,再继续进行后续操作。 MonkeyImage: 对 Android 设备截图,对截图的处理。用来生成测试结果。
我了解目前 android SDK 里自带的现成的测试工具有 monkey 和 monkeyrunner 两个。大家别看这俩兄 弟名字相像,但其实是完完全全不同的两个工具,应用在不同的测试领域。总的来说,monkey 主要应用 在压力和可靠性测试上,运行该命令可以随机地向目标程序发送各种模拟键盘事件流,并且可以自己定义 发送的次数,以此观察被测应用程序的稳定性和可靠性,应用起来也比较简单,记住那几个命令就行了。 而 monkeyrunner 呢,相比之下会强大一些,它主要可应用于功能测试,回归测试,并且可以自定义测试 扩展,灵活性较强,并且测试人员可以完全控制。 好了,废话不多说,我们直接进入主题吧。之所以想把这个过程写下来,是由于经过我这段时间在网上的 搜索和学习,发现关于 monkeyrunner 的教程极少,几乎都是把 android 官方材料自己翻译了一下摆上去 的,对于第一次接触的同学来说,可能还不太详细。我在这里就想以完全初学者的角度出来,真正从 0 开 始,记录我的学习过程。本文仅针对真正的菜鸟,大虾们请飘过哈,嘿嘿。 要使用 Monkeyr
第1页/共5页
寻找更多 ""的原创经验被浏览,获得 ¥0.005 收益
的原创经验被浏览,获得 ¥0.001 收益
的原创经验被浏览,获得 ¥0.001 收益
的原创经验被浏览,获得 ¥0.005 收益
的原创经验被浏览,获得 ¥0.005 收益
的原创经验被浏览,获得 ¥0.001 收益
的原创经验被浏览,获得 ¥0.005 收益
的原创经验被浏览,获得 ¥0.005 收益
的原创经验被浏览,获得 ¥0.005 收益
的原创经验被浏览,获得 ¥0.005 收益
的原创经验被浏览,获得 ¥0.001 收益
的原创经验被浏览,获得 ¥0.001 收益
的原创经验被浏览,获得 ¥0.001 收益
的原创经验被浏览,获得 ¥0.001 收益
的原创经验被浏览,获得 ¥0.005 收益
的原创经验被浏览,获得 ¥0.001 收益
的原创经验被浏览,获得 ¥0.005 收益
的原创经验被浏览,获得 ¥0.001 收益
的原创经验被浏览,获得 ¥0.001 收益
的原创经验被浏览,获得 ¥0.005 收益
的原创经验被浏览,获得 ¥0.001 收益
的原创经验被浏览,获得 ¥0.001 收益
的原创经验被浏览,获得 ¥0.001 收益
的原创经验被浏览,获得 ¥0.005 收益monkey和monkeyrunner and robotium_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
评价文档:
3页2下载券2页免费5页免费7页免费28页2下载券4页免费2页免费2页免费1页免费
喜欢此文档的还喜欢24页1下载券10页免费16页免费3页免费10页1下载券
monkey和monkeyrunner and robotium|
把文档贴到Blog、BBS或个人站等:
普通尺寸(450*500pix)
较大尺寸(630*500pix)
你可能喜欢论文发表、论文指导
周一至周五
9:00&22:00
浅析Android应用软件的黑盒测试方法
&&&&&&本期共收录文章20篇
  【摘 要】本文首先介绍了软件测试中黑盒测试的基本概念;然后结合当前Android应用软件开发过程中,大量的软件界面和软件功能方面的测试需求,简单讨论了几种常用的黑盒测试工具能够在测试中起到的作用;最后,以Robotium为例,Android官方的ApiDemos作为测试对象,编写了一个测试程序来说明如何通过测试工具实现自动化的黑盒测试。 中国论文网 /8/view-4135559.htm  【关键词】黑盒测试;Robotium;Android应用软件   1. 引言   Android,是一个以Linux为基础,主要用于移动设备的开源智能系统。和iOS并列为当今最为主流的智能终端的操作系统,随着Android设备用户群的直线增长,相关应用也随着迅猛增长。据谷歌官方预计,到2013年6月安卓应用数量将有可能突破100万。如何通过测试保证这些应用的质量、如何能够高效的完成测试以保证应用的上市时间,是所有开发团队面临的首要问题。显然,只采用人工逐个功能测试是效率很低的,并且还有诸多限制。所以利用测试工具进行自动化测试是必然趋势。   2.黑盒测试   黑盒测试又称功能测试、数据驱动测试,是把测试对象当作一个黑盒子,只需要根据软件产品的需求规格说明和用户手册等进行测试。因为黑盒测试不要求测试人员具备较高的软件开发能力,所以本文将从黑盒测试方面分析,如何实现Android应用的自动化黑盒测试。   3.黑盒测试在Android系统上的应用现状   Android 平台黑盒测试比较常用的测试工具有Monkey、MonkeyRunner、Robotium。   Monkey是Android自带的一个命令行工具,可以运行在模拟器里或实际设备中,主要应用在压力测试和可靠性测试方面。Monkey运行时,向系统发送伪随机的用户事件流(模拟用户的按键输入、手势输入、触屏输入等),通过设置测试对象的测试次数、频率、测试类型,实现对应用程序进行压力测试。 Monkey需要测试人员可以使用adb Shell命令,测试使用的事件流是随机的,不能进行自定义,具有一定的局限性。   MonkeyRunner是Android SDK自带的一个测试工具,主要应用在功能测试和回归测试。它提供了一个API,使用此API写出的程序可以在代码之外控制Android设备和模拟器。使用者可以写出一个Python程序去安装/卸载一个应用,运行应用,截屏,比对图片来判断特定命令执行后的结果是否包含预期信息,以及执行应用的测试包。上手相对复杂一些,并且对测试人员要求有Python语言的编程基础。   Robotium是一个测试框架,能够很方便的为Android 应用程序编写强大、健壮的自动化黑盒测试用例,可以应用在功能测试、系统测试和验收测试,可以横跨多个Activities。它 支持Activities、Dialogs、Toasts、Menus 、Context Menus。用法很简单,并且测试功能非常强大,能够模仿普通用户行为,可以把一些原来由测试工程师做的手工测试变成自动化实现。   Robotium工具主要有以下特点:   (1)使用非常容易,需要较少的相关知识就可以设计功能强大的测试案例;   (2)有源代码时,可以对代码进行白盒测试;   (3)没有源代码时,可以直接对APK进行黑盒测试;   (4)测试用例的开发设计简单,短时间内就可以写出需求的测试用例;   (5)测试案例容易理解,可读性高;   (6)测试用例自动执行,执行速度快,可以自动处理多个Activities;   (7)基于Android默认的框架可以回退;   (8)多种控件的支持,多种测试阶段的支持;   (9)可以和Maven、Ant平滑集成,易于持续集成。   基于以上优势,本文着重分析一下如何利用Robotium进行自动化黑盒测试。   4. Robotium工具简介   Robotium的整个框架层次十分清晰,Solo作为对外公开的唯一的类,提供了用户所要使用的所有方法,主要方法如下:   (1)ActivityUtils类:所有和Activity相关的方法都包含在该类里面;   (2)Clicker类:包含各种点击方法 ;   (3)Getter类:主要包含取得view方法;   (4)Scroller类:包含各个方向的滚动事件和拖拽事件;   (5)Searcher类:包含各种检索方法;   (6)Sender类:发送按键、上下左右键和返回;   (7)TextEnterer类:提供文本框输入内容的方法。   5. Robotium应用实践   针对Android APK,如何使用Robotium进行黑盒测试?下面本文将结合实际的应用进行分析。   测试准备:   官方Api示例工程:ApiDemos   (1)ADT Bundle for Windows   (2)robotium-solo-4.0.jar   5.1测试主要步骤一:创建测试工程   在Eclipse 中新建测试工程,选择工程[ApiDemos]作为测试目标。   将robotium-solo-4.0.jar导入库,并且在[Order and Expor]中选中。   5.2测试主要步骤二:编写测试代码   (1)新建类:ApiDemosTest。   (2)添加测试框架代码(示例)   5.3测试主要步骤三:执行测试   启动虚拟机,版本建议2.3以上,运行JUnit Test,执行结果如下图:   该测试简单验证了控件的查找和点击,画面之间的迁移。用例使用了一些常用的方法:searchText、clickLongOnText等。   6.总结   自动化黑盒测试是一种高效、快捷、可靠的软件测试方法,如何能够把自动化黑盒测试和Android平台无缝的结合起来具有非常重要的现实意义。通过本文的示例也能看出,基于自动化测试工具,只需要编写很小量的测试代码就能实现较复杂的UI确认和动作确认。希望本文能起到抛砖引玉的作用,可以引导开发和测试人员更加深入的研究、发掘、完善自动化黑盒测试相关的技术和工具,以便能够大大提高Android应用的质量。   参考文献:   [1]黎连业,王华,李龙,黎照,李淑春.软件测试技术与测试实训教程.北京:机械工业出版社,2012.   [2]徐芳.软件测试技术.北京:机械工业出版社,2012.   [3] 杨怡君,黄大庆. Android手机自动化性能测试工具的研究与开发. 计算机应用, 2012 , 32( 2) : 554 - 556.
转载请注明来源。原文地址:
【xzbu】郑重声明:本网站资源、信息来源于网络,完全免费共享,仅供学习和研究使用,版权和著作权归原作者所有,如有不愿意被转载的情况,请通知我们删除已转载的信息。
xzbu发布此信息目的在于传播更多信息,与本网站立场无关。xzbu不保证该信息(包括但不限于文字、数据及图表)准确性、真实性、完整性等。7144人阅读
一、D:\android\android-sdk-windows\tools目录中没有adb.exe
检查一下你的android-sdk-windows目录下有没有platform-tools目录。并检查访目录下是否有adb.exe
二、在cmd中执行“adb shell”,则提示“error: device not found”
没有发现设备。如果用手机设备测试,请用USB数据线与电脑连接,同时并安装好手机驱动;如果你采用模拟器测试,你应该先启动eclipse,然后设置好模拟器,并进入模拟器测试状态,如下图所示
三、执行“adb shell”,提示“error: more than one device and emulator”
第一种情况:确实用多个设备或者模拟器
错误说明是有一个以上的设备和仿真器。这是因为我启用了模拟器,同时我也将我的手机通过USB线连接到了电脑。所以这里存在两个设备。这种情况下,需要指定连接某一个设备或者模拟器。
1、获取模拟器或设备列表
命令:adb devices
效果如下图所示:
2、指定device来执行adb shell
命令:adb -s devicename shell
在多个device的时候,执行adb命令一般都需要用参数-s指定device。
例如卸载emulator-5554上的包com.soft.camera,命令如下
adb -s emulator-5554 uninstall com.soft.camera
例如通过monkey测试
adb -s emulator-5554 shell monkey -v -p
第二种情况:确实有一个设备或者模拟器
之所以显示有多个,是因为此设备用过两次。使用命令 adb devices 会看到这个设备有两种状:offline 和 device,有以下两种解决办法:
1、重启adb.exe服务
一般办法:在命令窗口输入 adb start-server 重新启动adb.exe服务
2、终极方法,结束adb进程
如果上述方法不可以,终极方法:打开任务栏,选择“进程”选项卡,找到adb.exe进程,结束之,重新启动就完事OK啦(或者在命令窗口输入命令
adb kill-server )
四、在手机上通过monkey测试
在cmd中输入:adb -s HT21JV204550 shell monkey -v -p
出现:No activities found to run, monkey aborted.
原因:起初我是通过模拟环境测试,Eclipse设置如下:
通过手机测试,应该将“Target”选项卡中由原来的“Automatic”项改为“Manual”,如下图所示:
然后选择“Target”选项卡的前面一个选项卡“Android”,点击下面的“Run”。执行Run后结果如下:
点击OK,程序会将APK写入手机,这时就可以在cmd中输入命令:adb -s HT21JV204550 shell monkey -v -p
500 ,通过在真实手机环境下进行测试了。
五、关于monkey命令简要概述
一、九个事件及百分比控制
1、九个事件
--pct-touch &percent&
调整触摸事件的百分比(触摸事件是一个down-up事件,它发生在屏幕上的某单一位置)(——点击事件,涉及down、up)
--pct-motion &percent&
调整动作事件的百分比(动作事件由屏幕上某处的一个down事件、一系列的伪随机事件和一个up事件组成) (——注:move事件,涉及down、up、move三个事件)
--pct-trackball &percent&
调整轨迹事件的百分比(轨迹事件由一个或几个随机的移动组成,有时还伴随有点击)--(轨迹球)
--pct-nav &percent&
调整“基本”导航事件的百分比(导航事件由来自方向输入设备的up/down/left/right组成)
--pct-majornav &percent&
调整“主要”导航事件的百分比(这些导航事件通常引发图形界面中的动作,如:5-way键盘的中间按键、回退按键、菜单按键)
--pct-syskeys &percent&
调整“系统”按键事件的百分比(这些按键通常被保留,由系统使用,如Home、Back、Start Call、End Call及音量控制键)
--pct-appswitch &percent&
调整启动Activity的百分比。在随机间隔里,Monkey将执行一个startActivity()调用,作为最大程度覆盖包中全部Activity的一种方法。(从一个Activity跳转到另一个Activity)
--pct-flip &percent&
调整“键盘翻转”事件的百分比。
--pct-anyevent &percent&
调整其它类型事件的百分比。它包罗了所有其它类型的事件,如:按键、其它不常用的设备按钮、等等。
红色的数字对应下面百分比对应的数字。比如下图中0:15.0%,表示分配--pct-touch事件15%。测试100次分配15次测试down-up。
2、百分比控制
如果在monkey参数中不指定上述参数,这些动作都是随机分配的,9个动作其每个动作分配的百分比之和为100%,我们可以通过添加命令选项来控制每个事件的百分比,进而可以将操作限制在一定的范围内。
我们先来看一下不加动作百分比控制,系统默认分配事件百分比的情况
命令:adb shell monkey -v -p
再看一下指定事件,控制事件百分比之后的情况
命令:adb shell monkey -v -p
--pct-anyevent 100 500
说明:--pct-anyevent 100 表明pct-anyevent所代表的事件的百分比为100%。
二、约束限制及确定对应包名
1、约束限制
-p &allowed-package-name&
1个 -p 选项只能用于一个包。指定多个包,需要使用多个
2、确定测试包名
利用monkey测试,通过-p参数确定应用程序在Emulator中所对应的包名。步骤如下:
a、在Eclipse中打开欲测试的项目,并在模拟器中执行。此时,他的APK应该加载到了Emulator(译:仿真器、模拟器)上(
也可以通过命令模式打开模拟器、安装、删除apk
启动模拟器:emulator -avd test test为模拟器名称
安装:adb install c:/xxx.apk
删除:adb uninstall apk的包名&
b、在命令行输入命令:adb shell
c、应用程序包都在data目录中的data目录下,我们输入命令:cd data/data 进入目标data文件夹,在执行命令:ls,可找到刚才加载项目的应用程序包。如下图所示:
找到对应的包名后,就可以通过monkey命令来进行测试了。例如:adb shell monkey -v -p
随便说一下,最后的500,表示测试触发500个事件(500个事件要按比例分摊到9个事件当中,如何指定不同的事件比例上面已经说过了)。
如果在事件之间插入延时,使用参数:--throttle 5000 这里的5000为毫秒单位。通过这个选项,可以降低monkey的执行速度;如果不指定该选项,Monkey将不会被延迟,事件将尽可能快的被产生。
-s &seed& 伪随机数生成器的seed值。如果用相同的seed值再次运行monkey,它将生成相同的事件序列,对9个事件分配相同的百分比。
-v 命令行的每一个-v将增加反馈信息的级别。
至于其它的一些参数,就百度一下吧,暂时先写到这里。
六、在monkey测试中常用的命令组合有
1、monkey -p com.yourpackage -v 500 简单的输出测试的信息。
2、monkey -p com.yourpackage -v -v -v 500& 以深度为三级输出测试信息。
3、monkey -p com.yourpackage --port 端口号 -v 为测试分配一个专用的端口号,不过这个命令只能输出跳转的信息及有错误时输出信息。
4、monkey -p com.yourpackage -s 数字 -v 500 为随机数的事件序列定一个值,若出现问题下次可以重复同样的系列进行排错。
5、monkey -p com.yourpackage -v --throttle
为每一次执行一次有效的事件后休眠3000毫秒。
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:498151次
积分:5828
积分:5828
排名:第1459名
原创:129篇
转载:46篇
评论:75条
(1)(3)(10)(15)(13)(5)(3)(30)(67)(28)

我要回帖

更多关于 monkeyrunner教程 的文章

 

随机推荐