在我现在的公司,我们大约有10个网站..所有这些都是从一个代码库扩展而来的。
每当我们在“核心”代码库中更改某些内容时,我们希望在所有10个网站上并行运行测试。这在云中要容易得多,但我们也希望能够在本地完成。
为此,我基本上启动了多个Selenium实例,每个实例都有自己的端口,并为每个实例设置不同的夜间launch_url
所以我做了一个NodeJS脚本..这将为每个站点创建一个nightwatch.json,每个站点都拥有自己的launch_url和selenium端口。并引用其自己的json配置文件生成nightwatch 10次。
但我想知道这是不是“正确”的方法。
Selenium Grid解决了这个问题吗?也用于本地测试吗?
谢谢!
发布于 2016-08-16 06:26:21
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 Grid: MaxSessions vs MaxInstances)
您的所有测试都可以配置为使用相同的selenium hub实例。
发布于 2017-05-16 17:27:06
Selenium网格不会解决你的问题。因为selenium网格在不同的实例上运行相同的测试用例。Selenium网格用于检查这些测试用例是否与不同的浏览器、不同版本的浏览器或不同的操作系统兼容。检查Selenium网格:http://www.seleniumhq.org/docs/07_selenium_grid.jsp
在您的示例中,您希望为不同的url运行测试用例,因此有10个不同的测试用例集。
您做得很对,“所以我创建了一个NodeJS脚本,它为每个站点创建一个nightwatch.json,每个站点都有自己的launch_url和selenium端口,并引用自己的json配置文件生成nightwatch 10次。”
通过设置test_workers,您可以并行运行每个测试用例集。示例:"test_workers“:{"enabled”:true,"workers“:"auto"}检查test_workers以在并行http://nightwatchjs.org/gettingstarted/#basic-settings中运行测试用例
如果我错了,请纠正我。
发布于 2016-11-18 05:46:54
如果您需要云解决方案,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": "..."
}
},https://stackoverflow.com/questions/38721599
复制相似问题