运行多个守夜实例

在我目前的公司,我们有大约10个网站。这些都来自一个代码库。

无论何时我们改变“核心”代码库中的某些东西,我们都希望在所有10个网站上并行运行testing。 它在云中更容易,但我们也希望能够在本地进行。

为了实现这一点,我基本上启动了多个Selenium实例,它们都有自己的端口,并为每个实例设置了不同的nightwatch launch_url

所以我做了一个NodeJS脚本..它为每个站点创build了一个nightwatch.json,每个站点都拥有自己的launch_url和selenium端口。并且引用了10次自己的jsonconfiguration文件。

但是我想知道这是否是“正确的”方法。

Selenium Grid是否可以解决这个问题? 也用于本地testing?

谢谢!

selenium网格旨在能够处理多个并行会话。

你应该只有一个selenium中枢与一个或多个selenium节点。 用额外的params -browser启动你的selenium节点

java -jar selenium_server.jar -Dwebdriver.chrome.driver=$CHROMEDRIVER -role node -hub http://localhost:4444/grid/register -maxSession 20 -browser browserName=chrome,maxInstances=10 -browser browserName=firefox,maxInstances=10"

(对于maxSession与maxInstances之间的差异检查这一个: Selenium网格:MaxSessions与MaxInstances )

所有的testing可以configuration为使用相同的selenium中心实例。

selenium网格不会解决你的问题。 因为selenium网格在不同的实例上运行相同的testing用例。 selenium网格用于检查这些testing用例是否兼容不同的浏览器,浏览器版本或不同的操作系统。 检查Selenium网格: http : //www.seleniumhq.org/docs/07_selenium_grid.jsp

在你的情况下,你想运行不同的url的testing用例,因此有10个不同的testing用例集。

你做的是正确的,“所以我做了一个NodeJS脚本。它为每个站点创build了一个nightwatch.json,每个站点都拥有自己的launch_url和selenium端口。并且会引用10次自己的jsonconfiguration文件。

您可以通过设置test_workers并行运行每个testing用例。 例如:“test_workers”:{“enabled”:true,“workers”:“auto”}。 检查test_workers并行运行testing用例http://nightwatchjs.org/gettingstarted/#basic-settings

纠正我,如果我错了。

如果你想要云解决scheme,nightwatch可以在nightwatch.json文件中使用browserstack或者saucelabs。

 "selenium" : { "start_process" : true, "server_path" : "lib/selenium/selenium-server-standalone-2.53.0.jar", "start_session" : true, "log_path" : "log/", "host" : "127.0.0.1", "port" : 4444, "cli_args" : { "webdriver.chrome.driver" : "lib/drivers/chromedriver" } }, "test_settings" : { "bstk" : { "launch_url": "http://hub.browserstack.com", "selenium_port" : 80, "selenium_host" : "hub.browserstack.com", "silent": true, "screenshots": { "enabled": false, "path": "" }, "desiredCapabilities": { "browserName": "chrome", "javascriptEnabled": true, "acceptSslCerts": true, "browserstack.user": "username", "browserstack.key": "..." } }, 
Interesting Posts