我的目标是建立一个环境,让CircleCI在不同的浏览器中的BrowserStack上运行我的e2e测试。
我的测试假设有一个模拟服务器正在运行。 (例如,测试正在检查是否已对模拟服务器进行了某些调用。)
我了解到有local
测试BrowserStack之类的东西,但是每当我想在端口65432
上启动模拟服务器时,它都表明该端口已被使用。 Error: listen EADDRINUSE :::65432
我有一个Express模拟服务器正在运行(在端口65432
上),Nightwatch对Selenium服务器进行了测试。
到目前为止,我只看到了针对运行在互联网上的首页(例如google.com
)进行测试的示例,但是我想在本地运行自己的模拟服务器并对它进行测试。
有没有一种方法可以运行模拟服务器,并针对该模拟服务器运行Nightwatch和Selenium的测试,并且全部由在BrowserStack上运行测试的CI工具完成?
答案 0 :(得分:0)
如果您的计算机(使用模拟服务器-Tomcat,Nginx,{{3})上托管了内部网站(公众无法访问) }等),并希望运行基于Selenium的脚本来在BrowserStack上测试该应用程序,则可以使用Express Mock Server。
您只需要run the binary file
在本地计算机(可访问内部网站的 )上提供它们,并将功能“ browserstack.local
”设置为“ {{1 }}'。因此,在BrowserStack上运行的测试将能够访问您的内部网站。我建议您阅读文档Local Testing feature。您可以在NightwatchJS-BrowserStack here上签出文档。
如果您希望使用CircleCI触发测试。他们也提供CircleCI的插件,请在同一here上阅读更多内容。在这种情况下,插件本身将为您处理本地测试。
答案 1 :(得分:0)
对于将来的读者:我的问题是并行性-我为2个工作程序(基本上是子进程)设置了以下对象:
"test_workers": {
'enabled': true,
'workers': 2
}
我从一个我找不到的示例中找到了此设置,但是如果您使用自己的模拟服务器运行Nightwatch测试,则可能会弄乱测试套件,因为每个工作人员都将尝试模拟一个模拟服务器进行自己的测试,显然会失败。