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

使用Cypress做API测试时报期望对象含count属性错误如何解决

问题原因
  • 配置了failOnStatusCode: false后,接口返回4xx/5xx错误时测试不会直接终止,此时响应体为错误提示对象,仅包含message、detail两个字段,不存在需要断言的count字段,直接断言就会触发报错。
  • 不必要的序列化操作冗余:Cypress的cy.request会自动将application/json类型的响应解析为JS对象,无需手动执行JSON.parse(JSON.stringify(Response.body))做二次处理。
  • 断言值类型可能不匹配:如果接口返回的count为数字类型,使用字符串'27'做断言会因类型不一致触发错误。
修复方案

首先需要先校验接口请求状态是否正常,确认请求成功后再对count字段做断言,修复后代码如下:

cy.request({
  method:'GET',
  url:'https://ibis-qa.droicelabs.us/api/practice/orders/?q=&limit=100',
  failOnStatusCode: false,
  headers:{
    accept: "application/json"
  }
}).then(response => {
  // 先校验接口返回状态码符合预期
  expect(response.status).to.eq(200)
  const body = response.body
  cy.log(body)
  // count为数字类型时直接传数值,不要加引号
  expect(body).has.property('count', 27)
})

如果校验状态码时发现接口返回错误,可以通过打印响应体的message和detail字段定位请求失败的原因,常见原因包括缺失鉴权凭证、请求参数错误、账号无接口访问权限等,解决接口调用问题后即可拿到带count字段的正常响应。

内容的提问来源于stack exchange,提问作者Krupal Vaghasiya

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 22:27:03