我正在编写 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')
我不相信像 cy.wait('@firstResponse')
这样的东西会做我想做的事,因为这根本不会阻止第二个返回。我愿意使用某种延迟,但是如果能等到我说出来之前完全阻止它,那就太好了。
答案 0 :(得分:2)
这看起来像您想要的功能Throttle or delay response all incoming responses
insert
或者 Static Response object 带有fixture 属性和delay 属性
SERVICE