如何在 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; } }
輸出
廣告