Cypress API 测试:示例详解与全面指南

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

应用程序编程接口(API)是软件开发生命周期中的重要组成部分,不仅在开发阶段至关重要,在测试阶段同样不可忽视。API的主要作用是促进不同系统之间的数据交互,因此,彻底测试这些API以确保应用程序的平稳运行显得尤为重要。

在本文中,我们将深入探讨如何使用 Cypress 测试框架进行 API 测试,并学习如何通过自动化实现高效的 API 测试流程。以下是本文的主要内容:


API 测试概述

API 测试的核心是向后端服务器发送 HTTP 请求(如 GET、POST、PUT、DELETE 等),并验证返回的响应是否符合预期。以下是 API 测试的一些关键方面:

  • 验证状态代码:确保响应的状态码符合预期。例如,状态码 200 表示请求成功。其他标准状态码可以参考相关文档。
  • 响应体断言:验证 HTTP 响应体的内容,确保返回的 XML 或 JSON 数据结构正确且包含预期数据。
  • 测试请求参数:通过传递不同的参数和头信息,验证 API 的行为是否正确。
  • 身份验证与授权:确保 API 的身份验证机制和安全性符合要求。

通过关注以上要点,可以有效确保 API 的端到端功能无错误。


使用 Cypress 进行 API 测试

Cypress 是一款流行的前端测试工具,主要用于浏览器和端到端自动化测试。它的网络请求功能也使其成为 API 测试的理想选择。以下是 Cypress 在 API 测试中的一些关键特性:

  • 熟悉的语法:Cypress 的 API 测试语法与其 UI 测试语法一致,使用 .should().then() 等方法。
  • 内置断言:Cypress 提供了丰富的断言功能,可以轻松验证状态码、头信息和响应体。
  • 自动重试:Cypress 会自动重试失败的请求,减少因网络问题导致的测试失败。
  • 详细文档支持:Cypress 提供了详尽的文档,方便开发者快速上手。

Cypress API 测试的主要功能

Cypress 提供了多种功能,帮助开发者高效地执行 API 测试。以下是一些常用功能:

  • cy.wait():用于等待网络请求完成,适合处理异步数据加载。
  • cy.route():帮助将测试请求路由到特定的处理程序。
  • cy.server():用于维护测试套件的服务器环境。
  • 测试运行器:支持并行执行测试,缩短测试时间。
  • cy.login():通过设置授权头,简化安全 API 请求的发起。
  • cy.intercept():可以拦截请求并模拟响应,便于测试不同场景。

借助这些功能,开发者可以轻松构建功能强大且高效的 API 测试框架。


使用 Cypress 编写第一个 API 测试

在开始编写 API 测试脚本之前,需要完成以下准备工作:

  1. 安装一个集成开发环境(IDE),如 Visual Studio Code 或 IntelliJ。
  2. 在系统中安装 Node.js。

环境设置步骤

  1. 在本地创建一个文件夹,例如 CypressAPITests

  2. 打开终端,进入文件夹后运行以下命令初始化项目:

    npm init -y

    这将生成一个 package.json 文件。

  3. 安装 Cypress:

    npx cypress install
  4. 打开 Cypress 工具:

    npx cypress open

    在工具界面选择 E2E 测试并完成配置。

  5. 在项目目录下创建一个 e2e 文件夹,并在其中创建一个子文件夹 APITests。随后,在 APITests 文件夹中创建一个测试文件,例如 HttpGetRequest.cy.js


编写第一个 API 测试

以下是一个简单的 GET 请求测试示例:

describe('HTTP GET Request', () => {
  it('should return a 200 status code', () => {
    cy.request('GET', 'https://dummy.restapiexample.com/api/v1/employees')
      .its('status')
      .should('equal', 200);
  });
});

执行测试

  1. 通过终端执行
    在终端中运行以下命令:
   npx cypress run --spec cypress/e2e/APITests/HttpGetRequest.cy.js
  1. 通过 Cypress 工具执行
    打开 Cypress 工具,选择测试文件并运行。

扩展测试:POST、PUT 和 DELETE 方法

POST 请求示例

describe('HTTP POST Request', () => {
  it('should create a new resource', () => {
    cy.request({
      method: 'POST',
      url: 'https://dummy.restapiexample.com/api/v1/create',
      body: {
        name: 'Test Post',
        salary: '1234',
        age: '23',
      },
    }).its('status').should('equal', 200);
  });
});

PUT 请求示例

describe('HTTP PUT Request', () => {
  it('should update an existing resource', () => {
    cy.request({
      method: 'PUT',
      url: 'https://jsonplaceholder.typicode.com/posts/1',
      body: {
        id: 1,
        title: 'Updated Title',
        body: 'Updated Body',
        userId: 1,
      },
    }).its('status').should('equal', 200);
  });
});

DELETE 请求示例

describe('HTTP DELETE Request', () => {
  it('should delete the resource', () => {
    cy.request({
      method: 'DELETE',
      url: 'https://jsonplaceholder.typicode.com/posts/1',
    }).its('status').should('equal', 200);
  });
});

总结

通过本文的学习,我们可以得出以下结论:

  • Cypress 提供了一套功能强大的工具,能够轻松实现 API 测试。
  • 使用 Cypress 的内置断言功能,可以快速验证响应状态码及其他参数。
  • Cypress 支持并行测试、自动重试和日志记录等高级功能,能够显著提升测试效率
  • 借助 Cypress,开发者可以轻松验证后端服务的健壮性,构建完整的端到端测试解决方案。

现在,您可以尝试将 Cypress API 测试应用到实际项目中,体验其高效便捷的测试能力!

原文链接: https://testgrid.io/blog/cypress-api-testing/