首页 > 解决方案 > 如何通过 TestNG 参数化配置环境 URL?

问题描述

我为 RestAssured API 自动化创建了一个框架。在大多数情况下,有 2 个服务器:Staging & Production。我想通过 TestNG XML 文件对其进行参数化并指定要使用的环境。

一旦指定,我希望有一个方法将所有后续请求的 BaseURL 设置为通用的,因为我不想RestAssured.baseURI="http://stagingURL.com/"在我运行的每个测试用例中编写。这就是我在 TestNG.XML 文件中设置的内容 <parameter name="env" value="Staging"/>

如何编写一个将值作为Staging/production并相应调整基本 URL 的方法。我试着写这门课,但它不起作用

public class Environment {
    public static String env;
    public static String baseURL;

    @Test
    @Parameters({"env"})
    public static String getEnvironmentURL(){
        if(env=="Production"){
            baseURL="http://prodURL.com/";
        }
        else if(env=="Staging"){
            baseURL="http://stagingURL.com/";
        }
        return RestAssured.baseURI=baseURL;
    }
}

标签: javamavenseleniumtestngrest-assured

解决方案


您使用的方法是正确的,但是当您匹配参数中的字符串值时,您需要使用containsorequals方法而不是==as==匹配引用和contains/equals匹配值。

因此,您需要在代码中进行以下更改:

@Test
@Parameters({"env"})
public static String getEnvironmentURL(){
    if(env.equals("Production")){
        baseURL="http://prodURL.com/";
    }
    else if(env.equals("Staging")){
        baseURL="http://stagingURL.com/";
    }
    return RestAssured.baseURI=baseURL;
}

推荐阅读