Не удается перехватить исходящий 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");
});