首页 > 其他分享 >Docker部署UI自动化测试环境的实现步骤

Docker部署UI自动化测试环境的实现步骤

时间:2023-12-18 15:01:45浏览次数:20  
标签:node hub selenium tcp UI 测试环境 Docker docker SE


一、分布式自动化测试要解决什么问题?

分布式自动化测试要解决什么问题?
1、减少脚本执行耗时
2、减少对单机器的资源消耗
3、实现分布式兼容性测试

分布式自动化测试实现重点:
1、控制多机器并行运行,资源监控
2、测试用例执行顺序控制
3、测试报告收集合并

纵观开源技术,拿现在最流行的selenium\docker 来实践分布式自动化测试框架。

selenium grid是selenium的三大组件之一,它的作用就是分布式测试执行,它是由一个hub节点和若干个node代理节点组成,Hub用来管理各个代理节点的注册信息和状态信息,并且接受远程客户端代码的请求调用,然后把请求的命令转发给代理节点来执行。

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器或Windows 机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。


二、分布式环境搭建


1、环境准备

准备一台 Linux 服务器(云服务器、自建 Linux 服务器都可以)。
在 Linux 服务器上安装 docker,docker安装就不讲了,照着官网的命令来就可以了,很简单的。


2、创建容器

利用容器技术我们可以快速的构建我们selenium hub和node 环境,其实selenium官网已经为我们制作好了镜像,我们只需要在docker环境中拉取即可,以下为selenium官网为我们提供的镜像名称

拉取hub镜像
拉取chrome浏览器镜像
拉取firefox浏览器镜像

sudo docker pull selenium/hub
sudo docker pull selenium/node-chrome
sudo docker pull selenium/node-firefox


3、启动容器

启动hub节点的docker

-d:后台运行容器
-p:5442-5444:4442-4444:端口号一一映射,其中4444为web服务
5442,5443:node节点与hub节点用例通信的

docker run --name hub -d -p 5442-5444:4442-4444 selenium/hub

-p:5902:5900:作用是访问浏览器的图形界面
vnc 是linux的图形界面服务,远程桌面服务
-e:环境变量
SE_EVENT_BUS_HOST:指定主节点的ip地址
SE_NODE_MAX_SESSIONS=20:最多启动20个session(20个浏览器)

启动hub节点的docker

sudo docker run --name node -p 5902:5900 -d -e \
SE_EVENT_BUS_HOST=82.156.178.247 -e SE_NODE_MAX_SESSIONS=20 -e \
SE_NODE_OVERRIDE_MAX_SESSIONS=true -e SE_EVENT_BUS_PUBLISH_PORT=5442 \
-e SE_EVENT_BUS_SUBSCRIBE_PORT=5443 -v /dev/shm:/dev/shm selenium/node-chrome
sudo docker run --name node -p 5903:5900 -d -e \
SE_EVENT_BUS_HOST=82.156.178.247 -e SE_NODE_MAX_SESSIONS=20 -e \
SE_NODE_OVERRIDE_MAX_SESSIONS=true -e SE_EVENT_BUS_PUBLISH_PORT=5442 \
-e SE_EVENT_BUS_SUBSCRIBE_PORT=5443 -v /dev/shm:/dev/shm selenium/node-firefox


4、查看容器运行状态

CONTAINER ID   IMAGE                  COMMAND                  CREATED       STATUS          PORTS                                                                                                                             NAMES
0da5ef1265e4   selenium/node-chrome   "/opt/bin/entry_poin…"   2 days ago    Up 5 minutes    0.0.0.0:5902->5900/tcp, :::5902->5900/tcp                                                                                         node
40456e0d4363   selenium/hub           "/opt/bin/entry_poin…"   2 days ago    Up 5 minutes    0.0.0.0:5442->4442/tcp, :::5442->4442/tcp, 0.0.0.0:5443->4443/tcp, :::5443->4443/tcp, 0.0.0.0:5444->4444/tcp, :::5444->4444/tcp   hub


5、查看Selenium hub 、node 启动状态

Docker部署UI自动化测试环境的实现步骤_程序员

6、启动VNC Server

连接我们启动的容器IP:PORT,密码默认为sercet

Docker部署UI自动化测试环境的实现步骤_接口测试_02

 

Docker部署UI自动化测试环境的实现步骤_软件测试_03

到此,我们自动化测试的运行环境已经配置完毕,接下来看我们自动化测试脚本如何设计


7、测试脚本

from selenium import webdriver
import time
# 配置信息
from selenium.webdriver.common.by import By
ds = {
'platform': 'ANY',  # 平台(操作系统)信息
'browserName': 'chrome',  # 配置浏览器信息,谷歌浏览器
'version': '',
'javascriptEnabled': True
}
driver = webdriver.Remote('http://82.156.178.247:5444', desired_capabilities=ds)
driver.get('http://www.baidu.com')
driver.find_element(By.XPATH, '//*[@id="kw"]').send_keys("中国")
driver.find_element(By.XPATH, '//*[@id="su"]').click()
time.sleep(3)
driver.quit()

