如何在 Rest Assured 中使用 TestNG 資料提供器進行引數化?


我們可以在 Rest Assured 中使用 TestNG 資料提供器進行引數化。使用資料提供器,我們可以多次執行單個測試用例。要了解有關 TestNG 資料提供器的更多資訊,請訪問以下連結 −

https://tutorialspoint.tw/testng/testng_parameterized_test.htm

此技術可用於動態有效負載。為此,我們將建立一個包含有效負載的 Java 類。

然後在第二個 Java 類(執行POST請求)中,我們將有效負載的動態欄位作為引數傳遞給請求正文。

請在下方找到實施專案的結構。

示例

NewTest.java 中的程式碼實現

import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;
import static io.restassured.RestAssured.*;
import io.restassured.RestAssured;
public class NewTest {

   //data provider annotation
   @Test(dataProvider="Title")
   void dataProvPayLoad(String title, String body) {

      //base URL
      RestAssured.baseURI = "https://jsonplaceholder.typicode.com";

      //input details
      given().header("Content-type", "application/json")

      //adding post method with parameterization from data provider
      .body(PayLoad.postBody(title, body)).
      when().post("/posts").then()

      //verify status code as 201
      .assertThat().statusCode(201);
   }

   //data provider method
   @DataProvider(name="Title")
   public Object[][] getData() {
      //multi-dimension element collection with two data sets
      return new Object[][]
      {{"Cypress","JavaScript"},{"Selenium","Python"}};
   }
}

PayLoad.java 中的程式碼實現

public class PayLoad {
   public static String postBody(String title, String body) {
      //request payload
      String b = "{
" +       //Parameterizing title and body fields       "\"title\": \"" +title+ " \",
" + "\"body\": \"" +body+ " \",
" + " \"userId\": \"34\"
}"; return b; } }

輸出

更新於: 17-Nov-2021

1K+ 瀏覽量

開始你的 職業

完成課程後獲得認證

開始
廣告