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

在Cypress中选取API响应JSON字段时返回Undefined的问题

Cypress拦截请求后获取eval_score返回Undefined的排查方案
  • 检查响应是否被解析为JSON
    Cypress会自动解析Content-Type为application/json的响应,但如果后端返回的Content-Type不正确(比如text/plain),response.body会是字符串而非JSON对象。可以先打印response.body的类型确认:

    cy.wait("@trial").then(({ response }) => {
      console.log(typeof response.body); // 查看是string还是object
      const parsedBody = typeof response.body === 'string' ? JSON.parse(response.body) : response.body;
      expect(parsedBody[0].eval_score).within(0, 5);
    });
    
  • 确认请求别名@trial匹配正确
    检查你的cy.intercept代码,确保别名@trial绑定的是目标请求。比如:

    // 确认拦截的是正确的请求路径
    cy.intercept('GET', '/your-target-api').as('trial');
    

    测试运行时打开Cypress的Network面板,找到标记为@trial的请求,核对其响应结构是否和浏览器中一致。

  • 验证请求是否成功完成
    确保请求返回成功状态码(如200),避免因请求失败导致response.body结构异常:

    cy.wait("@trial").then(({ response }) => {
      expect(response.statusCode).to.eq(200);
      expect(response.body[0].eval_score).within(0, 5);
    });
    
  • 检查字段名拼写与大小写
    再次核对后端返回的字段名是否和代码中一致,避免因大小写(如Eval_Score)或拼写错误导致无法获取字段。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 23:52:43