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

 更新时间:2023年08月29日 11:34:05   作者:敲代码敲到头发茂密  
本文主要介绍了Docker部署UI自动化测试环境的实现步骤,通过Docker可以快速创建、部署和测试脚本,提高测试效率,具有一定的参考价值,感兴趣的可以了解一下

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

分布式自动化测试要解决什么问题?
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 启动状态

在这里插入图片描述

6、启动VNC Server

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

在这里插入图片描述

在这里插入图片描述

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

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()

在这里插入图片描述

 到此这篇关于Docker部署UI自动化测试环境的实现步骤的文章就介绍到这了,更多相关Docker部署UI自动化测试环境内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • docker 部署prometheus+grafana的过程详解

    docker 部署prometheus+grafana的过程详解

    这篇文章主要介绍了docker 部署prometheus+grafana的过程,本文通过示例图文相结合给大家介绍的非常详细,需要的朋友可以参考下
    2024-03-03
  • Docker容器host与none网络的使用

    Docker容器host与none网络的使用

    本文主要介绍了Docker容器host与none网络的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧<BR>
    2022-06-06
  • 使用docker快速部署Nginx、Redis、MySQL、Tomcat及制作镜像的方法

    使用docker快速部署Nginx、Redis、MySQL、Tomcat及制作镜像的方法

    这篇文章介绍了如何使用Docker快速部署Nginx、Redis、MySQL、Tomcat以及制作镜像的过程,它涵盖了从基础镜像的使用、Dockerfile的编写到应用的构建和部署的详细步骤,通过本文,可以掌握如何利用Docker简化应用的部署和管理,感兴趣的朋友跟随小编一起看看吧
    2024-11-11
  • docker拷贝文件到主机及导入导出容器及运行导出容器方式

    docker拷贝文件到主机及导入导出容器及运行导出容器方式

    这篇文章主要介绍了docker拷贝文件到主机及导入导出容器及运行导出容器方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-05-05
  • mac下docker 安装 ES的详细过程

    mac下docker 安装 ES的详细过程

    这篇文章主要介绍了mac下docker 安装 ES的详细过程,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-06-06
  • Docker容器化spring boot应用详解

    Docker容器化spring boot应用详解

    本篇文章主要介绍了Docker容器化spring boot应用详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-04-04
  • CentOS修改docker镜像存储位置并进行数据迁移的操作方法

    CentOS修改docker镜像存储位置并进行数据迁移的操作方法

    本文详细介绍了在CentOS上修改Docker镜像存储位置并进行数据迁移的步骤,包括停止Docker服务、创建新的存储目录、复制现有数据、修改Docker配置、重启Docker服务、验证配置、清理旧数据(可选)以及检查容器和镜像,感兴趣的朋友一起看看吧
    2025-01-01
  • docker安装部署zabbix的全过程

    docker安装部署zabbix的全过程

    zabbix由2部分构成,zabbix server与可选组件zabbix agent,要想搭建一个Zabbix的工作环境,主要有三个方面(界面、服务器和数据库)可以安装在同一台服务器上,也可以不在同一个服务器,本次使用Docker开源的应用容器来快速搭建zabbix,需要的朋友可以参考下
    2024-03-03
  • 使用docker compose一键部署多个服务的方法

    使用docker compose一键部署多个服务的方法

    docker compose 是 docker 官方的开源项目,用来实现对 docker 容器集群的快速编排,通过docker-compose可以一键创建和删除多个容器 ,本文给大家介绍的非常详细,感兴趣的朋友一起看看吧
    2024-01-01
  • docker镜像仓库hub.docker.com无法访问的解决方法

    docker镜像仓库hub.docker.com无法访问的解决方法

    最近许多群友都询问为什么无法访问Docker镜像仓库,本文就来介绍一下docker镜像仓库hub.docker.com无法访问的解决方法,感兴趣的可以了解一下
    2023-08-08

最新评论