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

如何获取API响应时间?基于Cypress拦截请求的技术问询

解决Cypress拦截请求获取响应时间时的undefined报错

你遇到的response.duration为undefined的问题,是因为该属性并非Cypress拦截响应对象的标准内置属性,无法保证在所有场景下都存在。

要正确获取API请求的响应时间,应该使用Cypress拦截对象中可靠存在的request.startTime和response.receivedTime属性,通过两者的差值计算实际响应时长:

cy.intercept("PATCH", "https://api.website.com/b2b2/**").as("myAPP")
cy.wait("@myAPP").then(({ request, response }) => {
  // 计算从请求发起至响应接收的时长(毫秒)
  const responseTime = response.receivedTime - request.startTime;
  expect(responseTime).to.be.lessThan(2000);
  expect(response.statusCode).to.equal(200);
});

补充说明

  • request.startTime:请求开始发起的时间戳
  • response.receivedTime:Cypress接收到响应的时间戳
  • 无论请求是真实发送到服务器还是通过cy.intercept模拟响应,这两个属性都会被正确赋值,计算结果准确反映请求的处理时长。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 19:07:03