标签:node,hub,selenium,tcp,UI,测试环境,Docker,docker,SE
From: https://blog.51cto.com/u_15333581/8873926

相关文章

  • Docker环境下部署Ghost开源内容管理系统
    一、Ghost介绍1.1Ghost简介Ghost是一款用于博客、出版物和内容网站的免费且开源的CMS(内容管理系统),它是完全基于JavaScript编写的。Ghost的主要特点是简单易用、高度可扩展、精美的设计和优秀的性能。1.2Ghost特点简单易用:Ghost的用户界面非常简单和直观,因此非常易于使用。它提供......
  • Linux 安装 Harbor Docker镜像仓库&&远程访问
    Harbor是为企业用户设计的容器镜像仓库开源项目,包括了权限管理(RBAC)、LDAP、审计、安全漏洞扫描、镜像验真、管理界面、自我注册、HA等企业必需的功能,同时针对中国用户的特点,设计镜像复制和中文支持等功能。下面介绍如何在Linux安装并且使用cpolar内网穿透工具实现远程访问Har......
  • docker容器自动重启命令
    在服务器意外断电或者重启的情况下,docker服务是关闭的一个状态,每次断电或者重启都要使用命令手动重启服务,但是每次都要手动命令重启,比较麻烦,因此根据要求设置docker服务自动重启。1、设置docker容器进行开机自动重启我们可以使用以下命令进行设置docker容器自动重启#docker服务设置......
  • 鸿蒙(HarmonyOS)项目方舟框架(ArkUI)之Text文本组件
    鸿蒙(HarmonyOS)项目方舟框架(ArkUI)之文本组件一、操作环境操作系统: Windows10专业版IDE:DevEcoStudio3.1SDK:HarmonyOS3.1编辑二、文本组件Text 是显示文本的基础组件之一,它可以包含子组件 Span ,当包含 Span 时不生效,只显示 Span 的内容。Text('我是Text'){Span('......
  • (亲测)云原生之使用docker部署ZPan个人网盘系统
    一、ZPan介绍1.1ZPan简介ZPan是一个基于云存储的自托管云盘,用于自建私人网盘或企业网盘。1.2ZPan特点不受服务器带宽限制支持所有兼容S3协议的云存储支持文件和文件夹管理支持文件和文件夹共享(无需登录即可访问)支持文档预览和音视频播放支持多用户存储空间控制支持多种语言二、检......
  • (亲测)云原生之使用Docker部署Teedy轻量级文档管理系统
    一、Teedy介绍1.1Teedy简介Teedy是一个开源的、功能丰富、易于使用和自定义的文档管理工具,它能够帮助用户管理和组织文档,适用于个人、小组和组织使用。1.2Teedy特点创建和编辑文档:用户可以使用Markdown格式创建和编辑文档,还可以添加标签和注释。文件上传和管理:用户可以上传和管理......
  • Debian和Ubuntu国内安装docker和docker-compose
    01-安装docker0、如果你过去安装过docker,先删掉sudoapt-getremovedockerdocker-enginedocker.iocontainerdruncsudoapt-getpurgedocker-cedocker-ce-clicontainerd.iosudorm-rf/var/lib/dockersudorm-rf/etc/dockersudorm-rf/var/run/docker.socksudo......
  • tidb这种把数据库放入docker是否是个好主意。
    作者:tidb狂热爱好者将数据库放入Docker是否是个好主意?随着数字化时代的快速发展,企业越来越依赖于数据驱动决策。数据库作为数据存储的核心部分,其安全性、性能和可扩展性至关重要。而Docker的出现,为数据库应用提供了新的可能性。那么,Docker是什么?Docker是一种开源的容器化技术,它允......
  • Docker自建个人网盘 FileBrowser
    项目地址:https://github.com/filebrowser/filebrowser系统Demo:Demo地址:https://demo.filebrowser.org/账号密码:demo/demo前言:Filebrowser:轻量级文件服务器,一个开源的基于go的web文件管理器,支持Windows,Linux,docker以及安卓termux。开源地址: https://github.com/filebrowser/fileb......
  • Docker部署Node.js应用简单实践
    前言本文将从零至一,介绍如何在云服务器上通过Docker容器运行一个简单的Node应用。本文假设读者已经掌握基本的Linux,Docker,Node,Express知识。基本步骤本地写好nodejs应用,放到github。云服务器安装docker,配置国内镜像加速。拉取一个node镜像。从github拉取项目代码。编写Dockerfil......