如何在Rest Assured中解析JSON響應並獲取響應中的特定欄位?


我們可以使用Rest Assured解析JSON響應並從響應中獲取特定欄位。這是藉助JSONPath類完成的。要解析JSON響應,我們首先必須將響應轉換為字串。

要獲取響應,我們需要使用這些方法 - Response.body或Response.getBody。這兩個方法都是Response介面的一部分。

獲得響應後,它將藉助asString方法轉換為字串。此方法是ResponseBody介面的一部分。然後,我們將藉助jsonPath方法從響應主體中獲取JSON表示。

我們將首先透過Postman向模擬API URL傳送GET請求並檢視響應。

示例

使用Rest Assured,我們將獲取Course、id和Price欄位的值。

import org.testng.annotations.Test;
import static io.restassured.RestAssured.*;
import io.restassured.RestAssured;
import io.restassured.path.json.JsonPath;
import io.restassured.response.Response;
import io.restassured.response.ResponseBody;
import io.restassured.specification.RequestSpecification;
public class NewTest {
   @Test
   void responseExtract() {
      //base URI with Rest Assured class
      RestAssured.baseURI = "https://run.mocky.io/v3";
      //input details
      RequestSpecification h = RestAssured.given();
      //get response
      Response r = h.get("/e3f5da9c-6692-48c5-8dfe-9c3348cfd5c7");
      //Response body
      ResponseBody bdy = r.getBody();
      //convert response body to string
      String b = bdy.asString();
      //JSON Representation from Response Body
      JsonPath j = r.jsonPath();
      //Get value of Location Key
      String l = j.get("Course");
      System.out.println("Course name: " + l);
      String m = j.get("id");
      System.out.println("Course Id: " + m);
      String n = j.get("Price");
      System.out.println("Course Price: " + n);
   }
}

輸出

更新於:2021年11月17日

10K+ 瀏覽量

開啟你的職業生涯

完成課程獲得認證

開始學習
廣告