@Test
public void basicAuthLogin() {
//language=JSON
String jsonBody = "{n" +
" "name": "Foo"n" +
"}";
given().auth().preemptive().basic(username, password)
.body(jsonBody)
.contentType(ContentType.JSON)
.when()
.post("http://localhost:8080/secured/hello")
.then()
.statusCode(200);
}
我想传递名称的动态数据,而不是";Foo";。我该怎么做?
您需要在此处使用DataProvider
。它实际上在运行时为您的测试用例提供数据。有多种方法可以在测试用例之前、之后和期间向测试用例提供动态数据。
-
如果您正在使用
JUnit
并且可以使用@Parameters
提供数据,请使用@RunWith(Parameterized.class)
-
使用
@DataProvider (name = “name_of_dataprovider”)
并创建数据提供程序方法,以防使用TestNG
,并且可以在testCase中添加属性@Test (dataProvider = "data-provider")
。 -
您可以从文件中提供输入,也可以在
objectMapper
或Jackson
lib的帮助下编写通用映射器来获取数据,并在运行时转换为对象并将其用作输入参数。