如何捕获赛普拉斯中的所有API调用?

时间:2019-07-26 01:19:55

标签: cypress

在加载聊天应用程序时,我有API调用,每个组30个调用(每个组上加载最后30条消息)。假设某情况下,我测试一个只有2个组的用户。所以我希望看到60个API调用。

我尝试使用以下代码。

it('Call 30 group messages APIs for every favorite group', () => {
    cy.server()
    cy.route(awsUrl + '/**').as('apiMessageContent')

    for (let i = 0; i < 60; i++) {
      cy.wait('@apiMessageContent', { timeout: 30000 }).then(res => {
        expect(res.status).not.to.be.null
      })
    }
  })

但是结果赛普拉斯随机只能捕获28-30个API调用,而其他路由等待失败。实际上,在赛普拉斯的左侧面板中,我可以看到所有60 XHR都已列出。解决方案是什么?

1 个答案:

答案 0 :(得分:0)

cy.wait可以接受array of Aliases,因此您可以以这种方式等待@apiMessageContent,而不是循环等待60次。尽管目前尚不清楚您的解决方案为何不起作用。

cy.wait(Array(60).fill('@apiMessageContent'), { timeout: 30000 }).then((xhrs) => {
    xhrs.forEach((res) => {
        expect(res.status).not.to.be.null
    })
})