我想要实现的是使用Selenium Grid的可扩展和按需测试基础架构。
我可以把所有事情都搞定,但我最终得到的是:
以下是所有部分:
使用的“暗示”软件是:
这是我能做到的:
创建,登录并ping所有主机&堆栈中的节点遵循以下准则:deploy Docker for AWS
通过运行:
在此查询结束时使用撰写文件进行部署docker stack deploy -c docker-compose.yml grid
使用AWS自动提供的面向公众的DNS名称查看Selenium Grid控制台(成功创建堆栈后)。以下是有关该主题的有用条目:Docker Swarm Mode。
以下是我正在使用的撰写文件的内容:
version: '3'
services:
hub:
image: selenium/hub:3.4.0-chromium
ports:
- 4444:4444
networks:
- selenium
environment:
- JAVA_OPTS=-Xmx1024m
deploy:
update_config:
parallelism: 1
delay: 10s
placement:
constraints: [node.role == manager]
chrome:
image: selenium/node-chrome:3.4.0-chromium
networks:
- selenium
depends_on:
- hub
environment:
- HUB_PORT_4444_TCP_ADDR=hub
- HUB_PORT_4444_TCP_PORT=4444
deploy:
placement:
constraints: [node.role == worker]
firefox:
image: selenium/node-firefox:3.4.0-chromium
networks:
- selenium
depends_on:
- hub
environment:
- HUB_PORT_4444_TCP_ADDR=hub
- HUB_PORT_4444_TCP_PORT=4444
deploy:
placement:
constraints: [node.role == worker]
networks:
selenium:
非常感谢有关此问题的任何指导。谢谢。
我也试过在群体中打开端口:
swarm-exec docker service update --publish-add 5555:5555 gird
答案 0 :(得分:0)
Google快速推出https://github.com/SeleniumHQ/docker-selenium/issues/255。您需要将以下内容添加到Chrome和Firefox节点:
entrypoint: bash -c 'SE_OPTS="-host $$HOSTNAME" /opt/bin/entry_point.sh'
这是因为容器在Swarm模式下有两个IP地址,并且节点正在拾取错误的地址并将其通告给集线器。此更改将使节点通告其主机名,以便集线器可以通过DNS找到节点。