微信号:grzlwx

介绍:光荣之路官方资讯

【Android测试】MonkeyRunner的初识(一)

2015-11-04 21:01 carter_d

吴老的《selenium webdriver 实战宝典》出版了!

  不得不说两句,过了这么久才再次更新博客,主要原因是工作太忙,而且刚好又参与了很多业余活动,因此基本没时间去写,不过我还是决定坚持把我要写的东西全部写完,希望能够帮助到刚刚入门的测试者们。

前言


  本节讲解的内容是monkeyrunner,monkeyrunner和monkey同样都是谷歌研发的测试工具,相比monkey用来做压力测试而言,monkeyrunner更偏重于点触式的UI自动化内容,接下来我们看看详细的内容。

  同样附上文档地址,如果实在不愿意阅读,那就先看博客吧。http://www.android-doc.com/tools/help/monkeyrunner_concepts.html

简介


  monkeyrunner工具提供了API,使用这个API你可以通过写Android代码之外的程序来操作控制Android设备的。通过monkeyrunner,你可以通过写一个Python的程序来安装一个Android应用程序、运行该程序,给该程序发送键盘事件,截屏并且将截屏的内容保存在工作站中(workstation)。

  monkeyrunner这个工具设计的主要目的是进行功能测试/franmework层的测试,或者用于单元测试套件(unit test suites),当然你也可以自由的使用它的其他用途。

  monkeyrunner和money没有什么直接的关系,monkey是在设备的直接运行adb shell命令来生成随机了事件来进行测试的。相比较而言,monkeyrunner则是通过API发送特定的命令和事件通过工作站来控制设备。

特性


  monkeyrunner为Android测试提供了以下特性:

  多设备控制:monkeyrunner的API可以跨多个设备实施测试套件。你可以同时连接所有的设备或一次启动全部模拟器,依据程序依次连接到每一个,然后运行一个或多个测试。您也可以用程序启动一个配置好的模拟器,运行一个或多个测试,然后关闭它。

  功能测试:monkeyrunner可以自动的启动Android程序直到完成测试,这期间你可以提供输入值和键盘操作已经触摸事件,然后通过截图来查看结果。

  回归测试(Regression testing ):monkeyrunner可以运行一个程序,将输出的截图与正确的结果截图相比较,依次来测试程序的稳定性。

  可扩展的自动化(Extensible automation):因为monkeyrunner是一个API工具包,你可以开发基于Python模块的整个系统来控制Android设备。除了使 用monkeyrunner API本身,你还可以使用标准的Python OS和子模块的调用Android的工具,例如ADB。

  monkeyrunner工具用的语言是Jython,使用Java编程语言实现的Python。Jython 运行monkeyrunner的API和Android的框架可以非常便捷的进行交互,使用Jython,你可以使用Python语法来访问常量,类和API的方法。

实例


  这里我重新给个例子吧 谷歌给的有点不太直观 。 我们以QQ为例。

  1、进入到 ..\sdk\tools 的目录下,运行monkeyrunner

  2、引入monkeyrunner的包,输入 "from com.android.monkeyrunner import MonkeyRunner, MonkeyDevice" 敲回车

  3、确保qq是关闭的,先运行“device = MonkeyRunner.waitForConnection()”,

  再运行 “device.startActivity(component="com.tencent.mobileqq/com.tencent.mobileqq.activity.SplashActivity") ”,此时可以看到qq被唤起了

  4、模拟按下“菜单键” ,运行“device.press('KEYCODE_MENU', MonkeyDevice.DOWN_AND_UP)”

  5、截图,然后再把它保存到起来。

  6、去C盘下去看截图内容:

  这就是monkeyrunner最简单的命令行的方式来实现启动App,点击事件和截屏操作。(未完待续)

(作者:carter_dream 来源:http://www.cnblogs.com/by-dream/p/4836815.html)


 
            
 
            
 
            
 
           
 
           
 
           
 
           
 
           
 
           
 
           
 
           
 
           
 
           

感谢作者,传播测试知识、技能与正能量!
分享测试生活,思考测试人生!欢迎来稿735821166@qq.com

光荣之路软件测试培训

官网:http://www.gloryroad.cn/

微信公众号:gloryroadtrain

性能测试QQ群:415987441
软件测试招聘QQ群: 203715128
自动化3群QQ: 371211499

 
光荣之路 更多文章 今天晚上的 linux 公开课- Awk 编程 7月28日(今天)晚上的 linux 公开课- shell编程 8月4日(今天)晚上的 linux 公开课- shell编程 9月1日(本周一)晚8点半,光荣之路Web自动化系列基础课—javascript第二讲 推荐本好书《与机器赛跑》
猜您喜欢 C#中传递参数到线程的N个方法 为WeTest加油,重磅大奖,给最爱WeTest的人 云计算的第二个十年 -- IT 行业的新变化 上线事故千万种,哪种让你最抓狂? 如何选择入行语言