Не удается перехватить исходящий AJAX-запрос со страницы с помощью Testcafe

Я пытаюсь использовать TestCafe для клиентской библиотеки javascript и не могу перехватить любые исходящие запросы AJAX для загрузки страницы тестирования через механизм подсчета.

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

Суть моего теста выглядит следующим образом:

import { RequestLogger } from "testcafe";

fixture`Hello World - Leaflet`.page`http://localhost:8080`;

const logger = RequestLogger(/org/, {
  logRequestHeaders: true,
  logResponseHeaders: true
});

test("Test if there's an outgoing network request...", async t => {
  // Do something...
  await t
    .wait(5000)
    .expect(logger.count(() => true))
    .gt(0, "Must detect more than zero outgoing requests to openstreetmap");
});

Есть ли что-то, чего мне не хватает, чтобы получить правильный исходящий счетчик запросов AJAX?

Если это поможет, я сделал репозиторий, содержащий эту проблему, настроенный таким образом, что люди могут попытаться решить без конфигурации:

1 ответ

Решение

Спасибо за ваше подробное описание.

Вам необходимо прикрепить logger на ваш test/fixture, Вы также можете прикрепить и отсоединить крючки во время пробного запуска, используя t.addRequestHooks а также t.removeRequestHooks методы.

В тестовом коде я прикрепил logger подключить к test:

import { RequestLogger } from "testcafe";

fixture`Hello World - Leaflet`.page`http://localhost:8080`;

const logger = RequestLogger(/org/);

test
    .requestHooks(logger)
    ("Test if there's an outgoing network request...", async t => {
        await t
            .wait(5000)
            .expect(logger.count(() => true))
            .gt(0, "Must detect more than zero outgoing requests to openstreetmap");
    });
Другие вопросы по тегам