如何在 Rest Assured 中使用 TestNG 数据提供程序进行参数化?
rest assureddynamic programmingprogramming
我们可以使用 TestNG 数据提供程序在 Rest Assured 中进行参数化。使用数据提供程序,我们可以多次运行同一个测试用例。要了解更多关于 TestNG 数据提供程序的信息,请访问以下链接 −
https://www.tutorialspoint.com/testng/testng_parameterized_test.htm
此技术可用于动态负载。为此,我们将创建一个包含有效载荷的 Java 类。
然后在第二个 Java 类(包含 POST 请求的实现)中,我们将有效载荷的动态字段作为参数传递给请求主体。
请参阅下方实现的项目结构。
示例
Code Implementation in NewTest.java
import org.testng.annotations.DataProvider; import org.testng.annotations.Test; import static io.restassured.RestAssured.*; import io.restassured.RestAssured; public class NewTest { //数据提供程序注解 @Test(dataProvider="Title") void dataProvPayLoad(String title, String body) { //基础 URL RestAssured.baseURI = "https://jsonplaceholder.typicode.com"; //输入详细信息 given().header("Content-type", "application/json") //通过数据提供程序添加带参数的 post 方法 .body(PayLoad.postBody(title, body))。 when().post("/posts").then() //验证状态码为 201 .assertThat().statusCode(201); } //数据提供者方法 @DataProvider(name="Title") public Object[][] getData() { //包含两个数据集的多维元素集合 return new Object[][] {{"Cypress","JavaScript"},{"Selenium","Python"}}; } }
PayLoad.java 中的代码实现
public class PayLoad { public static String postBody(String title, String body) { //请求有效载荷 String b = "{
" + //参数化 title 和 body 字段 "\"title\": \"" +title+ " \",
" + "\"body\": \"" +body+ " \",
" + " \"userId\": \"34\"
}"; return b; } }