代理环境下BrowserStack运行Cypress测试连接超时如何解决?
解决方案
此报错的核心原因是代理网络环境下,BrowserStack Cypress集成工具启动时的二进制下载请求没有走系统代理,直接请求公网地址超时,可按以下步骤排查修复:
- 第一步:给Node进程配置代理环境变量,执行测试命令前先注入代理配置:
如果你是Linux/Mac系统,执行:
如果你是Windows CMD环境,执行:export HTTP_PROXY=http://<你的代理地址>:<代理端口> export HTTPS_PROXY=http://<你的代理地址>:<代理端口> # 代理使用自签名证书的话需要加以下配置 export NODE_TLS_REJECT_UNAUTHORIZED=0
如果你是Windows PowerShell环境,执行:set HTTP_PROXY=http://<你的代理地址>:<代理端口> set HTTPS_PROXY=http://<你的代理地址>:<代理端口> set NODE_TLS_REJECT_UNAUTHORIZED=0$env:HTTP_PROXY = "http://<你的代理地址>:<代理端口>" $env:HTTPS_PROXY = "http://<你的代理地址>:<代理端口>" $env:NODE_TLS_REJECT_UNAUTHORIZED = "0" - 第二步:在
browserstack.json配置文件中显式指定代理参数,和你已有的connection_settings平级添加:"proxy": { "host": "<你的代理地址>", "port": <你的代理端口号>, "protocol": "http" }, "connection_settings": { "local": true, "local_identifier": "CypressLocalConnection1" } - 第三步:检查BrowserStackLocal进程的启动参数,如果代理需要认证,启动本地连接时补充代理相关参数:
./BrowserStackLocal --key YOUR_ACCESS_KEY --local-identifier CypressLocalConnection1 \ --proxy-host <你的代理地址> --proxy-port <代理端口> \ # 代理需要账号密码的话补充以下两个参数 --proxy-user <代理用户名> --proxy-pass <代理密码> - 第四步:排查地址解析异常,你报错中出现的
11.111.111.11.35为非法IP地址,检查本地hosts文件是否配置了错误的BrowserStack域名解析,或者DNS服务是否存在异常,可尝试切换公共DNS后重试。 - 第五步:如果仍存在下载超时问题,可手动下载对应版本的BrowserStack Cypress二进制文件放置到本地缓存目录,跳过自动下载逻辑:
- Mac缓存路径:
~/Library/Caches/BrowserStack - Linux缓存路径:
~/.cache/BrowserStack - Windows缓存路径:
%LOCALAPPDATA%\BrowserStack\Cache
- Mac缓存路径:
内容的提问来源于stack exchange,提问作者favored
相关产品推荐
相关产品推荐

