提高混合应用稳定性

This commit is contained in:
yanchunhuo 2021-02-04 19:42:02 +08:00
parent 774cc9d8d8
commit 9788db2dac
5 changed files with 28 additions and 6 deletions

View File

@ -39,6 +39,8 @@ class Read_APP_UI_Devices_Info(object):
devices_info.deviceNames = get_lambda(config.get('devices_info', 'deviceNames', fallback='')) devices_info.deviceNames = get_lambda(config.get('devices_info', 'deviceNames', fallback=''))
devices_info.chromeDriverPorts = get_lambda(config.get('devices_info', 'chromeDriverPorts', fallback='')) devices_info.chromeDriverPorts = get_lambda(config.get('devices_info', 'chromeDriverPorts', fallback=''))
devices_info.chromeDriverPaths = get_lambda(config.get('devices_info', 'chromeDriverPaths', fallback='')) devices_info.chromeDriverPaths = get_lambda(config.get('devices_info', 'chromeDriverPaths', fallback=''))
devices_info.recreateChromeDriverSessions = get_lambda(config.get('devices_info', 'recreateChromeDriverSessions', fallback=''))
devices_info.nativeWebScreenshots = get_lambda(config.get('devices_info', 'nativeWebScreenshots', fallback=''))
devices_info.systemports=get_lambda(config.get('devices_info','systemports', fallback='')) devices_info.systemports=get_lambda(config.get('devices_info','systemports', fallback=''))
devices_info.wdaLocalPorts = get_lambda(config.get('devices_info', 'wdaLocalPorts', fallback='')) devices_info.wdaLocalPorts = get_lambda(config.get('devices_info', 'wdaLocalPorts', fallback=''))
devices_info.wdaLocalPorts = get_lambda(config.get('devices_info', 'wdaLocalPorts', fallback='')) devices_info.wdaLocalPorts = get_lambda(config.get('devices_info', 'wdaLocalPorts', fallback=''))

View File

@ -239,14 +239,9 @@ class AppOperator:
alert=self._driver.switch_to.alert alert=self._driver.switch_to.alert
return alert.text return alert.text
def get_screenshot(self,fileName,native_context='NATIVE_APP'): def get_screenshot(self,fileName):
current_context=self.get_current_context()
if not current_context==native_context:
self.switch_context(native_context)
fileName=DateTimeTool.getNowTime('%Y%m%d%H%M%S%f_')+fileName fileName=DateTimeTool.getNowTime('%Y%m%d%H%M%S%f_')+fileName
allure.attach(name=fileName,body=self._driver.get_screenshot_as_png(),attachment_type=allure.attachment_type.PNG) allure.attach(name=fileName,body=self._driver.get_screenshot_as_png(),attachment_type=allure.attachment_type.PNG)
if not current_context==native_context:
self.switch_context(current_context)
def refresh(self): def refresh(self):
self._driver.refresh() self._driver.refresh()

View File

@ -41,6 +41,12 @@ chromeDriverPorts = 5200 ||
# 混合应用chromeDriver绝对路径确保驱动版本与手机应用浏览器内核保持匹配无需则放空 # 混合应用chromeDriver绝对路径确保驱动版本与手机应用浏览器内核保持匹配无需则放空
chromeDriverPaths = C:\Users\yanch\Desktop\tmp\chromedriver\chromedriver.exe || chromeDriverPaths = C:\Users\yanch\Desktop\tmp\chromedriver\chromedriver.exe ||
# 当上下文切到原生即不在web context时关闭ChromeDriverSession混合应用建议设置为true
recreateChromeDriverSessions = true ||
# 在web context时是否使用原生进行截图混合应用建议设置为true
nativeWebScreenshots = true
# systemport如果使用UiAutomator2端口范围为8200~8299使用espresso端口范围为8300~8399并行设备都在同一个appium server上时确保每个设备唯一 # systemport如果使用UiAutomator2端口范围为8200~8299使用espresso端口范围为8300~8399并行设备都在同一个appium server上时确保每个设备唯一
systemports = 8200 || systemports = 8200 ||

View File

@ -39,6 +39,12 @@ chromeDriverPorts = 5200 ||
# 混合应用chromeDriver绝对路径确保驱动版本与手机应用浏览器内核保持匹配无需则放空 # 混合应用chromeDriver绝对路径确保驱动版本与手机应用浏览器内核保持匹配无需则放空
chromeDriverPaths = C:\Users\yanch\Desktop\tmp\chromedriver\chromedriver.exe || chromeDriverPaths = C:\Users\yanch\Desktop\tmp\chromedriver\chromedriver.exe ||
# 当上下文切到原生即不在web context时关闭ChromeDriverSession混合应用建议设置为true
recreateChromeDriverSessions = true ||
# 在web context时是否使用原生进行截图混合应用建议设置为true
nativeWebScreenshots = true
# systemport如果使用UiAutomator2端口范围为8200~8299使用espresso端口范围为8300~8399并行设备都在同一个appium server上时确保每个设备唯一 # systemport如果使用UiAutomator2端口范围为8200~8299使用espresso端口范围为8300~8399并行设备都在同一个appium server上时确保每个设备唯一
systemports = 8200 || systemports = 8200 ||

View File

@ -1,5 +1,6 @@
# 作者 yanchunhuo # 作者 yanchunhuo
# 创建时间 2019/12/26 9:17 # 创建时间 2019/12/26 9:17
# github https://github.com/yanchunhuo
from base.read_httpserver_config import Read_Http_Server_Config from base.read_httpserver_config import Read_Http_Server_Config
import os import os
@ -17,6 +18,8 @@ class APP_UI_Devices_Info:
self.deviceNames = [] self.deviceNames = []
self.chromeDriverPorts = [] self.chromeDriverPorts = []
self.chromeDriverPaths = [] self.chromeDriverPaths = []
self.recreateChromeDriverSessions = []
self.nativeWebScreenshots = []
self.systemports = [] self.systemports = []
self.wdaLocalPorts = [] self.wdaLocalPorts = []
self.appPackages = [] self.appPackages = []
@ -76,6 +79,16 @@ class APP_UI_Devices_Info:
desired_capabilities.update({'chromedriverPort': self.chromeDriverPorts[i].strip()}) desired_capabilities.update({'chromedriverPort': self.chromeDriverPorts[i].strip()})
if len(self.chromeDriverPaths): if len(self.chromeDriverPaths):
desired_capabilities.update({'chromedriverExecutable':self.chromeDriverPaths[i].strip()}) desired_capabilities.update({'chromedriverExecutable':self.chromeDriverPaths[i].strip()})
if len(self.recreateChromeDriverSessions):
recreateChromeDriverSessions_value=False
if 'true' == self.recreateChromeDriverSessions[i].strip().lower():
recreateChromeDriverSessions_value=True
desired_capabilities.update({'recreateChromeDriverSessions':recreateChromeDriverSessions_value})
if len(self.nativeWebScreenshots):
nativeWebScreenshot=False
if 'true' == self.nativeWebScreenshots[i].strip().lower():
nativeWebScreenshot=True
desired_capabilities.update({'nativeWebScreenshot':nativeWebScreenshot})
desired_capabilities.update({'systemport': self.systemports[i].strip()}) desired_capabilities.update({'systemport': self.systemports[i].strip()})
if len(self.wdaLocalPorts): if len(self.wdaLocalPorts):
desired_capabilities.update({'wdaLocalPort': self.wdaLocalPorts[i].strip()}) desired_capabilities.update({'wdaLocalPort': self.wdaLocalPorts[i].strip()})