如何在Windows上使用docker设置selenium网格?

时间:2016-04-21 14:49:24

标签: selenium docker protractor

我已采取的措施 1.下载并安装用于Windows的Docker Toolbox 2.打开Docker Quickstart终端
3.输入以下命令从dockerhub中拉出docker图像并运行它们 docker pull selenium/hub
docker pull selenium/node-chrome
docker pull selenium/node-firefox
docker run -d -P \--name hub selenium/hub
docker run -d --link hub:hub -P \--name chrome selenium/node-chrome
docker run -d --link hub:hub -P \--name firefox selenium/node-firefox

当我输入docker logs hub时,它似乎正在运行,但我无法使用conf.js文件中的seleniumAddress将我的测试路由到虚拟机VM上的中心地址或查看它使用http://ipAddress:4444/grid/console

理想情况下,我想使用此设置来扩展我可以运行的并行测试实例的数量。

3 个答案:

答案 0 :(得分:6)

不幸的是,selenium docker图片可能是broken since 4 days ago,但您可以尝试我的alternative one

  1. 拉出图片并根据需要运行多个容器

    docker pull elgalu/selenium
    
    docker run -d --name=grid4 -p 4444:24444 -p 5904:25900 \
        -v /dev/shm:/dev/shm -e VNC_PASSWORD=hola elgalu/selenium
    
    docker run -d --name=grid5 -p 4445:24444 -p 5905:25900 \
        -v /dev/shm:/dev/shm -e VNC_PASSWORD=hola elgalu/selenium
    
    docker run -d --name=grid6 -p 4446:24444 -p 5906:25900 \
        -v /dev/shm:/dev/shm -e VNC_PASSWORD=hola elgalu/selenium
    
  2. 在开始测试之前等待所有网格正常启动(可选但建议)

    docker exec grid4 wait_all_done 30s
    docker exec grid5 wait_all_done 30s
    docker exec grid6 wait_all_done 30s
    
  3. 此后,Selenium应该在http://localhost:4444/wd/hub启动并运行。在浏览器中打开URL以确认它正在运行。 如果您使用的是Mac(OSX)或Microsoft Windows localhost将无效!通过boot2docker ipdocker-machine ip default找出正确的IP。

    因此,为每个测试设置相应的selenium端口:

    • 第一次测试应该连接到http://ipAddress:4444/wd/hub
    • 第二次测试http://ipAddress:4445/wd/hub
    • 第3次测试http://ipAddress:4446/wd/hub

    您可以运行硬件可以使用的数量。

答案 1 :(得分:4)

看看Protractor Cookbook w/ Docker。使用selenium-grid和docker compose逐步列出这些说明。 Docker-selenium issue #208已修复。

所以你需要下载最新的图片*:

docker pull selenium/hub:latest
docker pull selenium/node-chrome-debug:latest

启动selenium网格:

docker run -d -p 4444:4444 --name selenium-hub selenium/hub:latest

然后添加selenium节点。我喜欢使用chrome-debug和firefox-debug版本来观看测试。

docker run -d -p <port>:5900 --link selenium-hub:hub selenium/node-chrome-debug:latest

在链接你的硒网格后,这应该足以使用seleniumAddress: 'http://localhost:4444/wd/hub'运行你的量角器测试。

要进行调试,请使用以下命令查找容器的VNC端口:

docker port <container-name or container-id> 5900

并通过VNC Viewer访问它。

注意:

  • 在撰写本文时,“最新”似乎与~2.53.1版本的selenium服务器绑定。从Protractor 4.0.11(最新版本的Protractor)开始,这是应该使用的受支持版本。请注意,Selenium-docker GitHub上的说明似乎是针对selenium server 3.0.1进行定制的。

答案 2 :(得分:-1)

您可以使用以下撰写文件来设置网格并通过VNC访问

**#要执行此docker-compose yml文件,请使用docker-compose -f up

**#添加&#34; -d&#34;最后标志为脱离执行****

version: '2'
services:
  firefoxnode:
    image: selenium/node-firefox-debug
    volumes:
      - /dev/shm:/dev/shm
    depends_on:
      - hub
    environment:
      HUB_HOST: hub
    ports:
      - "32772:5900"

  chromenode:
    image: selenium/node-chrome-debug
    volumes:
      - /dev/shm:/dev/shm
    depends_on:
      - hub
    environment:
      HUB_HOST: hub
    ports:
      - "32773:5900"

  hub:
    image: selenium/hub
    ports:
      - "4444:4444"

我使用的命令:

 docker-compose -f .\docker-compose.yml up -d

来源:

https://github.com/SeleniumHQ/docker-selenium