您的位置:软件测试 > 开源软件测试 > 开源功能测试工具 > Selenium
Docker+Selenium Grid构建分布式Web测试环境
作者:wywincl 发布时间:[ 2017/3/17 10:46:57 ] 推荐标签:功能测试 Selenium

  一. 简介
  当前容器技术不断发展,越来越多的应用部署到容器上,改变了软件部署的方式。因此我们考虑利用Docker容器技术并且结合Selenium Grid来搭建一套Web分布式测试集群。
  二. 准备工作
  Docker环境
  首先需要在本机安装Docker环境,这里不具体介绍如何在不同系统安装Docker了。安装好Docker以后,输入docker version查看docker的版本信息验证是否安装成功。


  
Docker Version

  Selenium相关镜像
  selenium/hub
  wywincl/node-firefox-debug
  从docker hub上拉取新的镜像
  docker pull selenium/hub
  docker pull wywincl/node-firefox-debug
  三. 启动容器
  第一步,启动selenium-hub
  docker run -d -p 4444:4444 --name selenium-hub selenium/hub
  第二步,启动node-firefox-debug,注册到hub节点上
  docker run -d -P -p 5901:5900 --link selenium-hub:hub wywincl/node-firefox-debug
  四. 测试
  执行docker ps命令,查看容器是否正常启动;
docker ps
CONTAINER ID        IMAGE                        COMMAND                  CREATED             STATUS              PORTS                     NAMES
39693a681c29        wywincl/node-firefox-debug   "/opt/bin/entry_point"   24 minutes ago      Up 24 minutes       0.0.0.0:5901->5900/tcp    elegant_dijkstra
da8c2598666f        selenium/hub                 "/opt/bin/entry_point"   9 days ago          Up 51 minutes       0.0.0.0:32768->4444/tcp   selenium-hub
  运行一个基本的测试用例demo.robot,如下所示, 我们的用例是用Robot Framework编写的,具体编写方法请参考Robot Framework测试框架
*** Setting ***
Library    Selenium2Library
*** Variables ***
${HOST}    https://www.baidu.com
*** Test Cases ***
T_Case_1
Log    Open Browser
Open Browser    ${HOST}    firefox    remote_url=http://0.0.0.0:32768/wd/hub
Input Text    id=kw    Robot Framework
Click Button    id=su
Capture Page Screenshot
Sleep    5s
Close Browser
*** Keywords ***
  执行测试用例
  robot demo.robot

  我们可以通过vncviewer连接到我们的node-firefox-debug实例来查看实际运行效果。

  Docker桌面显示

  上面的Case,我们用了截图关键字Capture Page Screenshot, 因此我们看到在容器中的firefox的截图页面。方便调试。



Selenium-Screenshot

  点击预览视频,查看实际演示效果。
  通过hub-console查看节点注册情况

  Selnium hub Grid Console
  到此,我们完成了在Docker中构建Firefox执行实例了。后面我们会重点介绍如何利用docker-compose,docker-swarm来构建分布式Web测试集群。同时利用jenkins实现持续集成,达到Devops佳实践。
  终的效果图如下:



  
selenium grid with docker

  五. 贡献
  大家应该注意到了容器中的firefox显示中文出现了部分乱码情况,由于目前还没有时间解决该问题,希望大家有空可以帮忙解决。项目地址node-firefox-debug, 欢迎大家pull request.

软件测试工具 | 联系我们 | 投诉建议 | 诚聘英才 | 申请使用列表 | 网站地图
沪ICP备07036474 2003-2017 版权所有 上海泽众软件科技有限公司 Shanghai ZeZhong Software Co.,Ltd