初窥门径-MonkeyRunner

作者: 城下秋草 | 来源:发表于2017-03-19 18:58 被阅读73次

前面的内容请参见Android应用自动化测试-提纲
这篇开始我们来看从Android早期版本的SDK中就自带的一个黑盒自动化测试工具-MonkeyRunner。虽然名字中也有Monkey,但是MonkeyRunner和Monkey基本没有太大关系。Monkey是运行在Adb shell中的,实际执行在设备本身。而MonkeyRunner则是通过PC端,由Android的API接口来控制设备,进行自动化测试的执行,其主要逻辑是在PC端完成的。
MonkeyRunner支持用Jython(Python脚本的java实现,语法和Python一致)脚本完成自动化测试脚本,可以实现Monkey工具无法提供的逻辑控制、校验等功能。

在Google的官网上有对MonkeyRunner的介绍,并提供了一个脚本示例,实现了应用的安装、启动并对启动后的界面完成截屏操作。

# Imports the monkeyrunner modules used by this program
from com.android.monkeyrunner import MonkeyRunner, MonkeyDevice

# Connects to the current device, returning a MonkeyDevice object
device = MonkeyRunner.waitForConnection()

# Installs the Android package. Notice that this method returns a boolean, so you can test
# to see if the installation worked.
device.installPackage('myproject/bin/MyApplication.apk')

# sets a variable with the package's internal name
package = 'com.example.android.myapplication'

# sets a variable with the name of an Activity in the package
activity = 'com.example.android.myapplication.MainActivity'

# sets the name of the component to start
runComponent = package + '/' + activity

# Runs the component
device.startActivity(component=runComponent)

# Presses the Menu button
device.press('KEYCODE_MENU', MonkeyDevice.DOWN_AND_UP)

# Takes a screenshot
result = device.takeSnapshot()

# Writes the screenshot to a file
result.writeToFile('myproject/shot1.png','png')

MonkeyRunner主要由三大模块组成:MonkeyRunner、MonkeyDevice、MonkeyImage

  • MonkeyRunner -- 包含一些通用的静态方法
  • MonkeyDevice -- MonkeyRunner可以控制的设备或模拟器的实体类,可以完成发送UI事件、获取设备信息、安装卸载运行应用等工作
  • MonkeyImage -- 图像处理类,可以获取当前设备屏幕并完成基本校验。

MonkeyRunner工具位于Android SDK的tools目录下,通过运行monkeyrunner.bat(Linux下monkeyrunner.sh)即可启动MonkeyRunner的交互界面:

>monkeyrunner
Jython 2.5.3 (2.5:c56500f08d34+, Aug 13 2012, 14:54:35)
[Java HotSpot(TM) 64-Bit Server VM (Oracle Corporation)] on java1.8.0_91
>>>


关于android自动化测试的更多实战操作演示参见慕课网实战课程 Android自动化测试实战 工具 框架 脚本

欢迎保留作者信息和出处进行转载,欢迎关注微信公众号:秋草说测试。 原创测试干货资源池


相关文章

  • 初窥门径-MonkeyRunner

    前面的内容请参见Android应用自动化测试-提纲。这篇开始我们来看从Android早期版本的SDK中就自带的一个...

  • 初窥门径

    阅读第二章节的感悟很矛盾,时而感觉自己get到作者的点,时而又很模糊。譬如一开始的部分 这也是我阅读中经常会掉进...

  • socat 初窥门径

    如果您的工具箱需要高级一款高级系统管理工具,那 socat[http://www.dest-unreach.org...

  • AQS --- 初窥门径

    AQS这个词你可能耳熟能详了,但是面试问道,可能又说不出个所以然来。别急少年,我一次奇遇偶得一本失传已久的武林秘籍...

  • 关于投资,你不可不知的50个真相

    来源| The Mortley Fool 作者| Morgan Housel 【导读】不论你是初窥投资门径的菜鸟,...

  • Redis初窥门径——简介/安装

    Redis 简介 Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库。 知识扩展...

  • 讲故事之道——初窥门径

    2019年,转眼之间,已经过了一大半。这一年,断断续续地写了一些故事。想法纷繁涌现,但诉诸笔端的,终究是少数。好看...

  • 初窥门径之JUnit源码分析

    1 源码分析流程 对于阅读源码有兴趣的同学,可以按以下步骤进行: 了解框架架构图 了解各包包含功能点 选择需要功能...

  • 第二章  初窥门径

    得益于此,焌永虽然只是在小镇上读书,但是传授他们只是的老师不一般。 “呼……” 在看完每天必看的书之后,焌永长呼了...

  • 武功的不同等级

    不堪一击、 初学乍练、 初窥门径、 略有小成、 驾轻就熟、 融会贯通、 炉火纯青、 出类拔萃、 神乎其技、 出神入...

网友评论

    本文标题:初窥门径-MonkeyRunner

    本文链接:https://www.haomeiwen.com/subject/iqcwbttx.html