无法在 running/connected Selenium 网格节点上启动 'Matching Configurations'
Can't start 'Matching Configurations' on running/connected Selenium Grid Node
我实际上有两个相关的问题。我无法在连接到 Jenkins 下的网格服务器 运行 的 Selenium 网格节点(在 'nodes matching configurations' 下列出)上启动 'matching configurations'。我也找不到任何包含相关信息的错误日志。
- 无法在 running/connected Selenium 网格节点
上启动 'Matching Configurations'
- 执行此操作时写入的日志在哪里
症状:
- 单击其中一个 'matching configurations' 旁边的 'start' 按钮后,页面快速刷新,您在 'running configurations'.
下看不到任何条目
Setup/Troubleshooting
- 运行 网格控制台 v.3.5.0
- 运行 詹金斯 slave.war 3.1.0
- 适当的防火墙规则已打开以建立连接
- 网格代理节点连接到selenium网格服务器
- 代理节点正在使用 java web start .jnlp 文件启动。
- .jnlp 文件显示已连接
- 您会在匹配配置下看到已连接的代理节点
- 我可以在 Selenium Grid 服务器上启动 'matching configurations'
在代理节点的日志 (C:\jenkins\remoting\logs) 中,我在 'matching configurations' 启动失败后看到的最后一个条目显示成功消息,这显然是不相关的 - (我实际上不真的看不出任何错误)。
2017 年 8 月 16 日 10:31:08 下午 org.jenkinsci.remoting.engine.JnlpAgentEndpointResolver 解决
信息:远程处理服务器接受以下协议:[JNLP4-connect、JNLP-connect、Ping、JNLP2-connect]
在 selenium Grid 控制台中我看到:
Starting Selenium Grid
[Jenkins] $ "C:\Program Files (x86)\Jenkins\jre\bin\java" -cp "C:\Program
Files (x86)\Jenkins\war\WEB-INF\lib\remoting-3.10.jar"
hudson.remoting.Launcher -cp "C:\Program Files
(x86)\Jenkins\plugins\selenium\WEB-INF\lib\selenium-server-standalone-
3.5.0.jar;C:\Program Files (x86)\Jenkins\plugins\selenium\WEB-
INF\lib\htmlunit-driver-standalone-2.20.jar" -connectTo localhost:7138
Starting Selenium Grid
channel started
Aug 16, 2017 10:23:13 PM hudson.plugins.selenium.HubLauncher call
OFF: Grid hub starting with log level INFO
Aug 16, 2017 10:23:13 PM hudson.plugins.selenium.HubLauncher call
OFF: Grid Hub preparing to start on port 4444
2017-08-16 22:23:14.131:INFO::pool-1-thread-1 for channel id=167: Logging
initialized @1842ms to org.seleniumhq.jetty9.util.log.StdErrLog
Aug 16, 2017 10:23:14 PM org.openqa.grid.web.Hub initServer
INFO: Will listen on 4444
2017-08-16 22:23:14.193:INFO:osjs.Server:pool-1-thread-1 for channel id=167:
jetty-9.4.5.v20170502
2017-08-16 22:23:14.225:INFO:osjs.session:pool-1-thread-1 for channel
id=167: DefaultSessionIdManager workerName=node0
2017-08-16 22:23:14.225:INFO:osjs.session:pool-1-thread-1 for channel
id=167: No SessionScavenger set, using defaults
2017-08-16 22:23:14.225:INFO:osjs.session:pool-1-thread-1 for channel
id=167: Scavenging every 600000ms
2017-08-16 22:23:14.225:INFO:osjsh.ContextHandler:pool-1-thread-1 for
channel id=167: Started
o.s.j.s.ServletContextHandler@1962b49{/,null,AVAILABLE}
2017-08-16 22:23:14.240:INFO:osjs.AbstractConnector:pool-1-thread-1 for
channel id=167: Started ServerConnector@b7382c{HTTP/1.1,[http/1.1]}
{0.0.0.0:4444}
2017-08-16 22:23:14.240:INFO:osjs.Server:pool-1-thread-1 for channel id=167:
Started @1960ms
Aug 16, 2017 10:23:14 PM hudson.plugins.selenium.HubLauncher call
OFF: Grid Hub started on port 4444 with args: -maxSession 5 -timeout 300 -
browserTimeout 0 -host [my-jenkins-server]
Aug 16, 2017 10:23:17 PM org.openqa.grid.internal.Registry add
INFO: Registered a node http://[my-jenkins-server]:4445
Aug 16, 2017 10:23:54 PM org.openqa.grid.internal.Registry removeIfPresent
WARNING: Cleaning up stale test sessions on the unregistered node
http://[my-jenkins-server]:4445
channel stopped
任何明显的建议或有用的错误数据的位置将不胜感激。
谢谢!
疑难解答
我明白问题出在哪里了。仅使用 .jnlp 文件将 Selenium Agent 节点连接到 Selenium Grid Master 是不够的。
解决方案
我还必须在每个代理上启动 selenium 独立服务器。
实施
我在 windows 代理上创建了一个 windows 批处理文件,它做了 2 件事。
- 它启动了 .jnlp 连接
- 它启动了 selenium 独立服务器(jar 文件)
观察结果
节点上匹配配置的启动执行相同的操作,当您单击启动时,它只是刷新并且配置未列在“运行 配置”下。但是,如果您转到 Hub Management UI 和“Grid Web Console”,您会看到已连接的代理和已启用的浏览器。此外,当您 运行 在 Visual Studio 中进行本地测试并将它们指向网格时,代理实际上会进行 运行 测试。
也许现在的问题只是一个 UI 问题,将会得到解决。最终,现在代理已连接并且可以 运行 分布式测试。
我实际上有两个相关的问题。我无法在连接到 Jenkins 下的网格服务器 运行 的 Selenium 网格节点(在 'nodes matching configurations' 下列出)上启动 'matching configurations'。我也找不到任何包含相关信息的错误日志。
- 无法在 running/connected Selenium 网格节点 上启动 'Matching Configurations'
- 执行此操作时写入的日志在哪里
症状:
- 单击其中一个 'matching configurations' 旁边的 'start' 按钮后,页面快速刷新,您在 'running configurations'. 下看不到任何条目
Setup/Troubleshooting
- 运行 网格控制台 v.3.5.0
- 运行 詹金斯 slave.war 3.1.0
- 适当的防火墙规则已打开以建立连接
- 网格代理节点连接到selenium网格服务器
- 代理节点正在使用 java web start .jnlp 文件启动。
- .jnlp 文件显示已连接
- 您会在匹配配置下看到已连接的代理节点
- 我可以在 Selenium Grid 服务器上启动 'matching configurations'
在代理节点的日志 (C:\jenkins\remoting\logs) 中,我在 'matching configurations' 启动失败后看到的最后一个条目显示成功消息,这显然是不相关的 - (我实际上不真的看不出任何错误)。
2017 年 8 月 16 日 10:31:08 下午 org.jenkinsci.remoting.engine.JnlpAgentEndpointResolver 解决 信息:远程处理服务器接受以下协议:[JNLP4-connect、JNLP-connect、Ping、JNLP2-connect]
在 selenium Grid 控制台中我看到:
Starting Selenium Grid
[Jenkins] $ "C:\Program Files (x86)\Jenkins\jre\bin\java" -cp "C:\Program
Files (x86)\Jenkins\war\WEB-INF\lib\remoting-3.10.jar"
hudson.remoting.Launcher -cp "C:\Program Files
(x86)\Jenkins\plugins\selenium\WEB-INF\lib\selenium-server-standalone-
3.5.0.jar;C:\Program Files (x86)\Jenkins\plugins\selenium\WEB-
INF\lib\htmlunit-driver-standalone-2.20.jar" -connectTo localhost:7138
Starting Selenium Grid
channel started
Aug 16, 2017 10:23:13 PM hudson.plugins.selenium.HubLauncher call
OFF: Grid hub starting with log level INFO
Aug 16, 2017 10:23:13 PM hudson.plugins.selenium.HubLauncher call
OFF: Grid Hub preparing to start on port 4444
2017-08-16 22:23:14.131:INFO::pool-1-thread-1 for channel id=167: Logging
initialized @1842ms to org.seleniumhq.jetty9.util.log.StdErrLog
Aug 16, 2017 10:23:14 PM org.openqa.grid.web.Hub initServer
INFO: Will listen on 4444
2017-08-16 22:23:14.193:INFO:osjs.Server:pool-1-thread-1 for channel id=167:
jetty-9.4.5.v20170502
2017-08-16 22:23:14.225:INFO:osjs.session:pool-1-thread-1 for channel
id=167: DefaultSessionIdManager workerName=node0
2017-08-16 22:23:14.225:INFO:osjs.session:pool-1-thread-1 for channel
id=167: No SessionScavenger set, using defaults
2017-08-16 22:23:14.225:INFO:osjs.session:pool-1-thread-1 for channel
id=167: Scavenging every 600000ms
2017-08-16 22:23:14.225:INFO:osjsh.ContextHandler:pool-1-thread-1 for
channel id=167: Started
o.s.j.s.ServletContextHandler@1962b49{/,null,AVAILABLE}
2017-08-16 22:23:14.240:INFO:osjs.AbstractConnector:pool-1-thread-1 for
channel id=167: Started ServerConnector@b7382c{HTTP/1.1,[http/1.1]}
{0.0.0.0:4444}
2017-08-16 22:23:14.240:INFO:osjs.Server:pool-1-thread-1 for channel id=167:
Started @1960ms
Aug 16, 2017 10:23:14 PM hudson.plugins.selenium.HubLauncher call
OFF: Grid Hub started on port 4444 with args: -maxSession 5 -timeout 300 -
browserTimeout 0 -host [my-jenkins-server]
Aug 16, 2017 10:23:17 PM org.openqa.grid.internal.Registry add
INFO: Registered a node http://[my-jenkins-server]:4445
Aug 16, 2017 10:23:54 PM org.openqa.grid.internal.Registry removeIfPresent
WARNING: Cleaning up stale test sessions on the unregistered node
http://[my-jenkins-server]:4445
channel stopped
任何明显的建议或有用的错误数据的位置将不胜感激。
谢谢!
疑难解答
我明白问题出在哪里了。仅使用 .jnlp 文件将 Selenium Agent 节点连接到 Selenium Grid Master 是不够的。
解决方案
我还必须在每个代理上启动 selenium 独立服务器。
实施
我在 windows 代理上创建了一个 windows 批处理文件,它做了 2 件事。
- 它启动了 .jnlp 连接
- 它启动了 selenium 独立服务器(jar 文件)
观察结果
节点上匹配配置的启动执行相同的操作,当您单击启动时,它只是刷新并且配置未列在“运行 配置”下。但是,如果您转到 Hub Management UI 和“Grid Web Console”,您会看到已连接的代理和已启用的浏览器。此外,当您 运行 在 Visual Studio 中进行本地测试并将它们指向网格时,代理实际上会进行 运行 测试。
也许现在的问题只是一个 UI 问题,将会得到解决。最终,现在代理已连接并且可以 运行 分布式测试。