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

Selenium Java(TestNG)如何配置自定义环境URL?

当然可以!不用Maven也能轻松搞定环境URL的灵活切换,再也不用每次手动改代码里的URL了。给你几个实用的方案,都是纯TestNG就能实现的:

方案1:利用TestNG的XML参数传递

这是最直接的方法,把环境URL配置在TestNG的xml套件文件里,测试类直接读取参数即可:

首先在你的testng.xml中添加全局参数:

<suite name="TestSuite">
    <!-- 这里配置当前要使用的环境URL -->
    <parameter name="baseUrl" value="https://google.com"/>
    <test name="SampleTest">
        <classes>
            <class name="com.yourpackage.YourTestClass"/>
        </classes>
    </test>
</suite>

然后在测试类中通过@Parameters注解接收这个参数:

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.testng.annotations.Parameters;
import org.testng.annotations.Test;

public class YourTestClass {
    private WebDriver driver;

    @Test
    @Parameters("baseUrl")
    public void launchApp(String baseUrl) {
        driver = new ChromeDriver();
        driver.get(baseUrl); // 直接使用传入的URL
        // 你的测试逻辑代码
        driver.quit();
    }
}

切换环境时,只需要修改testng.xml里的baseUrl参数值,完全不用改动测试代码

方案2:使用Properties配置文件管理多环境

如果需要同时维护多个环境的URL(比如开发、测试、生产),用配置文件会更清晰:

  1. 先创建一个config.properties文件,把各个环境的URL都存进去:
# 多环境URL配置
dev.url=https://dev.yourdomain.com
test.url=https://test.yourdomain.com
prod.url=https://google.com
  1. 写一个简单的工具类来读取这个配置文件:
import java.io.FileInputStream;
import java.io.IOException;
import java.util.Properties;

public class ConfigHelper {
    private static Properties configProps;

    static {
        try {
            // 注意替换成你的config.properties文件路径
            FileInputStream fis = new FileInputStream("src/main/resources/config.properties");
            configProps = new Properties();
            configProps.load(fis);
            fis.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    public static String getEnvUrl(String envKey) {
        return configProps.getProperty(envKey);
    }
}
  1. 在测试类里调用工具类获取对应环境的URL:
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.testng.annotations.Test;

public class YourTestClass {
    private WebDriver driver;

    @Test
    public void launchApp() {
        // 这里指定要使用的环境,比如换成test.url就切换到测试环境
        String baseUrl = ConfigHelper.getEnvUrl("prod.url");
        driver = new ChromeDriver();
        driver.get(baseUrl);
        // 你的测试逻辑代码
        driver.quit();
    }
}

如果想更灵活,还可以结合方案1的XML参数,在xml里指定环境类型(比如dev/test/prod),让工具类根据参数自动读取对应URL,彻底不用改代码

方案3:命令行参数传递(适合CI/CD场景)

如果习惯用命令行启动测试,TestNG支持直接从命令行传入URL参数:

启动测试的命令示例:

java -cp "path/to/testng.jar:path/to/your/test/classes" org.testng.TestNG testng.xml -dbaseUrl=https://bing.com

然后在测试类里通过System.getProperty()获取这个参数:

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.testng.annotations.Test;

public class YourTestClass {
    private WebDriver driver;

    @Test
    public void launchApp() {
        // 第二个参数是默认URL,如果命令行没传就用这个默认值
        String baseUrl = System.getProperty("baseUrl", "https://google.com");
        driver = new ChromeDriver();
        driver.get(baseUrl);
        // 你的测试逻辑代码
        driver.quit();
    }
}

这种方式完全不用改任何配置文件,适合在自动化流水线中动态指定环境

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 07:20:41