使用Rest Assured进行API自动化 | Talent500博客

作者:API传播员 · 2026-01-16 · 阅读时间:5分钟

应用程序编程接口)是一种API测试的重要性也日益凸显。

Rest Assured 是一个流行的基于 Java 的测试框架,专门用于 API 自动化测试。本文将介绍 Rest Assured 的功能及其在 API 自动化中的应用。


什么是 Rest Assured?

Rest Assured 是一个基于 Java 的 RESTful Web 服务测试库,它提供了一种领域特定语言(DSL),使编写 RESTful Web 服务测试变得更加简单。Rest Assured 的 DSL 语法简洁明了,为 API 测试提供了极大的灵活性和功能支持。

Rest Assured 支持多种 HTTP 方法,包括 GETPOSTPUTDELETE 等,还支持多种身份验证方式,如基本身份验证、摘要式身份验证和 OAuth 等。此外,它能够与多种测试框架(如 JUnit、TestNG 和 Cucumber)无缝集成,也可以与 Maven 和 Gradle 等 Java 构建工具配合使用。


Rest Assured 的配置

在使用 Rest Assured 之前,需要先在 Java 项目中完成其配置。以下是通过 Maven 安装 Rest Assured 的步骤:

  1. 创建一个新的 Maven 项目。

  2. pom.xml 文件中添加以下依赖项:

    
       io.rest-assured
       rest-assured
       4.4.0
       test
    
  3. 添加依赖项后,创建一个新的测试类并引入必要的包。

  4. 配置完成后,即可在测试类中开始使用 Rest Assured。


自动化 GET 请求并验证状态码

以下示例展示了如何使用 Rest Assured 向 API 发送 GET 请求并验证响应的状态码是否为 200(表示请求成功):

import static io.restassured.RestAssured.*;
import static org.hamcrest.Matchers.*;

public class GetRequestTest {
    @Test
    public void validateStatusCode() {
        given()
            .when()
            .get("https://api.example.com/resource")
            .then()
            .statusCode(200);
    }
}

在这段代码中:

  • given() 方法用于构造请求。
  • when() 方法发送请求。
  • then() 方法验证响应。
  • statusCode() 方法用于检查响应的状态码。

验证 GET 请求的响应正文

以下示例展示了如何验证 GET 请求的响应正文是否包含预期值:

import static io.restassured.RestAssured.*;
import static org.hamcrest.Matchers.*;

public class GetResponseBodyTest {
    @Test
    public void validateResponseBody() {
        given()
            .when()
            .get("https://api.example.com/resource")
            .then()
            .body("data[0].name", equalTo("John Doe"))
            .body("data[1].email", equalTo("jane.doe@example.com"));
    }
}

在这段代码中:

  • body() 方法用于验证响应正文。
  • JSON 路径和期望值被传递给 body() 方法,以确保响应数据符合预期。

使用 Rest Assured 自动化 POST 请求

以下示例展示了如何使用 Rest Assured 自动化 POST 请求,并验证响应是否包含预期数据:

import static io.restassured.RestAssured.*;
import static org.hamcrest.Matchers.*;

public class PostRequestTest {
    @Test
    public void createNewUser() {
        String requestBody = "{ "name": "John Doe", "email": "john.doe@example.com", "password": "password123" }";        given()
            .contentType("application/json")
            .body(requestBody)
            .when()
            .post("https://api.example.com/users")
            .then()
            .statusCode(201)
            .body("name", equalTo("John Doe"))
            .body("email", equalTo("john.doe@example.com"));
    }
}

在这段代码中:

  • 使用 given() 方法设置请求的内容类型和请求正文。
  • 使用 post() 方法发送 POST 请求。
  • 使用 then() 方法验证响应状态码和响应正文。

使用 Rest Assured 自动化 DELETE 请求

以下示例展示了如何验证 DELETE 请求的状态码是否为 204(表示删除成功):

import static io.restassured.RestAssured.*;
import static org.hamcrest.Matchers.*;

public class DeleteRequestTest {
    @Test
    public void deleteUser() {
        given()
            .when()
            .delete("https://api.example.com/users/123")
            .then()
            .statusCode(204);
    }
}

在这段代码中:

  • delete() 方法用于发送 DELETE 请求。
  • statusCode() 方法用于验证响应状态码。

结论

Rest Assured 是一款功能强大的 API 自动化测试工具,它提供了一个简单易用的 DSL,用于编写 RESTful Web 服务测试。Rest Assured 支持多种 HTTP 方法、身份验证方案和测试框架,能够帮助开发人员快速验证 API 的各个方面,如请求和响应头、状态码以及响应正文。

通过使用 Rest Assured,您可以轻松实现 API 测试的自动化,从而确保 API 按预期运行。自动化测试不仅可以帮助您在问题进入生产环境之前发现错误,还能节省时间和精力。

总的来说,Rest Assured 是 API 自动化测试的一个宝贵工具。通过本文中的示例和指南,您可以快速上手 Rest Assured,并自信地开始自动化您的 API 测试。

原文链接: https://talent500.com/blog/api-automation-with-rest-assured/