39 | selenium基础架构,UI测试架构

什么是测试基础架构?

测试基础架构指的是,执行测试的过程中用到的所有基础硬件设施以及相关的软件设施。因此,我们也把测试基础架构称之为广义的测试执行环境。通常来讲,测试基础架构主要包括以下内容:

  • 执行测试的机器;测试用例代码仓库;
  • 发起测试执行的 Jenkins Job;
  • 统一的测试执行平台;
  • 测试用例执行过程中依赖的测试服务,比如提供测试数据的统一测试数据平台、提供测试全局配置的配置服务、生成测试报告的服务等;

Selenium Grid

目前最常用也是主流的测试分布式执行架构。

Selenium Hub 用来管理各个 Selenium Node 的注册信息和状态信息,并且接收远程客户端代码的测试调用请求,并把请求命令转发给符合要求的 Selenium Node 执行。GUI测试用例放到Hub

基于 Docker 的 Selenium Grid 的搭建方法

复制代码
#创建了Docker的网络grid
$ docker network create grid

#以Docker容器的方式启动Selenium Hub,并且对外暴露了4444端口
$ docker run -d -p 4444:4444 --net grid --name selenium-hub selenium/hub:3.14.0-europium

#以Docker容器的方式启动并挂载了Chrome的Selenium Node
$ docker run -d --net grid -e HUB_HOST=selenium-hub -v /dev/shm:/dev/shm selenium/node-chrome:3.14.0-europium

#以Docker容器的方式启动并挂载了Firefox的Selenium Node
$ docker run -d --net grid -e HUB_HOST=selenium-hub -v /dev/shm:/dev/shm selenium/node-firefox:3.14.0-europium

基于 Docker 实现的 Selenium Grid 的测试基础架构

可降低维护node成本

引入统一测试执行平台的测试基础架构

可进行测试用例的版本化管理和提供基于Restful API 的测试执行接口供 CI/CD 使用。

基于 Jenkins 集群的测试基础架构

解决的问题:随着测试需求的继续增长,单个 Jenkins 成了整个测试基础架构的瓶颈节点。来自于统一测试执行平台的大量测试请求,会在 Jenkins 上排队等待执行,而后端真正执行测试用例的 Selenium Grid 中很多 Node 处于空闲状态。

测试负载自适应的测试基础架构

通过单位时间内的测试用例数量,以及期望执行完所有测试的时间,来动态计算得到所需的 Node 类型和数量,然后再基于 Docker 容器快速添加新的 Node 到 Selenium Grid 中;而空闲时段则去监控哪些 Node 在指定时间长短内没有被使用,并动态地回收这些 Node 以释放系统资源。

集群自动扩容的其他方案

使用K8S

相关推荐
程序猿小郑13 小时前
Docker Compose 构建完整服务实战指南:从入门到最佳实践
docker·容器
行百里er17 小时前
5 分钟跑起 Redis(Docker 版)
redis·后端·docker
Mr.朱鹏17 小时前
Docker三剑客实战指南:Docker、Dockerfile 和 Docker Compose
python·docker·devops·dockerfile
鬼先生_sir18 小时前
Docker 完整教程
docker
java_logo18 小时前
Docker 一键部署 Jellyfin:快速搭建私有化媒体服务器
docker·私有化部署·jellyfin·硬件加速·媒体服务器·轩辕镜像·影音库
jianpeng的工程笔记19 小时前
WeKnora 搭建研发 EDA 知识库:Docker 部署、RAG 与 Wiki 实践
docker·知识库·eda·rag
ZeroNews内网穿透20 小时前
内网部署 Halo 建站,用 ZeroNews 免费内网穿透安全发布到公网(无公网 IP 也能 HTTPS 访问)
docker·https·内网穿透·nas·反向代理·halo·zeronews
九皇叔叔1 天前
K8S 资源菜单
docker·容器·kubernetes·k8s
wdfk_prog1 天前
ROS教程08:从 TransportTCP::connect() 追到 TCPROS Connection Header、序列化与 Socket 数据传输
运维·缓存·docker·容器·ros
zoutao981 天前
Gitea Actions 自定义 Runner 镜像与自动化部署实战
ci/cd·docker·gitea