Нет рабочего примера, демонстрирующего интеграцию CucumberJS с TestCafe, показывающего тестовый сценарий RestAPI, может ли кто-нибудь предложить подход?

Я изучаю проекты на GitHub, которые демонстрируют возможности интеграции TestCafe с CucumberJS, однако я не могу найти никаких ссылок для тестирования RestAPI с помощью этой интеграции, и мне это нужно в соответствии с требованиями моего проекта.

Могу ли я попросить кого-нибудь опубликовать рабочий пример, в настоящее время я изучаю следующее репо: https://github.com/rquellh/testcafe-cucumber

Я уже пробовал изучить проекты, доступные на GitHub:

https://github.com/search?p=3&q=testcafe+cucumber&type=Repositories

Я ожидаю, что рабочий процесс, управляемый Cucumber BDD, основан на TestCafe:

https://devexpress.github.io/testcafe/documentation/test-api/intercepting-http-requests/


person curiousTester    schedule 31.07.2019    source источник


Ответы (1)


Здесь есть два варианта.

Если вы хотите протестировать RestAPI, отправив запросы из тестового сценария и проверив ответ, TestCafe для этого не нужен. Согласно этой проблеме TestCafe по-прежнему не может выполнять HTTP-запросы. Более того, обработчики запросов не могут обрабатывать запросы, которые вы делаете из тестового кода с помощью внешних инструментов. Они работают только для запросов, которые делает тестовая страница.

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

let requestLogger = null;
 
Given('I use example.com REST API', async function () {
  requestLogger = RequestLogger(/https:\/\/api\.example\.com/, {
    logResponseHeaders: true,
    logResponseBody: true
  });

  await testController.addRequestHooks(requestLogger);
});

Затем вы можете получить данные из requestLogger, как описано в Документация по тестированию API.

person Alexey Lindberg    schedule 31.07.2019
comment
Спасибо @Alexey Lindberg, этот вопрос лучше решить с помощью devexpress, чтобы представить возможности тестирования API в инструменте. Принятие предложенной вами работы. На данный момент я использую axios и fetch, чтобы протестировать api. - person curiousTester; 02.08.2019
comment
не могли бы вы заглянуть в код и помочь: 'const apiBaseUrl = 'https://api.test.samplewebsite.com.au/'; const apiLogger = RequestLogger(apiBaseUrl, { logResponseHeaders: true, logResponseBody: true }); await testController.addRequestHooks(apiLogger); await testController.navigateTo('https://baseurl.sitecore-scaled-test-cm.azurewebsites.net/').expect(apiLogger.contains(r => r.response.statusCode === 200)).ok();' Я не могу понять, почему я получаю сообщение об ошибке: 'errMsg:' AssertionError: ожидалось, что ложь будет правдой '}' - person curiousTester; 15.08.2019
comment
Согласно Выберите тему" Запросы, которые будут обрабатываться хуком ", вы фильтруете запросы по точному URL-адресу: 'api.test.samplewebsite.com.au '. Если это только часть URL-адреса запроса, попробуйте вместо этого использовать регулярное выражение. Например: const urlRegExp = new RegExp('https://api.test.samplewebsite.com.au'); const apiLogger = RequestLogger(urlRegExp, { logResponseHeaders: true, logResponseBody: true });. - person Dmitry Ostashev; 15.08.2019