0

我的目标是建立一个环境,让 CircleCI 可以在不同浏览器中的 BrowserStack 上运行我的 e2e 测试。

我的测试假设有一个模拟服务器正在运行。(例如,测试正在检查是否对模拟服务器进行了某个调用。)

我了解到有local测试 BrowserStack 之类的东西,但是每当我想在端口上启动模拟服务器时,65432它都会说该端口已被使用。Error: listen EADDRINUSE :::65432

我有一个 Express 模拟服务器正在运行(在 port 上65432),测试由 Nightwatch 针对 Selenium 服务器运行。

到目前为止,我只看到了针对 Internet 上的主页运行测试的示例(例如google.com),但我想在本地运行我自己的模拟服务器并针对它运行我的测试。

有没有一种方法可以让我运行一个模拟服务器并使用 Nightwatch 和 Selenium 对那个模拟服务器运行我的测试,所有这些都是通过在 BrowserStack 上运行测试的 CI 工具完成的?

4

2 回答 2

0

如果您在您的机器上托管了一个内部网站(公众无法访问)(使用模拟服务器 - TomcatNginxExpress Mock Server)并希望运行基于 Selenium 的脚本以在 BrowserStack 上测试该应用程序,那么您可以使用本地测试功能。

您只需要run the binary file他们在您的本地计算机上提供(可访问内部网站)并将功能“ browserstack.local”设置为“ true”。因此,在 BrowserStack 上运行的测试将能够访问您的内部网站。我建议您在此处查看文档。您可以在此处查看NightwatchJS-BrowserStack 上的文档。

如果您希望使用 CircleCI 触发测试。他们也为 CircleCI 提供插件,请在此处阅读更多内容。在这种情况下,插件本身将为您处理本地测试。

于 2018-08-28T11:39:17.723 回答
0

对于未来的读者:我的问题是并行性 - 我使用以下对象设置了 2 个工作人员(基本上是子进程):

"test_workers": {
    'enabled': true,
    'workers': 2
}

我从一个我再也找不到的示例中找到了这个设置,但是如果您使用自己的模拟服务器运行 Nightwatch 测试,这可能会弄乱测试套件,因为每个工作人员都会尝试为它启动一个模拟服务器自己的测试,这显然会失败。

于 2018-08-29T07:20:30.620 回答