乐闻世界logo
搜索文章和话题

Cypress 如何断言接口返回的 JSON 响应

4 个月前提问
3 个月前修改
浏览次数24

2个答案

1
2

非常好的问题!在使用 Cypress 进行端到端测试时,对于接口返回的 JSON 响应进行断言是一个常见且重要的操作。我将通过一个例子来详细说明如何使用 Cypress 进行这一操作。

假设我们要测试一个 API,该 API 返回一个用户的详细信息。返回的 JSON 结构大致如下:

json
{ "id": 1, "name": "John Doe", "email": "john.doe@example.com", "roles": ["Admin", "User"] }

我们需要确认返回的数据是正确的,包括用户的 idnameemail 以及 roles。下面是使用 Cypress 进行断言的步骤:

  1. 发起 API 请求: 首先,我们使用 cy.request() 方法发起一个 GET 请求。

    javascript
    cy.request('GET', '/api/users/1').as('userRequest');
  2. 断言响应状态码: 检查请求是否成功,状态码应为 200。

    javascript
    cy.get('@userRequest').its('status').should('equal', 200);
  3. 断言响应体: 接下来,我们需要断言响应体中的内容。

    javascript
    cy.get('@userRequest').its('body').should('include', { id: 1, name: 'John Doe', email: 'john.doe@example.com' });
  4. 深入断言数组和对象: 由于用户的角色是一个数组,我们还需要确认这个数组中包含特定的角色。

    javascript
    cy.get('@userRequest').its('body.roles').should('be.an', 'array').and('deep.eq', ['Admin', 'User']);

通过这种方式,我们不仅检查了基本的数据类型与结构,还深入验证了数组等复杂类型的精确内容。这样的断言使我们能够确保 API 的响应完全符合预期,有助于提高应用的稳定性和用户的信任度。

如果有任何特定的场景或者变体您想进一步讨论,我很乐意继续探讨。

2024年6月29日 12:07 回复

在使用 Cypress 进行端到端测试时,对于接口返回的 JSON 响应进行断言是一个常见且重要的操作。我将通过一个例子来详细说明如何使用 Cypress 进行这一操作。

假设我们要测试一个 API,该 API 返回一个用户的详细信息。返回的 JSON 结构大致如下:

json
{ "id": 1, "name": "John Doe", "email": "john.doe@example.com", "roles": ["Admin", "User"] }

我们需要确认返回的数据是正确的,包括用户的 idnameemail 以及 roles。下面是使用 Cypress 进行断言的步骤:

  1. 发起 API 请求: 首先,我们使用 cy.request() 方法发起一个 GET 请求。

    javascript
    cy.request('GET', '/api/users/1').as('userRequest');
  2. 断言响应状态码: 检查请求是否成功,状态码应为 200。

    javascript
    cy.get('@userRequest').its('status').should('equal', 200);
  3. 断言响应体: 接下来,我们需要断言响应体中的内容。

    javascript
    cy.get('@userRequest').its('body').should('include', { id: 1, name: 'John Doe', email: 'john.doe@example.com' });
  4. 深入断言数组和对象: 由于用户的角色是一个数组,我们还需要确认这个数组中包含特定的角色。

    javascript
    cy.get('@userRequest').its('body.roles').should('be.an', 'array').and('deep.eq', ['Admin', 'User']);

通过这种方式,我们不仅检查了基本的数据类型与结构,还深入验证了数组等复杂类型的精确内容。这样的断言使我们能够确保 API 的响应完全符合预期,有助于提高应用的稳定性和用户的信任度。

2024年6月29日 12:07 回复

你的答案