java - 如何通过 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;
}
}
解决方案
您使用的方法是正确的,但是当您匹配参数中的字符串值时,您需要使用contains
orequals
方法而不是==
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;
}
推荐阅读
- .net - 获取文件和文件夹,不包括 .Net 中 s3 的子文件夹中的文件
- python - 在 plotly 中设置 3d 图中轴标签的对峙(刻度标签与轴标签重叠)
- android - 转移到 TargetSDKVersion 29 后,我的 AR 应用程序崩溃
- express - 在 esbuild 中重新启动 express 服务器
- html - 在屏幕达到一定宽度之前,如何使导航栏项目在 bootstrap 5 中不可见?
- html - 背景图标/图像到 HTML 表格单元格
- javascript - 为什么我的代码在首次运行时没有在控制台上记录任何内容?
- python - 如何将数据从 Python 进程返回到请求它的进程
- java - 如何使用 JXPath
- c# - 在 Razorpages 中,“UseRouting”方法没有重载需要 1 个参数