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响应截图

报错截图

问题分析与解决建议
从报错信息来看,核心问题是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
相关产品推荐
相关产品推荐

