UI自动化-Grid分布式运行

实现 Selenium Grid 分布式运行测试用例,核心是通过 Hub(中心节点) 统一调度、 Node(代理节点) 执行用例,实现多浏览器 / 多机器并行测试

  • Hub:Grid 的 "调度中心",负责接收测试请求、管理所有 Node 节点、分发用例到可用的 Node;
  • Node:连接到 Hub 的 "执行节点",提供浏览器运行环境(Chrome/Firefox 等),执行 Hub 分发的用例;
  • 核心价值:多机器 / 多浏览器并行执行用例,提升测试效率;支持跨平台(Windows/Linux/Mac)、跨浏览器测试。

1. 安装运行环境

1.1 下载 JDK(推荐 8/11 版本,兼容 Selenium 4.x):

2. 访问启动的地址:http://192.168.1.14:4444/ui/----能访问成功则说明启动成功

3. 连接Grid-单个用例

python 复制代码
import time
from selenium.webdriver import Remote, ChromeOptions

driver = Remote(
    command_executor="http://127.0.0.1:4444",
    options=ChromeOptions()
)
driver.get("https://www.baidu.com")

time.sleep(3)
driver.quit() # 在grid浏览器不会随着Python自动结束,务必要手动关闭!不然影响资源占用

4. 分布式执行

  • 执行命令: pytest -n 4(执行并行数) / pytest test_grid.py -n auto (自动根据 CPU 核心数并行)
  • 注意需要安装pytest-xdist插件: pip install pytest-xdist
python 复制代码
import pytest
import time
from selenium.webdriver import Remote, ChromeOptions


@pytest.fixture()
def driver():
    d = Remote(
        command_executor="http://127.0.0.1:4444",
        options=ChromeOptions()
    )
    yield d
    d.quit()  # 在grid 浏览器不会随着Python自动结束,务必要手动关闭!


@pytest.mark.parametrize(
    "url",
    [
        "https://www.baidu.com",
        "https://www.bilibili.com/",
        "https://www.csdn.net/",
    ]
)
def test_ces(driver, url):
    time.sleep(2)
    driver.get(url)

执行结果:三个用例同时执行

相关推荐
Initialize-le2 小时前
Nginx 504 超时、499 一堆?网关排查法
运维·nginx
IT_Octopus4 小时前
【零基础入门 LLM 开发 · Day 13】:LangChain 的对话记忆——Message 对象版
人工智能·python·langchain
2603_965148114 小时前
社区与学习资源:从入门到精通的API选品学习路径
数据库·人工智能·python·学习·数据挖掘
Android系统攻城狮4 小时前
Linux Gstreamer深度解析之gst_audio_ring_buffer_delay调用流程与实战(七十二)
linux·运维·服务器·gstreamer音视频·音视频进阶
快乐的韭菜根根5 小时前
ubuntu 安装slurm并配置
linux·运维·ubuntu
CCblandy5 小时前
令牌桶在 0.9 倍负载超发 19%、固定窗口边界放行 20 个:四种限流算法同构实测
后端·python·算法·性能优化·架构
U-Mail邮件系统5 小时前
自建邮箱服务器有哪些软件?三款主流邮件服务器软件推荐
运维·服务器
建筑工程企业管理系统5 小时前
工程进度统计管理系统自动化汇总数据,解决施工企业手工对账误差难题
大数据·人工智能·自动化
Cc.Y6 小时前
Java零基础入门:深入Java核心:文件IO与序列化全解
java·开发语言·python
拿本唠嗑AI研究6 小时前
本体工程实战指南:从建模到可维护的完整落地路径
java·人工智能·python·jena·ontology