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