MonkeyRunner入门

来源:互联网 发布:如何进入淘宝卖家后台 编辑:程序博客网 时间:2024/06/05 08:30

转自:http://blog.csdn.net/rtczl/article/details/8216961 

monkeyrunner是SDK自带的一个自动化测试工具。官方介绍可以做功能测试和回归测试,但是在使用过程中我发现做功能测试比较困难,不过在回归测试中可以替代一部分手动测试。这篇文章仅作入门参考,后续我会讲一些比较深入的东西。

        使用monkeyrunner前,需要安装和配置JDK、SDK和Python。在配置SDK环境变量的时候把monkeyrunner.bat所在目录加进去,这样方便在cmd窗口直接启动monkeyrunner,我电脑上的目录为C:\Program Files\Android\android-sdk-windows\tools。另外Python目前官网上有两个版本2.7.3和3.3.0,这里我推荐用2.7.3,相对成熟一些。

        monkeyrunner可以操控手机或者模拟器,模拟器本身运行就很慢,因此有条件的话还是推荐使用手机。我这里使用的是Motorola XT889,手机打开调试模式、连接电脑、安装驱动,然后就可以开始了。

        1、启动monkeyrunner:启动cmd窗口,输入monkeyrunner,出现如下所示说明monkeyrunner已经启动。

C:\Documents and Settings\Administrator>monkeyrunner
Jython 2.5.0 (Release_2_5_0:6476, Jun 16 2009, 13:33:26)
[Java HotSpot(TM) Client VM (Oracle Corporation)] on java1.7.0_07
>>>

        2、导入模块:导入monkeyrunner需要使用的模块,输入from com.android.monkeyrunner import MonkeyRunner,MonkeyDevice,MonkeyImage。

        3、连接手机:输入XT889=MonkeyRunner.waitForConnection(10)。10代表等待时间为10秒,可以不写,不写代表永远等待。此方法可以带第二个参数,该参数指定手机或者模拟器的名称,对于有多个设备连接电脑时,想操控其中某一台设备时适用。

        4、安装软件:以安装天翼空间为例,apk文件名称为estore.apk,路径为D:\MonkeyRunnerDemo\Apps\,那么我们输入XT889.installPackage("D:\\MonkeyRunnerDemo\\Apps\\estore.apk"),如果安装成功会返回True,并打印到屏幕上。

        5、启动软件:输入XT889.startActivity(component="com.eshore.ezone/com.eshore.ezone.StartActivity"),“/”前为package名称,后面为activity名称,给component赋的值也可以简写为"com.eshore.ezone/.StartActivity"。

        6、模拟键盘操作:输入XT889.press("KEYCODE_BACK",XT889.DOWN_AND_UP),monkeyrunner会模拟按返回键,第一个参数为Key Event,即键盘事件,详见:http://developer.android.com/reference/android/view/KeyEvent.html,第二个参数为MonkeyDevice类的字段,DOWN_AND_UP代表按下并松开,DOWN代表按下,UP代表松开。当然也可以进行touch、drag等模拟用户事件,可以自己试试,这里就不一一讲解了。

        7、截图:monkeyrunner主要使用截图对比的方式进行检查测试点,后续我会讲到使用控件ID等方式检查。输入result=XT889.takeSnapshot(),此步骤是获取实例,并未生成文件,需要再输入result.writeToFile("D:\\MonkeyRunnerDemo\\Images\\Image01.png","png"),第一个参数为生成文件的全路径,第二个参数为文件类型,可以不写。如果生成文件成功会返回True,并打印到屏幕上。

        上面是通过命令行逐行输入命令实现monkeyrunner操控设备,但是这样就违背了自动化测试的初衷。下面就介绍使用Python脚本执行自动化测试的方法。其实很简单,就是将命令行需要输入的代码写到一个Python文件就OK。下面是Python脚本的代码:

[python] view plaincopy
  1. from com.android.monkeyrunner import MonkeyRunner,MonkeyDevice,MonkeyImage  
  2.   
  3. XT889=MonkeyRunner.waitForConnection(10)  
  4. XT889.installPackage("D:\\MonkeyRunnerDemo\\Apps\\estore.apk")  
  5. XT889.startActivity(component="com.eshore.ezone/.StartActivity")  
  6. XT889.press("KEYCODE_BACK",XT889.DOWN_AND_UP)  
  7. result=XT889.takeSnapshot()  
  8. result.writeToFile("D:\\MonkeyRunnerDemo\\Images\\Image01.png")  
  9. print("OK!")  

        把以上代码命名为test.py,放在D:\MonkeyRunnerDemo\Scripts\路径,在cmd窗口直接执行monkeyrunner D:\MonkeyRunnerDemo\Scripts\test.py就能实现自动化测试了。需要说明的是所有路径必须存在,monkeyrunner不能自动生成文件夹。另外在Python脚本中可以尽情发挥Python的功能,比如加入打印、流程控制等等语句。这些我以后会讲到的。

原创粉丝点击