Selenium Grid与Docker容器在不同的主机上 [英] Selenium Grid with Docker containers on different hosts

查看:639
本文介绍了Selenium Grid与Docker容器在不同的主机上的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我喜欢在AWS上设置一个带有官方Docker映像的Selenium Grid,可以在这里找到 https: //github.com/SeleniumHQ/docker-selenium

I like to setup a Selenium Grid on AWS with the official Docker images, that can be found here https://github.com/SeleniumHQ/docker-selenium

集线器和节点应位于不同的机器/ docker主机上。

Hub and nodes should reside on different machines / docker hosts.

我使用一个大使容器,如下所述: https://docs.docker .com / articles / ambassador_pattern_linking /

I use an ambassador container, as described here: https://docs.docker.com/articles/ambassador_pattern_linking/

(hub) - >(selenium-ambassador) - 网络 - >(硒 - 大使) >(节点)

(hub) --> (selenium-ambassador) --network--> (selenium-ambassador) --> (node)

我创建了两个EC2实例并执行了以下命令:

I created two EC2 instances and executed the following commands:

枢纽机器:

$ docker run -d --name selenium-hub selenium/hub:2.47.1
$ docker run -d --link selenium-hub:selenium-hub --name selenium_ambassador -p 4444:4444 svendowideit/ambassador

在节点计算机上:

$ docker run -d --name selenium_ambassador --expose 4444 -e SELENIUM_PORT_4444_TCP=tcp://<public-AWS-EC2-IP>:4444 svendowideit/ambassador
$ docker run -d --link selenium_ambassador:selenium-hub selenium/node-chrome:2.47.1

运行最后一个命令后,我在节点计算机上收到以下错误消息:

After running the last command, I get the following error message on the node machine:

Not linked with a running Hub container

每个EC2机器上的安全组允许端口22和4444。

Security groups on each EC2 machine allow port 22 and 4444.

我希望任何人都可以帮助我或给我一个线索?感谢提前。

I hope, anyone can help me or give me a clue? Thanks in advance.

推荐答案

经过一些研究,我发现没有额外的大使容器是必要的。在设置适当的参数/环境变量REMOTE_HOST,HUB_PORT_4444_TCP_ADDR,HUB_PORT_4444_TCP_PORT之后,节点和集线器可以直接进行通信。还有一个相应的解决问题 https://github.com/SeleniumHQ/docker-selenium/问题/ 51

After some more research, I've found out that no extra ambassador container is necessary. The node and hub can communicate directly after setting the appropriate parameters / environment variables REMOTE_HOST, HUB_PORT_4444_TCP_ADDR, HUB_PORT_4444_TCP_PORT. There is also a respective resolved issue https://github.com/SeleniumHQ/docker-selenium/issues/51

简而言之,只需执行以下命令:

To put it in a nutshell, just execute the following commands:

Hub

$ docker run -d -p 4444:4444 --name selenium-hub selenium/hub:2.47.1

Node

$ docker run -d -p 5555:5555 -e REMOTE_HOST="http://<PASTE-NODE-IP>:5555" -e HUB_PORT_4444_TCP_ADDR="<PASTE-HUB-IP>" -e HUB_PORT_4444_TCP_PORT="4444" --name chrome-node selenium/node-chrome:2.47.1

这篇关于Selenium Grid与Docker容器在不同的主机上的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