Тайм-аут Cypress, когда размер ответа слишком велик - PullRequest
1 голос
/ 30 января 2020

Проблема

Cypress возвращает тайм-аут при завершении запроса GET.

Описание

GET запрос с использованием Cypress.io

Я должен получить большое (более 15 МБ) тело ответа от API, но у меня есть следующее: «CypressError: cy.request () истекло время ожидания ответа от вашего сервера 300000 мс.»

Увеличение "responseTimeout" не помогло ...

Я также проверил тот же запрос в POSTMAN, и он завершился успешно, всегда в течение максимум 50 секунд.

Журналы показывает нам, что запрос на тайм-аут в Cypress фактически завершен, поэтому я предполагаю, что это проблема кипариса

EDIT : есть примеры моего кода, я уже пытался что-то сделать с "asyn c", но тайм-ауты все еще происходят. Обычно каждый второй тест не выполняется с таймаутом, но это не правило.

команды. js:

Cypress.Commands.add('getRequestLimit', (token, limit) => {
    cy.request({
        failOnStatusCode: false,
        url: '/endpoint',
        headers: {
            'Authorization': 'Bearer '+token
        },
        qs: {
            'limit' : limit,
        }
    })
});

кипарис. 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 голосов
/ 10 февраля 2020

Это проблема кипариса, https://github.com/cypress-io/cypress/issues/6385

сейчас она отлично работает в версии 3.3.1

0 голосов
/ 31 января 2020

Попробуйте использовать async / await для ваших вызовов API, это может быть решением вашей проблемы.

Do c здесь: asyn c функция MDN web docs

Трудно сказать наверняка, не глядя на ваш код.

...