关于远程执行VM申请、配置及CI/CD集成的技术咨询
问题解答:自动化测试远程执行VM部署与集成
一、初始认知纠正与补充
你的核心认知没有错误,补充几个关键细节:
- 远程执行除了CI/CD集成、全员共享、并行执行外,还能彻底隔离测试环境,避免本地开发环境的依赖差异、资源占用导致测试结果不稳定;
- Hub与Node部署:小规模场景(≤5个并行任务)可将Hub和单个Node部署在同一VM,大规模并行时建议分开部署Hub和多台Node VM,避免调度与执行的资源抢占;
- 全员访问需配套权限管控:通过VPN、防火墙规则限制VM访问范围,禁止直接暴露公网,避免测试数据或环境泄露。
二、VM规格选型(核心关注项)
按Hub节点和Node节点分别选型,核心取决于测试类型与并行任务数量:
1. Hub节点(调度节点)
Hub仅负责任务分发与状态监控,资源消耗极低:
- 基础配置(支持≤20个Node节点):2核CPU、4GB内存、50GB SSD存储
- 大规模配置(支持≥50个Node节点):4核CPU、8GB内存、100GB SSD存储
- 操作系统:优先选Ubuntu Server(资源占用远低于Windows)
2. Node节点(执行节点)
Node是资源消耗核心,按测试类型区分:
(1)API自动化测试
每个并行任务资源消耗极低:
- 基础配置(支持5-10个并行任务):1核CPU、2GB内存、30GB SSD存储
- 高并发场景(支持20+并行任务):2核CPU、4GB内存、50GB SSD存储
(2)UI自动化测试(Selenium/Appium)
每个浏览器/APP实例消耗较高:
- 基础配置(支持1-2个并行UI任务):1核CPU、2GB内存、60GB SSD存储
- 标准配置(支持3-5个并行UI任务):2核CPU、4GB内存、60GB SSD存储
- 高并行场景(支持6-10个并行UI任务):4核CPU、8GB内存、100GB SSD存储
- 注意:若需跑Windows平台UI测试,需选Windows Server镜像,内存需额外增加1-2GB(Windows本身资源占用更高)
(3)混合测试(UI+API)
按UI测试的标准配置选型,可适当增加1GB内存预留。
3. 弹性扩容建议
优先选择支持快速扩容的VM实例(如弹性云服务器),后期并行任务增加时可直接新增Node节点,无需重新配置Hub。
三、远程执行环境搭建实操
1. 基础VM配置
- 安装操作系统:优先Ubuntu Server 22.04(Linux)或Windows Server 2022(仅Windows UI测试用)
- 网络配置:开放Hub节点的4444端口(Selenium Grid默认端口),确保Node节点、CI/CD服务器能访问Hub的IP与端口
2. Selenium Grid部署(Hub+Node)
Hub节点操作:
- 安装Java依赖:
sudo apt install openjdk-17-jre-headless(Linux);Windows直接下载JDK 17安装并配置环境变量 - 下载Selenium Server:
wget https://github.com/SeleniumHQ/selenium/releases/download/selenium-4.15.0/selenium-server-4.15.0.jar(替换为最新版本) - 启动Hub:
java -jar selenium-server-4.15.0.jar hub --port 4444
Node节点操作:
- 安装同版本Java与Selenium Server
- 启动Node并连接Hub:
java -jar selenium-server-4.15.0.jar node --hub http://<Hub-IP>:4444 --max-sessions 5(--max-sessions指定并行任务数) - UI测试额外配置:安装对应浏览器(如Chrome)与匹配版本的驱动(如ChromeDriver),将驱动路径加入系统PATH
3. 与自动化Suite集成
修改测试代码的驱动配置,从本地驱动切换为远程Hub连接:
示例Python代码:
from selenium import webdriver from selenium.webdriver.chrome.options import Options chrome_options = Options() chrome_options.add_argument("--headless") # 无头模式,适合服务器环境 driver = webdriver.Remote( command_executor="http://<Hub-IP>:4444/wd/hub", options=chrome_options )
4. 与CI/CD Pipeline集成(以Jenkins为例)
- 在Jenkins服务器配置:确保Jenkins能访问Hub节点的4444端口(添加VM IP到防火墙白名单)
- 创建Jenkins任务:拉取自动化Suite代码仓库
- 构建步骤:执行测试命令(如
pytest ./tests --alluredir=./allure-results) - 测试报告配置:安装Allure插件,配置构建后步骤生成并展示测试报告
内容的提问来源于stack exchange,提问作者Inquisitive
相关产品推荐
相关产品推荐

