TestCafe,CircleCI 2.0和SauceLabs-无法使这种组合正常工作

时间:2018-12-06 14:16:18

标签: circleci saucelabs testcafe circleci-2.0

所以-我可以在笔记本电脑上执行以下操作: 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范围”的信息。

任何建议将不胜感激!

(只是很难弄清楚如何调试/分类问题)

2 个答案:

答案 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) ===防火墙(失败)===> 计算机上的站点