0

0

Selenium Grid 4:指定节点运行测试用例的完整指南

聖光之護

聖光之護

发布时间:2025-08-08 19:24:13

|

585人浏览过

|

来源于php中文网

原创

selenium grid 4:指定节点运行测试用例的完整指南

本文旨在指导Selenium Grid 4初学者如何配置和使用Grid,特别是如何在拥有多个相同浏览器的节点时,指定测试用例在特定的节点上运行。通过配置节点的自定义能力并在代码中指定这些能力,可以精确控制测试的执行位置,从而更好地管理和利用Grid资源。

使用自定义能力指定节点

当Selenium Grid 4环境中存在多个具有相同浏览器的节点时,默认情况下,Grid会根据负载均衡策略自动选择一个节点来执行测试。为了确保测试在特定节点上运行,我们需要利用Selenium Grid 4的自定义能力(Custom Capabilities)特性。

1. 配置节点(Node)的自定义能力

首先,我们需要修改节点的配置文件(grid config toml 文件)来添加自定义能力。在node.driver-configuration部分,添加自定义的键值对。这些键值对可以用来标识不同的节点。

[node]
override-max-sessions = true
max-sessions = 15
selenium-manager = true
detect-drivers = false
enable-managed-downloads = true
grid-url = "yourIp"
session-timeout = 1800

[[node.driver-configuration]]
max-sessions = 15
display-name = "Chrome"
stereotype = '{"browserName": "chrome", "platformName": "WIN10",  "networkname:applicationName":"nodex",  "nodename:applicationName":"appx"}'

在上面的配置中,我们添加了两个自定义能力:"networkname:applicationName":"nodex" 和 "nodename:applicationName":"appx"。你需要将 yourIp 替换为你的 Grid Hub 的 IP 地址。并且为不同的节点配置不同的值,例如,Node A 可以配置为 "networkname:applicationName":"nodeA",Node B 配置为 "networkname:applicationName":"nodeB"。

重要提示:

  • override-max-sessions = true 允许你覆盖默认的最大会话数。
  • max-sessions = 15 设置节点可以同时运行的最大会话数。根据你的硬件资源进行调整。
  • 确保 detect-drivers = false 并且 selenium-manager = true 允许 Selenium Manager 自动管理浏览器驱动。
  • stereotype 定义了节点的浏览器类型、平台等信息。自定义能力也在此处添加。

2. 在测试代码中指定自定义能力

接下来,在你的测试代码中,你需要设置WebDriverOptions(例如,ChromeOptions, FirefoxOptions)来指定你希望测试运行的节点。

360 AI助手
360 AI助手

360公司推出的AI聊天机器人聚合平台,集合了国内15家顶尖的AI大模型。

下载
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxOptions;
import org.openqa.selenium.remote.RemoteWebDriver;
import java.net.MalformedURLException;
import java.net.URL;

public class SeleniumGridExample {

    public static void main(String[] args) throws MalformedURLException {
        FirefoxOptions options = new FirefoxOptions();
        options.setCapability("networkname:applicationName", "nodex");
        options.setCapability("nodename:applicationName", "appx");
        options.setBrowserVersion("96");
        options.setPlatformName("macOS");

        WebDriver driver = new RemoteWebDriver(new URL("http://localhost:4444"), options);
        driver.get("https://www.example.com");
        System.out.println("Page title is: " + driver.getTitle());
        driver.quit();
    }
}

在上面的代码中,我们创建了一个FirefoxOptions对象,并使用setCapability方法设置了与节点配置文件中相同的自定义能力键值对。这将指示Selenium Grid将此测试路由到具有相应自定义能力的节点。

注意:

  • 确保http://localhost:4444是你的Selenium Grid Hub的地址。
  • 根据你使用的浏览器类型,选择合适的WebDriverOptions类(例如,ChromeOptions,EdgeOptions)。
  • setBrowserVersion和setPlatformName可以帮助Grid更好地匹配节点。

3. 验证配置

运行你的测试代码。如果配置正确,测试应该只在具有指定自定义能力的节点上运行。你可以通过查看节点的日志或Grid的控制台来验证测试是否在正确的节点上执行。

总结

通过使用自定义能力,你可以精确控制Selenium Grid 4中测试的执行位置。这在需要针对特定环境或硬件配置进行测试时非常有用。请记住,确保节点配置文件和测试代码中的自定义能力键值对完全匹配,才能保证测试被正确地路由到目标节点。

相关专题

更多
http500解决方法
http500解决方法

http500解决方法有检查服务器日志、检查代码错误、检查服务器配置、检查文件和目录权限、检查资源不足、更新软件版本、重启服务器或寻求专业帮助等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

255

2023.11.09

http请求415错误怎么解决
http请求415错误怎么解决

解决方法:1、检查请求头中的Content-Type;2、检查请求体中的数据格式;3、使用适当的编码格式;4、使用适当的请求方法;5、检查服务器端的支持情况。更多http请求415错误怎么解决的相关内容,可以阅读下面的文章。

383

2023.11.14

HTTP 503错误解决方法
HTTP 503错误解决方法

HTTP 503错误表示服务器暂时无法处理请求。想了解更多http错误代码的相关内容,可以阅读本专题下面的文章。

888

2024.03.12

http与https有哪些区别
http与https有哪些区别

http与https的区别:1、协议安全性;2、连接方式;3、证书管理;4、连接状态;5、端口号;6、资源消耗;7、兼容性。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

1579

2024.08.16

ip地址修改教程大全
ip地址修改教程大全

本专题整合了ip地址修改教程大全,阅读下面的文章自行寻找合适的解决教程。

35

2025.12.26

压缩文件加密教程汇总
压缩文件加密教程汇总

本专题整合了压缩文件加密教程,阅读专题下面的文章了解更多详细教程。

18

2025.12.26

wifi无ip分配
wifi无ip分配

本专题整合了wifi无ip分配相关教程,阅读专题下面的文章了解更多详细教程。

46

2025.12.26

漫蛙漫画入口网址
漫蛙漫画入口网址

本专题整合了漫蛙入口网址大全,阅读下面的文章领取更多入口。

94

2025.12.26

b站看视频入口合集
b站看视频入口合集

本专题整合了b站哔哩哔哩相关入口合集,阅读下面的文章查看更多入口。

289

2025.12.26

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
如何进行WebSocket调试
如何进行WebSocket调试

共1课时 | 0.1万人学习

TypeScript全面解读课程
TypeScript全面解读课程

共26课时 | 5万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号