分布式测试集群搭建
Selenium Grid 是 Selenium 生态系统中的关键组件,专为分布式测试设计,支持在多环境、多设备上并行执行测试用例,显著提升测试效率
核心组成:
-
Hub(中心节点):作为控制中枢,负责接收测试请求并将任务分发至符合条件的节点。通常运行在单一机器上。
-
Node(执行节点):实际执行测试的机器,可注册到 Hub。每个节点可配置不同的浏览器、版本及操作系统(如 Chrome on Windows、Firefox on macOS)。
docker Swarm里执行
先启动hub中心
docker service create \
--name selenium-hub\
--with-registry-auth\
--network product_overlay_network \
--replicas 1 \
--constraint 'node.labels.jeecgcenter== true' \
docker.m.daocloud.io/selenium/hub:latest
再启动node节点
docker service create \
--name selenium-node-chromium \
--network product_overlay_network \
--replicas 1 \
--constraint 'node.labels.jeecgcenter==true' \
-e SE_EVENT_BUS_HOST=selenium-hub \
--mount type=tmpfs,destination=/dev/shm,tmpfs-size=2g \
-e SE_EVENT_BUS_PUBLISH_PORT=4442 \
-e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \
docker.m.daocloud.io/selenium/node-chromium:latest
注意:swarm集群和 network网络请自行创建。
- 子节点可以后面调整节点个数,默认为1个
效果展示:
启动8个节点的效果如下:
![](https://i-blog.csdnimg.cn/direct/11ed94ab92e245e3832e1b50882a17c7.png)
使用场景
- 1.不同类型浏览器进行测试用例测试
- 2.数据抓取的时候,使用该集群可以减少浏览器安装以及驱动配置支持selenium,playwright框架。
优势
可以指定任意数量的节点运行,
节点实时运行,不需要每次都启动停止浏览器,用完只需断开连接,后面继续使用连接上来就行,效率很高