在加载聊天应用程序时,我有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都已列出。解决方案是什么?
答案 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
})
})