所以-我可以在笔记本电脑上执行以下操作: testcafe“ saucelabs:Chrome@70.0:Windows 10” tests / settings / users.js
这将连接到SauceLabs,以启动测试(或多种测试,无论哪种方式均可),以对付我们的开发服务器。 (IP已被列入白名单,所有方法都可以使用。)
我当然也可以登录酱汁实验室,打开“实时测试”浏览器并连接到此环境/登录等。
因此,“ SauceLabs =->我的环境”就可以了。
如果我尝试在circleci上运行构建以完全做到 ,则失败。
在我的角色中,我有以下代码:
const getPageHTML = ClientFunction(() => document.documentElement.outerHTML);
let value = await getPageHTML();
console.log(value);
const pageLink = ClientFunction (() => window.location.href);
value = await pageLink();
console.log(value);
这将打印出整个外部HTML只是
<html><head></head><body></body></html>
它将打印出当前网址为“ about:blank”
所以,我的问题是..在使用saucelabs从FROM进行运行测试时,是否需要将CIRCLE列入白名单?
当我们使用ucelabs浏览器时,我似乎无法弄清楚在笔记本电脑与圈子中进行测试之间的功能/执行差异。
这是“正在运行测试的IP”(白名单ip)circleCI还是saucelabs?我当然一直以为是平底锅。
注意:实际上,我实际上可以参加testcafe“ example.js”测试,并获得 it 以使用circle / saucelabs运行。因此,从字面上看,这与将测试重新运行到我的环境有关。我很想了解更多有关如果Circle在“使用” saucelab浏览器运行测试的情况下“源ip范围”的信息。
任何建议将不胜感激!
(只是很难弄清楚如何调试/分类问题)
答案 0 :(得分:3)
要让SauceLabs行使在CircleCI容器中运行的应用程序,您将需要使用Sauce's Connect Tunnel,因为在CircleCI容器中运行的服务无法通过互联网访问。
CircleCI和SauceLabs合作创建了an "orb" that simplifies the setup of a tunnel。我对TestCafe不熟悉,但是它应该可以解决连接问题。
您可以在https://github.com/eddiewebb/demo-blueskygreenbuilds/blob/master/.circleci/config.yml#L17处的CircleCI中看到SauceLabs的示例(尽管使用Maven / Java),但基本上
- saucelabs/with_proxy:
name: "Chrome Tests"
requires:
- "Unit Test"
tunnel_identifier: chrome
steps:
- maven/with_cache:
steps:
- run: ./mvnw verify -B -Dspring.profiles.active=it -Dsauce.tunnel="chrome"
答案 1 :(得分:2)
您需要使用Sauce的Connect Tunnel与CircleCI进行连接,就像@Eddie在他的回答中提到的那样。
受测试的站点受代理设置保护,并且SauceLabs被列入白名单。解决方案是将CircleCI添加到您公司的白名单中。
SauceLab浏览器 ===隧道(确定)===> Testcafe代理服务器(CircleCI) ===防火墙(失败)===> 计算机上的站点