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

Cypress API自动化测试:无法访问响应体报错求助

Cypress API测试无法访问响应体问题排查

我使用Cypress进行API自动化测试时,无法正常访问响应体。尝试通过cy.log(JSON.stringify(response.body.payload[0]))获取数据,但执行后出现报错。

测试代码

context('GET /Auth', () => {
  it('should return a list with all products', () => {
      cy.request({
          method: 'GET',
          url: 'https://auth.plus.a101.com.tr/api/homepage/punch-cards/20149126',
          headers: {
            'Authorization' : 'Bearer ' + access_token
          }
      })
          .then((response) => {
            expect(response.status).to.eq(200)
            cy.log(JSON.stringify(response.body.payload[0]))
          });
  });
});

API响应截图

API响应截图

报错截图

报错截图

问题分析与解决建议

从报错信息来看,核心问题是response.body.payload不存在或并非数组,导致访问索引[0]时触发错误。可以按以下步骤排查:

  • 先打印完整响应体确认结构:
    cy.log(JSON.stringify(response.body))
    
  • 根据实际返回的结构调整访问路径,比如如果payload是单个对象而非数组,需移除[0];如果字段名存在大小写或拼写差异(例如实际是Payload),要修正字段名。
  • 可添加断言提前验证字段的存在性与类型:
    expect(response.body).to.have.property('payload')
    expect(response.body.payload).to.be.an('array').and.not.be.empty
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 22:16:02