Android测试之Monkey Runner

什么是MonkeyRunner

monkeyrunner是Android sdk中自带的一个通过接收测试脚本(使用python语言编写的)来执行功能性测试的工具。

MonkeyRunner的使用

步骤一:启动MonkeyRecorder,在Android sdk的tools\bin目录下新建monkey_record.py将如下代码拷贝进去。

from com.android.monkeyrunner import MonkeyRunner as mr
from com.android.monkeyrunner.recorder import MonkeyRecorder as recorder
device = mr.waitForConnection()
recorder.start(device)

步骤二:打开cmd进入Android sdk的tools\bin目录下执行如下操作

Android测试之Monkey Runner_第1张图片

步骤四:进行录制

Android测试之Monkey Runner_第2张图片
  • wait: 用来插入下一次操作的时间间隔,点击后即可设置时间,单位是秒
  • Press a Button:用来确定需要点击的按钮,包括menu、home、search,以及对按钮的press、down、up属性
  • Type Something:用来输入内容到输入框
  • Fling:用来进行拖动操作,可以向上、下、左、右,以及操作的范围
  • Export Actions:用来导出脚本,不需要后缀名,也可以添加后缀名.mr
  • Refresh Display:用来刷新手机界面,估计只有在断开手机后,重新连接时才会用到

步骤五:编写用来运行录制的脚本的脚本,需要我们在Android sdk的tools\bin新建一个文件monkey_playback.py并将如下代码拷贝进去用来运行脚本。

import sys
from com.android.monkeyrunner import MonkeyRunner

CMD_MAP = {  
   "TOUCH": lambda dev, arg: dev.touch(**arg),  
   "DRAG": lambda dev, arg: dev.drag(**arg),  
   "PRESS": lambda dev, arg: dev.press(**arg),  
   "TYPE": lambda dev, arg: dev.type(**arg),  
   "WAIT": lambda dev, arg: MonkeyRunner.sleep(**arg)  
   }  
 
#Process a single file for the specified device.  
def process_file(fp, device):  
   for line in fp:  
       (cmd, rest) = line.split("|")  
       try:  
           rest = eval(rest)  
       except:  
           print ("unable to parse options")  
           continue  
 
       if cmd not in CMD_MAP:  
           print ("unknown command: " + cmd) 
           continue  
 
       CMD_MAP[cmd](device, rest)  
 
 
def main():  
   file = sys.argv[1]  
   fp = open(file, "r")  
 
   device = MonkeyRunner.waitForConnection()  
     
   process_file(fp, device)  
   fp.close();  
     
 
if __name__ == "__main__":  
   main()

monkey_playback.py

步骤六:运行脚本,回放完成

# 在cmd命令行中输入命令:
monkeyrunner monkey_playback.py test.mr

补充:在运行monkeyrunner的时候可能会提示SWT folder '..\framework\x86_64' does not exist. Please set ANDROID_SWT to point to the folder conta,这需要我们对monkeyrunner.bat进行修改。

1).set frameworkdir=lib (纠正)==》set frameworkdir=..\lib

2).Dcom.android.monkeyrunner.bindir=..\framework -jar %jarpath% %* (纠正)==》Dcom.android.monkeyrunner.bindir=....\platform-tools -jar %jarpath% %*

个人博客:https://myml666.github.io

你可能感兴趣的:(Android测试之Monkey Runner)