如何在 Rest Assured 中使用 TestNG 数据提供器进行参数化?
我们可以在 Rest Assured 中使用 TestNG 数据提供器进行参数化。使用数据提供器,我们可以多次执行单个测试用例。要了解有关 TestNG 数据提供器的更多信息,请访问以下链接 −
https://tutorialspoint.com/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;
}
}输出

广告
数据结构
网络
RDBMS
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP