基於appium自動化測試案例12--使用yaml 進行資料配置(學習筆記)
阿新 • • 發佈:2018-12-30
在編寫appium自動化測試指令碼中,經常需要配置裝置及app的引數,如:
desired_caps={} #裝置平臺名稱 desired_caps['platformName']='Android' #裝置名稱 desired_caps['deviceName']='127.0.0.1:62025' #裝置版本 desired_caps['platforVersion']='5.1.1' #需要安裝app時配置 #desired_caps['app']='D:\xxxxxxxxxx\xxxxxxxxxxx.apk' #傳入包名(adb shell pm list package) desired_caps['appPackage']='com.xxxxx' #傳入appde activity desired_caps['appActivity']='xxxxxxxxxxxxx' #注意:send_keys()傳入中文時需要在capability中配置如下內容 desired_caps['unicodeKeyboard']='True' desired_caps['resetKeyboard']='True' #需要去除登陸記錄時配置以下引數false為重置true為不重置 desired_caps['noReset']='True'
每次寫指令碼需要重複的寫引數配置的程式碼十分繁瑣,可以通過讀取配置檔案的方式,將可變引數寫到配置檔案中,使用時直接讀取需要的引數即可!
配置檔案使用的時yaml檔案格式,yaml檔案使用規則問百度
先將引數寫入到配置檔案中:xxx.yaml
platformName: Android platformVersion: 6.0.1 deviceName: 98862732534150 app: F:\xxxxxxx.apk appPackage: com.xxxxxxx appActivity: com.xxxxxxxxxx noReset: False ip: localhost port: 4723 unicodeKeyboard: True resetKeyboard: True
配置好之後在指令碼中就可以直接讀取:
from appium importwebdriver import yaml file=open('desired_caps.yaml','r') data=yaml.load(file) desired_caps={} desired_caps['platformName']=data['platformName'] desired_caps['platformVersion']=data['platformVersion'] desired_caps['deviceName']=data['deviceName'] desired_caps['app']=data['app'] desired_caps['appPackage']=data['appPackage'] desired_caps['appActivity']=data['appActivity'] desired_caps['noReset']=data['noReset'] #啟動app print('啟動app') #driver=webdriver.Remote('http://localhost:4723/wd/hub',desired_caps) driver=webdriver.Remote('http://'+str(data['ip'])+':'+str(data['port'])+'/wd/hub',desired_caps)