QAF同测试场景多驱动切换时配置多个Remote.server的实现方案咨询
QAF同用例多驱动跨服务商切换配置方案
问题原因
你之前遇到的配置覆盖问题,是因为用了全局的remote.server属性,该属性属于全局生效参数,后加载的环境配置文件会直接覆盖之前的赋值。
解决方案
不要把不同驱动的独有配置放在全局环境资源文件中,将其绑定到对应驱动的capability配置集下即可避免覆盖,具体操作如下:
- 步骤1:分别定义两套驱动的独立配置
# BrowserStack Web驱动专属配置 driver.name=browserStackDriver browserStack.capabilities.remote.server=https://hub.browserstack.com/wd/hub browserStack.capabilities.platform=WIN10 browserStack.capabilities.browserName=Chrome # 其他BrowserStack需要的capability可按相同格式补充 # ExperiTest App驱动专属配置 driver.name=experiTestDriver experiTest.capabilities.remote.server=https://cloud.experitest.com/wd/hub experiTest.capabilities.deviceName=你的测试设备名称 experiTest.capabilities.app=你的测试包存储地址 experiTest.capabilities.platformName=Android # 其他ExperiTest需要的capability可按相同格式补充
- 步骤2:调用
switchDriver方法直接切换对应驱动即可,QAF会自动加载该驱动绑定的所有capability参数,不会出现配置互相覆盖的问题
// 切换到BrowserStack Web驱动 switchDriver("browserStackDriver"); // 此处编写Web端测试执行逻辑 // 切换到ExperiTest App驱动 switchDriver("experiTestDriver"); // 此处编写App端测试执行逻辑
拓展说明
- 原有
env.resources配置可以保留,用来存放全局公共参数,比如测试环境域名、通用账号密码等两套驱动都需要用到的配置 - 如果需要同时初始化多个同类型驱动,可以给驱动名加自定义后缀区分,比如
driver.name=browserStackDriver_chrome,对应的配置前缀为browserStackDriver_chrome.capabilities.*,切换时传入完整驱动名即可
内容的提问来源于stack exchange,提问作者Renish
相关产品推荐
相关产品推荐

