安卓自动化测试monkeyrunner

录制与回放

  1. 连接手机(打开文件传输)或者是打开模拟器
  2. cmd进入安装sdk的AndroidSDK\Android_SDK_windows\tools目录下
  3. 执行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)
  1. 在monkeyrecorder中进行用例操作,然后导出(Export Actions),保存为py文件
  2. 再执行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 文件名,就可执行(执行期间可以看到模拟器或者真机在自动操作)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章