繁体   English   中英

如何验证响应并从 Rest Assured 中的响应正文中提取值?

[英]How to validate a response and extract a value from Response body in Rest Assured?

我知道如何从响应体中提取值以及如何验证响应体中的字段,但问题是什么

void postRequest() {
    Response id = given()
            .auth()
            .preemptive()
            .basic(username,password)
            .contentType(ContentType.JSON)
            .body(----- some JSON body ------)
            .when()
            .post(baseurl+"postRequest")
            .then()
            .contentType(ContentType.JSON)
            .extract()
            .path("id")
            ;
}

有了这个,我可以提取我想要的值并将其保存到变量“id”中,并将其用于进一步的 API 请求。

response
    .then()
    .log().ifValidationFails(LogDetail.ALL, true)  # I NEED TO PRINT REQUEST PARAMS TOO IF IT FAILS
    .assertThat()
    .statusCode(200)
    ;

如果我采用上述方法,我无法验证响应主体,因为我们没有将响应保存到变量。

我想在一个 go 中同时执行这两项操作。另外,我也尝试了相反的方法,我首先验证了响应主体,但我无法保存“id”,因为我们无法将 ValidatableResponse 转换为 Response,反之亦然。 除非请求失败,否则我不想打印请求参数。

帮我想办法解决这个问题。

据我了解,您需要两者:在一个链命令中验证响应和提取值(对于其他 API)。 这是例子:

int id = given().post()
        .then()
        .log().ifValidationFails()
        .assertThat()
        .contentType(ContentType.JSON)
        .statusCode(200)
        .body("id", equalTo("test"))
        .extract()
        .response()
        .path("id");

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM