录制与回放
- 连接手机(打开文件传输)或者是打开模拟器
- cmd进入安装sdk的AndroidSDK\Android_SDK_windows\tools目录下
- 执行monkeyrunner recorder.py
recoder.py脚本内容
from com.android.monkeyrunner import MonkeyRunner as m
from com.android.monkeyrunner.recorder import MonkeyRecorder as Re
device=m.waitForConnection()
Re.start(device)
- 在monkeyrecorder中进行用例操作,然后导出(Export Actions),保存为py文件
- 再执行monkeyrunner recorder_palyback.py 之前录制脚本名
recorder_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:
# Parse the pydict
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()
自己编写脚本
#coding=utf-8
from com.android.monkeyrunner import MonkeyRunner,MonkeyDevice,MonkeyImage
device = MonkeyRunner.waitForConnection() #等待设备连接,可设置参数如:MonkeyRunner.waitForConnection(10,'emulator-5554')--等待时长与设备序列号
device.press('KEYCODE_HOME',MonkeyDevice.DOWN_AND_UP) #按HOME键
#device.reboot() #设备重启
MonkeyRunner.sleep(3) #等待3秒
#device.wake() #设备唤醒
device.press('KEYCODE_MEMU',MonkeyDevice.DOWN_AND_UP) #按菜单键
device.removePackage('com.rfchina.app.supercommunity.Dev') #卸载包
print('success')
MonkeyRunner.sleep(1)
device.installPackage('C:\monkey\SuperCommunity_client_Test_release_v4.10.4_774.apk') #安装包
print('success')
MonkeyRunner.sleep(2)
#启动activity
componentName = "com.rfchina.app.supercommunity.client.StartActivity"
device.startActivity(component=componentName) #启动活动
MonkeyRunner.sleep(2)
result = device.takeSnapshot() #快照
result.writeToFile(r'C:\monkey\result1.png','png') #保存快照
pic2 = MonkeyRunner.loadImageFromFile(r'C:\monkey\1.png')
if(result.sameAs(pic2,0.9)): #对比截屏和已保存的图片
print("success")
else:
print("fail")
#点击社区圈
device.touch(348,1125,"DOWN_AND_UP")
MonkeyRunner.sleep(2)
device.touch(666,85,"DOWN_AND_UP")
Content = 'monkeyrunner测试'
device.type(Content) #输入内容
MonkeyRunner.sleep(2)
device.touch(666,96,"DOWN_AND_UP")
文件保存为.mr文件,再用monkeyrunner 文件名,就可执行(执行期间可以看到模拟器或者真机在自动操作)