响应大小太大时,赛普拉斯超时

时间:2020-01-30 09:29:59

标签: npm cypress

问题

在GET请求完成后,Cypress返回超时。

说明

使用Cypress.io的

GET请求

我应该从API收到较大的响应消息(超过15Mb),但是我有这个消息: “ CypressError:cy.request()超时,等待300000ms来等待服务器的响应。”

增加“ 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);
        });
});

2 个答案:

答案 0 :(得分:0)

尝试对您的api调用使用异步/等待,这可以解决您的问题。

文档在这里:async function MDN web docs

不用看代码就可以肯定地说。

答案 1 :(得分:0)

这是柏树的问题,https://github.com/cypress-io/cypress/issues/6385

现在它在3.3.1版本中可以正常工作