博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Docker+Selenium Grid构建分布式Web测试环境
阅读量:6901 次
发布时间:2019-06-27

本文共 2122 字,大约阅读时间需要 7 分钟。

一. 简介

当前容器技术不断发展,越来越多的应用部署到容器上,改变了软件部署的方式。因此我们考虑利用Docker容器技术并且结合Selenium Grid来搭建一套Web分布式测试集群。

img_aa41cee5f106f77cd83d1e0a998c5855.jpe
Docker

二. 准备工作

Docker环境

首先需要在本机安装Docker环境,这里就不具体介绍如何在不同系统安装Docker了。安装好Docker以后,输入docker version查看docker的版本信息验证是否安装成功。

img_e0262fea7dd19516d12bcb070a4e9908.png
Docker Version

Selenium相关镜像

selenium/hub
wywincl/node-firefox-debug

从docker hub上拉取最新的镜像

docker pull selenium/hubdocker 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 psCONTAINER ID        IMAGE                        COMMAND                  CREATED             STATUS              PORTS                     NAMES39693a681c29        wywincl/node-firefox-debug   "/opt/bin/entry_point"   24 minutes ago      Up 24 minutes       0.0.0.0:5901->5900/tcp    elegant_dijkstrada8c2598666f        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编写的,具体编写方法请参考

*** 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:4444/wd/hub    Input Text    id=kw    Robot Framework    Click Button    id=su    Capture Page Screenshot    Sleep    5s    Close Browser*** Keywords ***

执行测试用例

robot demo.robot

img_dd814b01a1672241931940d98d62b209.png

img_4a96c00acbc8f6131ef72af60c029c1a.png
Robot Test Results

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

img_8518c474ce6e76e864519c75ec0bc13b.png
vncviewer

Docker桌面显示

img_ee417c3fd9e05ff1f11ccc2c838be27c.png
Firefox IN Docker

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

img_5a02f0e8fb2ac5860816c0efad7da7dc.png
Selenium-Screenshot

点击,查看实际演示效果。

通过hub-console查看节点注册情况

img_b0dbb8622a8d00b6dc4d22400e090dd9.png
Selnium hub Grid Console

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

最终的效果图如下:

img_1a7b946bd8996734d84590724a5f4dc7.png
selenium grid with docker

五. 贡献

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

简介:

node-firefox-debug
Docker container for creating a selenium node with Firefox, only for development.

转载地址:http://zyvdl.baihongyu.com/

你可能感兴趣的文章
linux登录用户who,技术|Linux who 命令 – 显示系统登录者
查看>>
linux内核下载 2.6.32,linux内核升级到2.6.32
查看>>
client linux amd64,linux 下安装minio并配置
查看>>
linux中配置nginx,linux中编译安装和配置nginx
查看>>
Linux循环sql调用,shell中使用SQL实现查询
查看>>
linux中make命令大全,Linux中的命令 make -f 是什么意思
查看>>
qcustomplot在Linux开发板,QCustomplot的使用以及编译动态链接库的过程
查看>>
aes逆字节替换C语言,AES加密算法之字节替换操作
查看>>
2017福建省c语言编程题,[蓝桥杯][2017年第八届真题]九宫幻方-题解(C语言代码)
查看>>
c语言实验九结构体和共用体的区别,[C语言程序设计实验九结构体和共用体答案西北民大电气院.doc...
查看>>
android刷机工具mac版,刷机精灵mac版
查看>>
android+如何封装功能,Android - 如何封装 opengl 流程
查看>>
android c 高级编程源码,Objective-C高级编程
查看>>
android 剪贴板增强工具,剪切板增强工具(ClipboardFusion Pro)
查看>>
opencv android盒子,入门免费阅读_深入OpenCV Android应用开发免费全文_百度阅读
查看>>
html中加入定位按钮,HTML CSS按钮定位
查看>>
android 仿写开发者头条,android高仿今日头条富文本编辑(发布文章)
查看>>
microsoft html 帮助,Microsoft HTML Help 1.4
查看>>
html写顶部固定悬浮菜单栏,JS实现自动固定顶部的悬浮菜单栏效果
查看>>
不能创建对象qmdispatch_automation服务器不能创建对象。如何解决?
查看>>