簡體   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