Перейти к основному содержимому

Сценарное тестирование и отчёты

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

Состав сценария​

  • Упорядоченные шаги, каждый со ссылкой на операцию спецификации;
  • Передача данных между шагами: например, взять id созданного ресурса и использовать в следующем запросе;
  • Проверки кодов состояния, заголовков и полей ответа;
  • Значения, которые пользователь должен указать перед запуском.

Порядок и проверки — обязательные части сценария: они не отбрасываются молча при выполнении.

Запуск сценария​

Сценарии выполняются в главном процессе через движок runScenario из @powerduck/openapi-cli:

  • scenario:run запускает выполнение со сценарием, спецификацией и настройками запросов;
  • scenario:event передаёт прогресс по мере выполнения шагов;
  • scenario:cancel останавливает выполняемую задачу.

Можно наблюдать за каждым шагом, находить место сбоя и отменять длительные запуски.

Как ассистент создаёт сценарий​

Ассистент не придумывает определения тестов внутри спецификации. Сценарии — отдельный процесс приложения, и они никогда не сохраняются в документе OpenAPI: ни ключей x-scenarios, ни встроенных шагов.

Если вы просите спроектировать и проверить конечные точки, работа выполняется по порядку:

  1. Сначала ассистент предлагает только правки конечных точек;
  2. После их применения он возвращает карточку действия для запуска процесса:
    • test.single — для одной конечной точки;
    • scenario.plan — чтобы приложение определило сквозные процессы;
    • scenario.run — для подготовки и выполнения упорядоченного процесса.

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

Отчёты​

После запуска можно экспортировать автономный HTML-отчёт. Это итоговый документ, а не сырой вывод CLI: он наглядно показывает процесс, результаты шагов, проверки и общий итог.

При экспорте выберите язык. Встроены десять языков:

  1. English (английский)
  2. 简体中文 (упрощённый китайский)
  3. 繁體中文 (традиционный китайский)
  4. 日本語 (японский)
  5. 한국어 (корейский)
  6. Français (французский)
  7. Deutsch (немецкий)
  8. Español (испанский)
  9. Português — Brasil (бразильский португальский)
  10. العربية (арабский)

Вариант другой/свой язык позволяет указать иной язык, но встроенные подписи отчёта остаются английскими, если перевода нет. Сам ввод языка не переводит отчёт автоматически.

Перед передачей отчёта проверьте его содержимое:

  • Известные поля учётных данных скрываются автоматически. Произвольные данные, URL и пользовательские поля всё ещё могут содержать чувствительную информацию; проверьте и удалите её перед передачей;
  • Большие данные сворачиваются для удобства чтения. Сворачивание раздела не удаляет его содержимое из экспортированного HTML.

HTML-файл самодостаточен: его можно приложить к задаче или сохранить вместе с релизом.

Когда использовать сценарии​

  • Для проверки многошагового бизнес-процесса: создание, чтение, обновление, удаление;
  • Для проверки аутентификации и передачи токенов между вызовами;
  • Для подтверждения поведения API перед релизом или передачей работы;
  • Для регрессионной проверки процесса после изменения контракта.

См. также: Рабочая область запросов, Проектирование с ассистентом, Mock-сервер.