Java 希望以jsonpath请求的形式传递动态数据

Java 希望以jsonpath请求的形式传递动态数据,java,json,rest-assured,Java,Json,Rest Assured,我想为name而不是“Foo”传递动态数据。我该怎么做?您需要在此处使用数据提供程序。它实际上在运行时为您的测试用例提供数据。有多种方法可以在测试用例之前、之后和期间向测试用例提供动态数据 如果您正在使用JUnit,并且可以使用参数提供数据,请使用@RunWith(Parameterized.class) 使用@DataProvider(name=“name\u of_DataProvider”)并在使用TestNG的情况下创建数据提供程序方法,并且可以在测试用例中添加属性@Test(Dat

我想为name而不是“Foo”传递动态数据。我该怎么做?

您需要在此处使用
数据提供程序。它实际上在运行时为您的测试用例提供数据。有多种方法可以在测试用例之前、之后和期间向测试用例提供动态数据

  • 如果您正在使用JUnit,并且可以使用参数提供数据,请使用
    @RunWith(Parameterized.class)

  • 使用
    @DataProvider(name=“name\u of_DataProvider”)
    并在使用
    TestNG
    的情况下创建数据提供程序方法,并且可以在测试用例中添加属性
    @Test(DataProvider=“data provider”)

  • 您可以从文件中提供输入,您可以在
    objectMapper
    Jackson
    lib的帮助下编写通用映射器,在运行时获取数据并转换为对象,并将其用作输入参数


仅供参考,Jackson是放心依赖的一部分。我添加了dataprovider来传递name的数据,例如NameValue有3组数据——“学校”、“学院”、“大学”。传递名称时,使用$NameValue会引发错误。如何修复此处的错误?
 @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);
}