【发布时间】:2020-05-15 21:02:30
【问题描述】:
问题
赛普拉斯在 GET 请求完成时返回超时。
说明
GET 使用 Cypress.io 请求
我应该从 API 收到大的(超过 15Mb)响应正文,但我有这个: “CypressError: cy.request() 超时等待来自服务器的响应 300000 毫秒。”
增加“responseTimeout”没有帮助......
我还在 POSTMAN 中检查了相同的请求,它以成功告终,总是最多 50 秒。
日志显示cypress中超时的请求实际上已经完成,所以我想这是cypress的问题
编辑:有我的代码示例,我已经尝试使用“异步”做一些事情,但仍然发生超时。通常每第二次测试都会因超时而失败,但这不是规则。
commands.js:
Cypress.Commands.add('getRequestLimit', (token, limit) => {
cy.request({
failOnStatusCode: false,
url: '/endpoint',
headers: {
'Authorization': 'Bearer '+token
},
qs: {
'limit' : limit,
}
})
});
cypress.json:
{
"baseUrl": "url",
"chromeWebSecurity": false,
"video": false,
"numTestsKeptInMemory": 0,
"responseTimeout": 500000,
"pageLoadTimeout": 500000
}
测试文件:
it('Check query param "limit"', () => {
const limit = 3;
cy.getRequestLimit(token, limit)
.then((response) => {
expect(response.status).to.eq(200);
});
});
it('Check query param "offset"', () => {
const offset = 3;
cy.getRequestOffset(token, offset)
.then((response) => {
expect(response.status).to.eq(200);
});
});
【问题讨论】: