如何 运行 通过 selenium grid 在特定浏览器上进行测试
How to run test on specific browser by selenium grid
我已经在 windows 7 和 windows 10 上使用 chrome 浏览器将两个平台注册到 selenium 网格服务器中。
我想 运行 在 Windows 10 上的 Chrome 浏览器上进行测试,但是当我 运行 测试时,随机测试 运行 Windows 7 随机 运行 Windows 10 chrome.
当我们注册了多个平台时,您知道如何配置运行在特定浏览器和平台上进行测试吗?
中心:
java -jar selenium-server-standalone-3.7.1.jar -role hub
在 windows 上注册节点 7:
java -Dwebdriver.chrome.driver=chromedriver_2.33.exe -jar selenium-server-standalone-3.7.1.jar -role node -hub http://localhost:4444
在 windows 10:
上注册节点
java -Dwebdriver.chrome.driver=chromedriver_2.33.exe -jar selenium-server-standalone-3.7.1.jar -role node -hub http://localhost:4444
protractor.conf.js
exports.config = {
specs: [
'**/*.mytest.e2e-spec.ts'
],
multiCapabilities: [
{
browserName: 'chrome',
platform: 'WIN10',
}
],
seleniumAddress: 'http://localhost:4444/wd/hub',
baseUrl: 'http://localhost:4200/',
framework: 'jasmine',
jasmineNodeOpts: {
print: function () {
}
},
onPrepare: function () {
require('ts-node').register({
project: 'e2e/tsconfig.e2e.json'
});
}
};
您需要调整注册节点的命令如下:
在 Windows 7
上注册节点:
java -Dwebdriver.chrome.driver=chromedriver_2.33.exe -jar selenium-server-standalone-3.7.1.jar -role node -hub http://localhost:4444/grid/register
在 Windows 10
上注册节点:
java -Dwebdriver.chrome.driver=chromedriver_2.33.exe -jar selenium-server-standalone-3.7.1.jar -role node -hub http://localhost:4444/grid/register
根据您的问题和 DebanjanB 的回答,您有两个节点和两个集线器。您需要使用相同的集线器注册节点。请尝试以下配置,它可能有效。
使用以下命令在 windows 7 机器上启动集线器,
java -jar selenium-server-standalone-3.7.1.jar -role hub
Start/register 您在 windows 7 上的第一个节点使用以下命令,
java -Dwebdriver.chrome.driver=chromedriver_2.33.exe -jar selenium-server-standalone-3.7.1.jar -角色节点
start/register 您在 windows 10 上的第二个节点使用以下命令,
java -Dwebdriver.chrome.driver=chromedriver_2.33.exe -jar selenium-server-standalone-3.7.1.jar -role node -hub http: //"IP Address OF Windows 7 machine":4444/grid/register
要验证集线器上列出的节点,只需在 windows 7 机器上打开 url http://localhost:4444/grid/console。然后,验证您的节点列在页面上。
您必须从 windows 7 机器 运行 您的脚本,因为您的 selenium 地址正在使用本地主机地址(seleniumAddress: 'http://localhost:4444/wd/hub')。如果你想从 windows 10 台机器或任何其他机器上 运行。在配置文件中将 selenium 地址更改为 'http://"windows7ipaddress":4444/wd/hub'。
我已经在我的机器上测试过它工作正常。它将在 windows 10 机器上启动 chrome,因为您的 multiCapabilities 平台值为 WIN10。
注意:在需要的地方替换 ip 地址值的值。
我建议您执行以下操作
- 创建节点配置文件 here, wherein for the WINDOWS7 node, you specify the appropriate platform (make sure you pick a value from here)
- 现在您通过使用命令行参数
-nodeConfig node.json
指定这个新创建的 nodeConfig json 来启动节点(有关详细信息,请参阅我的博客 post here )
现在根据您的测试指定的 PLATFORM 功能,它将被路由到适当的节点。
Selenium Grid安装过程:-
- 下载你想要的Selenium服务器独立jar文件
创建中心
- 创建一个新的 java 项目并将其添加到构建路径
在您的计算机中使用以下命令启动集线器:-
java -jar selenium-server-standalone-3.9.1.jar –role hub -port 4446
在主机浏览器中打开 ip address/grid/console "or" localhost: portnumber/grid/console
在另一台机器上使用以下命令启动节点:
在另一台笔记本电脑上下载 Selenium 服务器独立 jar 文件
节点不一定包含eclipse。但是Java应该安装
转到selenium standalone所在的文件路径
键入以下命令
java -jar selenium-server-standalone-3.9.1.jar –role webdriver –hub ipaddress/grid/
注册 – 端口 5566
(但这里您的测试将失败,因为集线器中未提供 chrome 驱动程序或 gecko 驱动程序的文件路径。)
- java –Dwebdriver.chrome.driver="provide path for chrome driver" -jar selenium-server-standalone-3.9.1.jar –role webdriver –hub ipaddress/grid/register –port 5566
我已经在 windows 7 和 windows 10 上使用 chrome 浏览器将两个平台注册到 selenium 网格服务器中。
我想 运行 在 Windows 10 上的 Chrome 浏览器上进行测试,但是当我 运行 测试时,随机测试 运行 Windows 7 随机 运行 Windows 10 chrome.
当我们注册了多个平台时,您知道如何配置运行在特定浏览器和平台上进行测试吗?
中心:
java -jar selenium-server-standalone-3.7.1.jar -role hub
在 windows 上注册节点 7:
java -Dwebdriver.chrome.driver=chromedriver_2.33.exe -jar selenium-server-standalone-3.7.1.jar -role node -hub http://localhost:4444
在 windows 10:
上注册节点java -Dwebdriver.chrome.driver=chromedriver_2.33.exe -jar selenium-server-standalone-3.7.1.jar -role node -hub http://localhost:4444
protractor.conf.js
exports.config = {
specs: [
'**/*.mytest.e2e-spec.ts'
],
multiCapabilities: [
{
browserName: 'chrome',
platform: 'WIN10',
}
],
seleniumAddress: 'http://localhost:4444/wd/hub',
baseUrl: 'http://localhost:4200/',
framework: 'jasmine',
jasmineNodeOpts: {
print: function () {
}
},
onPrepare: function () {
require('ts-node').register({
project: 'e2e/tsconfig.e2e.json'
});
}
};
您需要调整注册节点的命令如下:
在
Windows 7
上注册节点:java -Dwebdriver.chrome.driver=chromedriver_2.33.exe -jar selenium-server-standalone-3.7.1.jar -role node -hub http://localhost:4444/grid/register
在
Windows 10
上注册节点:java -Dwebdriver.chrome.driver=chromedriver_2.33.exe -jar selenium-server-standalone-3.7.1.jar -role node -hub http://localhost:4444/grid/register
根据您的问题和 DebanjanB 的回答,您有两个节点和两个集线器。您需要使用相同的集线器注册节点。请尝试以下配置,它可能有效。
使用以下命令在 windows 7 机器上启动集线器,
java -jar selenium-server-standalone-3.7.1.jar -role hub
Start/register 您在 windows 7 上的第一个节点使用以下命令,
java -Dwebdriver.chrome.driver=chromedriver_2.33.exe -jar selenium-server-standalone-3.7.1.jar -角色节点
start/register 您在 windows 10 上的第二个节点使用以下命令,
java -Dwebdriver.chrome.driver=chromedriver_2.33.exe -jar selenium-server-standalone-3.7.1.jar -role node -hub http: //"IP Address OF Windows 7 machine":4444/grid/register
要验证集线器上列出的节点,只需在 windows 7 机器上打开 url http://localhost:4444/grid/console。然后,验证您的节点列在页面上。
您必须从 windows 7 机器 运行 您的脚本,因为您的 selenium 地址正在使用本地主机地址(seleniumAddress: 'http://localhost:4444/wd/hub')。如果你想从 windows 10 台机器或任何其他机器上 运行。在配置文件中将 selenium 地址更改为 'http://"windows7ipaddress":4444/wd/hub'。
我已经在我的机器上测试过它工作正常。它将在 windows 10 机器上启动 chrome,因为您的 multiCapabilities 平台值为 WIN10。
注意:在需要的地方替换 ip 地址值的值。
我建议您执行以下操作
- 创建节点配置文件 here, wherein for the WINDOWS7 node, you specify the appropriate platform (make sure you pick a value from here)
- 现在您通过使用命令行参数
-nodeConfig node.json
指定这个新创建的 nodeConfig json 来启动节点(有关详细信息,请参阅我的博客 post here )
现在根据您的测试指定的 PLATFORM 功能,它将被路由到适当的节点。
Selenium Grid安装过程:-
- 下载你想要的Selenium服务器独立jar文件 创建中心
- 创建一个新的 java 项目并将其添加到构建路径
在您的计算机中使用以下命令启动集线器:-
java -jar selenium-server-standalone-3.9.1.jar –role hub -port 4446
在主机浏览器中打开 ip address/grid/console "or" localhost: portnumber/grid/console
在另一台机器上使用以下命令启动节点:
在另一台笔记本电脑上下载 Selenium 服务器独立 jar 文件
节点不一定包含eclipse。但是Java应该安装
转到selenium standalone所在的文件路径
键入以下命令
java -jar selenium-server-standalone-3.9.1.jar –role webdriver –hub ipaddress/grid/ 注册 – 端口 5566
(但这里您的测试将失败,因为集线器中未提供 chrome 驱动程序或 gecko 驱动程序的文件路径。)
- java –Dwebdriver.chrome.driver="provide path for chrome driver" -jar selenium-server-standalone-3.9.1.jar –role webdriver –hub ipaddress/grid/register –port 5566