You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Cypress中拦截表单提交请求篡改响应失败,如何测试异常场景?

问题修正方案

你的测试存在三个核心问题导致断言失败,直接修正如下:

核心问题说明

  • 拦截注册时机错误:cy.intercept必须在触发请求前定义,你当前是点击提交后才注册,此时请求已发出,无法被捕获。
  • 请求方法不匹配:创建用户接口通常为POST请求,你写的GET会导致拦截无法匹配实际请求。
  • 断言逻辑错误:cy.wait("@newUser")返回的请求对象没有error属性,需断言响应状态码或UI错误反馈。

修正后的完整测试代码

// 1. 提前注册拦截规则,匹配POST请求并返回400错误
cy.intercept("POST", "**/create-users/**", {
  statusCode: 400,
  body: {
    name: "",
    age: "",
    location: ""
  },
}).as("newUser");

// 2. 填写表单字段
cy.get("#name").type("John Doe");
cy.get("#age").type("25");
cy.get("#location").type("North Pole");

// 3. 点击提交按钮触发请求
cy.get("#save-button").click();

// 4. 等待拦截的请求,断言响应状态码为400
cy.wait("@newUser").its("response.statusCode").should("eq", 400);

// 5. 断言UI无创建成功反馈(根据项目实际UI调整选择器)
cy.get(".success-notification").should("not.exist");
// 可选:断言错误提示显示
cy.get(".error-alert").should("be.visible").and("contain", "数据传输失败");

额外注意事项

  • 请确保**/create-users/**是实际接口的正确路径,若路径有差异需对应修改。
  • UI断言部分需根据项目实际的反馈逻辑调整,比如检查是否停留在表单页面、无用户列表新增项等,确保用户未被创建。

内容的提问来源于stack exchange,提问作者Christian Solis

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 17:57:15