使用模拟服务器进行 BrowserStack e2e 测试

问题描述 投票:0回答:3

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

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

我了解到有

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

我有一个正在运行的 Express 模拟服务器(在端口

65432
上),测试由 Nightwatch 针对 Selenium 服务器运行。

到目前为止,我只看到了针对互联网上的主页运行测试的示例(如

google.com
),但我想在本地运行我自己的模拟服务器并针对它运行我的测试。

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

selenium express nightwatch.js browserstack mockserver
3个回答
0
投票

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

您只需

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

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


0
投票

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

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

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


-2
投票

我们还可以使用 Faux API 平台,这为我们提供了很大的空间来在 API 中存储值并可以随时访问它,没有任何限制

https://faux-api.com/

© www.soinside.com 2019 - 2024. All rights reserved.