我们尝试将selenium节点从一台机器迁移到多台机器,并将一半的节点迁移到云。
目前,Selenium网格的结构如下所示:
当我试图将节点连接到集线器时,节点不会显示在集线器中,节点无限地向集线器发送注册事件。
集线器4444、4443和4442端口可直接连接事件和集线器。
当节点发送注册事件时,以下日志显示在集线器中:节点:
java -jar selenium-server-4.1.3.jar node --hub http://admin:admin@my.server.ip.address:4444 --config node.toml
22:00:24.981 INFO [LoggingOptions.configureLogEncoding] - Using the system default encoding
22:00:24.985 INFO [OpenTelemetryTracer.createTracer] - Using OpenTelemetry for tracing
22:00:25.154 INFO [UnboundZmqEventBus.<init>] - Connecting to tcp://52.14.198.246:4442 and tcp://52.14.198.246:4443
22:00:25.201 INFO [UnboundZmqEventBus.<init>] - Sockets created
22:00:26.202 INFO [UnboundZmqEventBus.<init>] - Event bus ready
22:00:26.499 INFO [NodeServer.createHandlers] - Reporting self as: http://192.168.46.1:5555
22:00:26.723 INFO [NodeOptions.getSessionFactories] - Detected 12 available processors
22:00:26.724 WARN [NodeOptions.getSessionFactories] - Overriding max recommended number of 12 concurrent sessions. Session stability and reliability might suffer!
22:00:26.725 WARN [NodeOptions.getSessionFactories] - One browser session is recommended per available processor. Safari is always limited to 1 session per host.
22:00:26.726 WARN [NodeOptions.getSessionFactories] - Overriding this value for Internet Explorer is not recommended. Issues related to parallel testing with Internet Explored won't be accepted.
22:00:26.726 WARN [NodeOptions.getSessionFactories] - Double check if enabling 'override-max-sessions' is really needed
22:00:26.764 INFO [NodeOptions.report] - Adding Chrome for {"browserName": "chrome","se:webDriverExecutable": "D:\\selenium\\chromedriver.exe","platformName": "WIN10"} 12 times
22:00:26.774 INFO [Node.<init>] - Binding additional locator mechanisms: relative, name, id
22:00:27.169 INFO [NodeServer$1.start] - Starting registration process for Node http://192.168.46.1:5555
22:00:27.170 INFO [NodeServer.execute] - Started Selenium node 4.1.3 (revision 7b1ebf28ef): http://192.168.46.1:5555
22:00:27.181 INFO [NodeServer$1.lambda$start$1] - Sending registration event...
node.toml
[node]
override-max-session = true
max-session = 5
枢纽:
java -jar selenium-server-4.1.3.jar hub --config hub.toml
18:59:15.183 INFO [LoggingOptions.configureLogEncoding] - Using the system default encoding
18:59:15.189 INFO [OpenTelemetryTracer.createTracer] - Using OpenTelemetry for tracing
18:59:15.352 INFO [BoundZmqEventBus.<init>] - XPUB binding to [binding to tcp://*:4442, advertising as tcp://172.31.45.214:4442], XSUB binding to [binding to tcp://*:4443, advertising as tcp://172.31.45.214:4443]
18:59:15.412 INFO [UnboundZmqEventBus.<init>] - Connecting to tcp://172.31.45.214:4442 and tcp://172.31.45.214:4443
18:59:15.449 INFO [UnboundZmqEventBus.<init>] - Sockets created
18:59:16.450 INFO [UnboundZmqEventBus.<init>] - Event bus ready
18:59:17.267 INFO [Hub.createHandlers] - Requiring authentication to connect
18:59:17.420 INFO [Hub.execute] - Started Selenium Hub 4.1.3 (revision 7b1ebf28ef): http://172.31.45.214:4444
19:00:24.011 INFO [Node.<init>] - Binding additional locator mechanisms: id, name, relative
19:00:34.785 INFO [Node.<init>] - Binding additional locator mechanisms: relative, name, id
hub.toml
[router]
username = admin
password = admin
我在配置中错过了什么?
更新:
当我在调试模式下运行时,我看到了到节点的连接超时:
13:45:22.386 DEBUG [LocalDistributor.add] - Exception while adding Node http://52.14.57.227:5555
java.io.UncheckedIOException: java.net.ConnectException: connection timed out: /52.14.57.227:5555
at org.openqa.selenium.remote.http.netty.NettyHttpHandler.makeCall(NettyHttpHandler.java:80)
at org.openqa.selenium.remote.http.AddSeleniumUserAgent.lambda$apply$0(AddSeleniumUserAgent.java:42)
at org.openqa.selenium.remote.http.Filter.lambda$andFinally$1(Filter.java:56)
at org.openqa.selenium.remote.http.netty.NettyHttpHandler.execute(NettyHttpHandler.java:51)
at org.openqa.selenium.remote.http.AddSeleniumUserAgent.lambda$apply$0(AddSeleniumUserAgent.java:42)
at org.openqa.selenium.remote.http.Filter.lambda$andFinally$1(Filter.java:56)
at org.openqa.selenium.remote.http.netty.NettyClient.execute(NettyClient.java:124)
at org.openqa.selenium.remote.tracing.TracedHttpClient.execute(TracedHttpClient.java:55)
at org.openqa.selenium.grid.node.remote.RemoteNode.getStatus(RemoteNode.java:208)
at org.openqa.selenium.grid.distributor.local.LocalDistributor.add(LocalDistributor.java:305)
at org.openqa.selenium.grid.distributor.local.LocalDistributor.register(LocalDistributor.java:291)
at org.openqa.selenium.events.EventListener.accept(EventListener.java:43)
at org.openqa.selenium.events.EventListener.accept(EventListener.java:25)
at org.openqa.selenium.events.zeromq.UnboundZmqEventBus$PollingRunnable.lambda$notifyListeners$2(UnboundZmqEventBus.java:301)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
at java.base/java.lang.Thread.run(Thread.java:833)
Caused by: java.net.ConnectException: connection timed out: /52.14.57.227:5555
at org.asynchttpclient.netty.channel.NettyConnectListener.onFailure(NettyConnectListener.java:179)
at org.asynchttpclient.netty.channel.NettyChannelConnector$1.onFailure(NettyChannelConnector.java:108)
at org.asynchttpclient.netty.SimpleChannelFutureListener.operationComplete(SimpleChannelFutureListener.java:28)
at org.asynchttpclient.netty.SimpleChannelFutureListener.operationComplete(SimpleChannelFutureListener.java:20)
at io.netty.util.concurrent.DefaultPromise.notifyListener0(DefaultPromise.java:578)
at io.netty.util.concurrent.DefaultPromise.notifyListeners0(DefaultPromise.java:571)
at io.netty.util.concurrent.DefaultPromise.notifyListenersNow(DefaultPromise.java:550)
at io.netty.util.concurrent.DefaultPromise.notifyListeners(DefaultPromise.java:491)
at io.netty.util.concurrent.DefaultPromise.setValue0(DefaultPromise.java:616)
at io.netty.util.concurrent.DefaultPromise.setFailure0(DefaultPromise.java:609)
at io.netty.util.concurrent.DefaultPromise.tryFailure(DefaultPromise.java:117)
at io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe$1.run(AbstractNioChannel.java:262)
at io.netty.util.concurrent.PromiseTask.runTask(PromiseTask.java:98)
at io.netty.util.concurrent.ScheduledFutureTask.run(ScheduledFutureTask.java:170)
at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:164)
at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:469)
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:503)
at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:986)
at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
... 1 more
Caused by: io.netty.channel.ConnectTimeoutException: connection timed out: /52.14.57.227:5555
at io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe$1.run(AbstractNioChannel.java:261)
... 9 more
13:45:22.386 FINEST [LoggingHandler.channelUnregistered] - [id: 0xef015bd6] UNREGISTERED
发布于 2022-04-26 16:26:48
当我在日志级别上运行集线器时,我发现集线器无法通过端口5555连接到节点。
解决方案是打开机器上的端口5555:
https://stackoverflow.com/questions/71972399
复制相似问题