TestCafe RequestLogger - как реализовать каждый запрос в тестовой среде - PullRequest
1 голос
/ 04 февраля 2020

Мы пытаемся отследить проблему сети в нашей компании, которая вызывает общую ошибку отключения браузера. Я хочу использовать RequestLogger отметку времени, чтобы помочь нам выделить, когда возникает эта периодически возникающая проблема, а также любую дополнительную информацию о запросах / ответах в это время.

В документации по регистратору запросов .requestHooks(logger) инициируется при каждом тестовом примере. уровень. И затем console.log(logRecord.X.X) используется для записи записи в указанное время c.

Но как я могу вести непрерывную регистрацию по всей моей тестовой среде без использования console.log(logRecord.X.X) в каждой строке?

Возможно ли как-то непрерывно запустить RequestLogger через мою функцию запуска теста?

if(nodeConfig.util.getEnv('NODE_ENV') == "jenkins-ci")
        {
            // @ts-ignore
            // createTestCafe("localhost", port1, port2).then(tc => {
            createTestCafe().then(tc => {
                this.testcafe = tc;
                this.runner = this.testcafe.createRunner();

                return this.runner
                    .src(testPath)
                    .filter(filterSettings)
                    .browsers(environment.browserToLaunch)
                    .concurrency(environment.concurrencyAmount)
                    .reporter(reporterSettings)
                    .run(runSettingsCi);
            })
            .then(failedCount => {
                console.log('Location ' + testPath + ' tests failed: ' + failedCount);
                this.testcafe.close();
                process.exit(0);
            })
            .catch((err) => {
                console.log('Location ' + testPath + ' General Error');
                console.log(err);
                this.testcafe.close();
                process.exit(1);
            });
        }

1 Ответ

2 голосов
/ 06 февраля 2020

TestCafe не позволяет присоединять перехватчики запросов к классу тестовых прогонов. В то же время вы можете прикрепить его к каждому устройству. RequestLogger будет собирать информацию обо всех запросах.

Например:

import { Selector, RequestLogger } from 'testcafe';

const logger = RequestLogger();

fixture `Log all requests`
    .page`devexpress.github.io/testcafe`
    .requestHooks(logger)
    .afterEach(() => console.log(logger.requests));

test('Test 1', async t => {
    await t
        .click(Selector('span').withText('Docs'))
        .click(Selector('a').withText('Using TestCafe'))
        .click(Selector('a').withText('Test API'));
});

test('Test 2', async t => {
    await t
        .click(Selector('span').withText('Docs'))
        .click(Selector('a').withText('Continuous Integration'))
        .click(Selector('a').withText('How It Works'));
});
...