來(lái)自APP Android端自動(dòng)化測(cè)試初學(xué)者的筆記极舔,寫的不對(duì)的地方大家多多指教哦
在之前的腳本中,我們都把構(gòu)造driver實(shí)例對(duì)象的數(shù)據(jù)(即Desired Capabilities)寫在業(yè)務(wù)代碼中,如下所示:
(以下所有內(nèi)容使用PageObject模式酿愧,以微博 V10.12.0做為例子游岳,)
def start(self):
caps = {"platformName": "Android",
"deviceName": "U4AIUKFAL7W4MJLR",
"platforVersion": "9",
"appPackage": "com.sina.weibo",
"appActivity": "com.sina.weibo.SplashActivity",
"autoGrantPermissions": "true",
"automationName": "UiAutomator2"
"noReset": True
}
self.driver = webdriver.Remote("<http://localhost:4723/wd/hub>", caps)
將數(shù)據(jù)寫在業(yè)務(wù)代碼中政敢,如果換手機(jī)后需要修改代碼,這樣對(duì)于項(xiàng)目的維護(hù)是比較不方便的胚迫,所以將這些配置信息專門寫在配置文件中,方便調(diào)用和修改。
可以將desired_caps文件存在再config文件夾中瞳购,如下:
image.png
desired_caps.yaml文件中的Capabilities數(shù)據(jù)如下:
platformName: Android
platformVersion: '9'
deviceName: U4AIUKFAL7W4MJLR
appActivity: com.sina.weibo.SplashActivity
appPackage: com.sina.weibo
automationName: UiAutomator2
autoGrantPermissions: true
noReset: true
url: 127.0.0.1(這里如果使用localhost會(huì)報(bào)錯(cuò))
port: 4723
讀取desired_caps.yaml文件因谎,構(gòu)造driver的函數(shù):
class AppStart:
def app_start(self):
# 從desired_caps.yaml讀取driver配置數(shù)據(jù)
caps = open(r"E:\\\\study\\\\Fork\\\\WeiboDemo\\\\Weibo\\\\config\\\\desired_caps.yaml", 'r')
data = yaml.load(caps, Loader=yaml.FullLoader)
desired_caps = {'platformName': data['platformName'],
'platformVersion': data['platformVersion'],
'deviceName': data['deviceName'],
'appPackage': data['appPackage'],
'appActivity': data['appActivity'],
'automationName': data['automationName'],
'autoGrantPermissions': data['autoGrantPermissions'],
'noReset': data['noReset']}
self.driver = webdriver.Remote('http://' + str(data['url']) + ':' + str(data['port']) + '/wd/hub', desired_caps)
self.driver.implicitly_wait(10)
return LoginPage(self.driver)