python使用monkeyrunner对录制脚本进行回放脚本

Android SDK与Python环境配置完毕,调用MonkeyRunner的MonkeyRecorder与MonkeyRunner接口启动脚本录制工具,脚本我命名为app_playback.py,把编写的脚本放在Android SDK安装目录下面的\tools目录下,与monkeyrunner.bat在同一级目录下:

#coding=utf8
#需要用到命令行参数列表因此导入sys
import sys  
#导入monkeyrunner用来操作设备
from com.android.monkeyrunner import MonkeyRunner   
#窗念一个命令哈希表,定义操作事件
CMD_MAP = {  
    'TOUCH': lambda device, arg: device.touch(**arg),  
    'DRAG': lambda device, arg: device.drag(**arg),  
    'PRESS': lambda device, arg: device.press(**arg),  
    'TYPE': lambda device, arg: device.type(**arg),  
    'WAIT': lambda device, arg: MonkeyRunner.sleep(**arg)  
    }  
#处理录制脚本文件
#定义两个参数:
#scriptfile----录制脚本的文件名
#device--------当前设备
def process_file(scriptfile, device):  
	#读取文件信息
    for line in scriptfile:  
		#文件以|进行分割
		#把命令放入cmd中
		#把命令操作之后的信息存入rest中
        (cmd, rest) = line.split('|')  
        try:  
            #将字符串rest当成有效的表达式来求值并返回计算结果
            rest = eval(rest)  
        except:  
            print 'unable to parse options'  
            continue
        #判断命令是否在	CMD_MAP中
        if cmd not in CMD_MAP:  
            print 'unknown command: ' + cmd  
            continue 
        #回放脚本中命令操作			
        CMD_MAP[cmd](device, rest)  
def main(): 
    #在命令行输入例如:
	#monkeyrunner app_playback "文件名[可以带有路径]"
    file = sys.argv[1]  
	#打开录制脚本
    scriptfile = open(file, 'r') 
	#对连接的对象创建一个对象
    device = MonkeyRunner.waitForConnection()  
    #调用回放函数,对脚本进行回放	
    process_file(scriptfile, device) 
	#关闭脚本文件
    scriptfile.close();  
#判断是否作为运行程序
#如果是运行main函数	
if __name__ == '__main__':  
    main()  

命令执行状态,如果第一次执行脚本时,会准备monkeyrunner与python环境,我执行命名如下:

python使用monkeyrunner对录制脚本进行回放脚本_第1张图片


上面一大坨是用于演示,首次执行脚本时候的操作;
执行成功后再次执行相同的命令,如果没有错误,说明脚本执行成功,你可以看到手机上的app被打开

你可能感兴趣的:(MonkeyRunner,WEL测试)