You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

关于远程执行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节点操作:

  1. 安装Java依赖:sudo apt install openjdk-17-jre-headless(Linux);Windows直接下载JDK 17安装并配置环境变量
  2. 下载Selenium Server:wget https://github.com/SeleniumHQ/selenium/releases/download/selenium-4.15.0/selenium-server-4.15.0.jar(替换为最新版本)
  3. 启动Hub:java -jar selenium-server-4.15.0.jar hub --port 4444

Node节点操作:

  1. 安装同版本Java与Selenium Server
  2. 启动Node并连接Hub:java -jar selenium-server-4.15.0.jar node --hub http://<Hub-IP>:4444 --max-sessions 5(--max-sessions指定并行任务数)
  3. 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为例)

  1. 在Jenkins服务器配置:确保Jenkins能访问Hub节点的4444端口(添加VM IP到防火墙白名单)
  2. 创建Jenkins任务:拉取自动化Suite代码仓库
  3. 构建步骤:执行测试命令(如pytest ./tests --alluredir=./allure-results)
  4. 测试报告配置:安装Allure插件,配置构建后步骤生成并展示测试报告

内容的提问来源于stack exchange,提问作者Inquisitive

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 07:43:20