SauceLabs Android模拟器使用Sauce Connect隧道无法连接后端问题
解决方法
- 修正参数引用错误:现有配置中的
tunnelIdentifier={TUNNEL_ID}缺少Robot Framework变量引用符$,正确写法为tunnelIdentifier=${TUNNEL_ID},变量未正确解析会导致测试会话无法绑定到指定隧道。 - 新增流量转发强制参数:Sauce Labs移动端测试默认不会将应用流量路由到Sauce Connect隧道,需要额外添加
sendThroughProxy=true的能力项,强制所有应用流量走指定隧道。 - 调整鉴权参数配置:
SAUCE_ACCESS_KEY和SAUCE_USERNAME不需要放在能力项中,只需拼接在${REMOTE_URL}里即可,格式为https://${SAUCE_USERNAME}:${SAUCE_ACCESS_KEY}@ondemand.saucelabs.com/wd/hub,放在能力项中不会生效。 - 检查应用网络配置:如果后端服务使用HTTP协议,安卓9(API 28)及以上系统默认禁止明文流量传输,需要在测试安装包的AndroidManifest.xml中添加networkSecurityConfig配置放开对应域名的明文访问权限,否则会出现连接失败问题,易被误判为隧道未生效。
- 升级Appium版本:当前使用的Appium 1.16.0版本已停止维护超过3年,Sauce Labs对该旧版本的隧道支持存在已知缺陷,建议升级到Appium 1.22.x及以上稳定版本,避免版本兼容问题。
修正后的调用示例
Open Application ${REMOTE_URL} platformName=${PLATFORM_NAME} platformVersion=${PLATFORM_VERSION} deviceName=${DEVICE_NAME} app=${APP} automationName=appium appPackage=${APP_PACKAGE} autoGrantPermissions=true noReset=false newCommandTimeout=180 appiumVersion=1.22.3 sendThroughProxy=true tunnelIdentifier=${TUNNEL_ID} parentTunnel=${PARENT}
内容的提问来源于stack exchange,提问作者maxxxo
相关产品推荐
相关产品推荐

