如何使用 Rest Assured 对包含多个数据集的测试进行参数化?

rest assureddynamic programmingprogramming更新于 2025/4/5 17:52:17

我们可以使用 Rest Assured 对包含多个数据集的测试进行参数化。使用数据提供程序,我们可以多次运行同一个测试用例。要了解更多关于 TestNG 数据提供程序的信息,请访问以下链接 −

https://www.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 {

   //数据提供者注解
   @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()
   {
      //包含两个数据集的多维元素集合
      返回新的 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;    } }

输出


相关文章