在 Cypress 中记录 API 响应时间的方法

Fit*_*Fju 0 time response cypress cypress-intercept

我试图在 Cypress 中记录 API 响应时间,但找不到任何解决方案。使用什么,cy.intercept()或者cy.request()

我试图使用这样的建议:

cy.intercept('POST', '**/create-insurance-view-model', (req) => {
                    const start = Date.now()
                    req.continue(res => {
                      res.responseTime = Date.now() - start;
                    })
                  }).as('apiViewModel')

cy.wait('@apiViewModel').then(intercept => {
                    cy.log(`Time to get the license plate data was: ${intercept.response.responseTime} seconds`)
                })
Run Code Online (Sandbox Code Playgroud)

我在日志中变得未定义。

Pao*_*olo 5

有两种情况

  • 有一个调用 API 的网页,您想测试响应时间。该场景使用cy.intercept()

  • 您有一个想要直接测试的 API(不是从网页调用)。此场景用于cy.request()启动每个 API 调用。

例子:

it('tests API response via web page', () => {

  cy.intercept('api/resource/3', (req) => {
    const start = Date.now()
    req.continue(res => {
      res.headers.responseTime = Date.now() - start;
    })
  }).as('apiCall')

  cy.visit('/')

  cy.wait('@apiCall').then(intercept => {
    cy.log(intercept.response.headers.responseTime)
  })
Run Code Online (Sandbox Code Playgroud)
it('tests API response by direct call', () => {

  const start = Date.now()

  cy.request('api/resource/3')
    .then(response) => {
      const responseTime = Date.now() - start;
      cy.log(responseTime)
    })
Run Code Online (Sandbox Code Playgroud)