我为RestAssured API自动化创建了一个框架。与大多数情况一样,有两台服务器:暂存和生产。我想通过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;
    }
}

最佳答案

您使用的方法是正确的,尽管您要匹配参数中的字符串值,但是您需要使用containsequals方法而不是==,因为==会匹配引用和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;
}

10-06 10:49