我正在编写 cypress 测试,我想测试我们程序的一个功能,该功能将在数据开始出现时显示数据。这可能是一个包含数百个元素的列表,为了加快速度,我们将请求分解为多个请求。
第一个请求将获取前 50 个项目,第二个请求将获取接下来的 100 个项目,依此类推。
我想确保第一个请求返回后,列表包含 50 个项目,第二个请求返回后,列表包含 150 个项目。
我不知道该怎么做,可靠地延迟拦截响应,以便我可以返回前 50 个,检查列表长度,然后允许更多数据进入。
这是我到目前为止所拥有的:
const baseUrl = 'https://example.io/listData*'
const document = 'public_document_10101'
cy.intercept(
{
url: baseUrl,
query: {
limit: '50',
'document': document
},
},
{ fixture: 'first-response.js' }
).as('firstResponse')
cy.intercept(
{
url: baseUrl,
query: {
limit: '100',
skip: '50',
'document': document
},
},
{ fixture: 'second-response.js' }
).as('secondResponse')
Run Code Online (Sandbox Code Playgroud)
我不相信类似的事情cy.wait('@firstResponse')会做我想做的事,因为这根本不会阻止第二个返回。我愿意使用某种延迟,但是如果能等到我这么说之前完全阻止它,那就太好了。
您还可以使用 setDelay。赛普拉斯文档
cy.intercept({ url: 'http://localhost:3001/**', middleware: true }, (req) => {
req.on('response', (res) => {
// Wait for delay in milliseconds before sending the response to the client.
res.setDelay(1000)
})
})
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8027 次 |
| 最近记录: |