Главная | Все статьи | Код

Как тестировать API

Тестирование Время чтения статьи ~4 минуты
Как тестировать API главное изображение

Тестирование API — интеграционное тестирование для выявления ошибок взаимодействия между модулями системы или между системами. Для его проведения тестировщики часто прибегают к специальным инструментам с функциями отправки входных данных в запросе и проверки точности выходных данных.

Автотестирование на JavaScript c нуля

Попробуйте себя с 5 бесплатных уроков

Что входит в тестирование API

Для каждого запроса API необходимо проверять следующие пункты:

  1. Правильность кода состояния HTTP через возврат соответствующего ответа на любое действие. Это может быть ответ 201 Created в случае создания ресурса или 403 Forbidden для отправки запрещенных запросов.
  2. Корректность тела JSON, типов, значений и имен полей ответа, включая ответы на ошибочные запросы.
  3. Оценка заголовков ответа HTTP-сервера. Они влияют на безопасность и производительность системы.
  4. Правильность состояния приложения при ручном тестировании и/или самостоятельной проверке пользовательского или иного интерфейса.
  5. Базовую работоспособность и время завершения операции. Если действие занимает слишком много времени, тест считается не пройденным.

Принципы тестирования API

Тестирование API базируется на следующих принципах:

  • Использование разнообразных данных. В проверке могут участвовать некорректные данные, граничные значения и данные разного типа для исследования всех возможных сценариев.
  • Автоматизация тестирования или тех его частей, где это возможно — обработка ошибок или тестирование отдельных функций.
  • Непрерывность тестирования и интеграция в него процессов CI/CD при их наличии, для регулярной оценки работоспособности системы и быстрого получения обратной связи о возникших проблемах.
  • Безопасность и проверка уязвимости системы и механизмов аутентификации для лучшей защиты от потенциальных угроз и атак.

Инструменты тестирования API

Чаще всего тестировщики пользуются этими инструментами:

  • Postman для создания, HTTP-запросов и автоматизированных тестов, их отправки и получения ответов от API.
  • SoapUI для тестирования и отладки SOAP и REST API.
  • JMeter для проведения нагрузочного тестирования API, его производительности и масштабируемости.
  • REST-assured для тестирования REST API с использованием DSL-синтаксиса.

Как тестировать API

Рассмотрим реальный пример тестирования RESTful API для системы управления постами со следующими методами:

  • GET /posts — получить список всех постов;
  • GET /posts/{id} — получить данные о конкретном посте;
  • POST /posts — создать новый пост;
  • PUT /posts/{id} — обновить данные о посте;
  • DELETE /posts/{id} — удалить пост.

Тестирование API можно провести в несколько этапов.

QA-инженер с нуля до автоматизатора

Рекомендуем начать с бесплатных уроков

1. Определение требований

Документация API содержит информацию о структуре поста и его полях, процессе его создания и обновления, кодах состояния и структурой ответов.

2. Разработка тестовых случаев

  • GET /posts для тестирования случая отправки GET-запроса на /posts для получения списка постов в ответе.
  • GET /posts/{id} для тестирования получения поста по его идентификатору. Отправка GET-запроса на '/posts/{id}' для проверки корректности идентификатора и возвращаемой информации о посте.
  • POST /posts для отправки POST-запроса на /posts с тестовыми данными для создания нового поста и получения правильного кода состояния (201 Created), если пост создан успешно.
  • PUT /posts/{id} для отправки PUT-запроса на /posts/{id} с обновленными данными. В случае успешного обновления поста API вернет правильный код состояния — 200 OK.

3. Настройка окружения

Выбор инструмента тестирования API в зависимости от задач проверки и его установка.

4. Отправка запросов

Передача запросов из тестовых случаев к API с помощью выбранного инструмента.

5. Проверка ответов

Сравнение ответов API с ожидаемыми результатами, указанными в тестовых случаях. Тестировщики оценивают корректность возвращаемого кода состояния, соответствие структуры ответа ожидаемой модели и правильность значения полей.

6. Работа над ошибками

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

7. Генерация отчетов

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

8. Регулярное проведение повторного тестирования

Проверка необходима после внесения изменений в код API и/или его окружение, при обнаружении ошибок и для подтверждения работоспособности API.

На курсе «Инженер по тестированию» вы научитесь работать с API и проводить его тестирование с использованием соответствующих инструментов.

Аватар пользователя Анастасия Уминская
Анастасия Уминская 19 августа 2024
1
Рекомендуемые программы
профессия
Осваивайте разработку веб-страниц, оживляйте дизайн макетов, публикуйте сайты и приложения. Отслеживайте ошибки в интерфейсе и устраняйте их
10 месяцев
с нуля
Старт 31 октября
профессия
Обучитесь разработке бэкенда сайтов и веб-приложений — серверной части, которая отвечает за логику и базы данных
10 месяцев
с нуля
Старт 31 октября
профессия
Выполняйте ручное тестирование веб-приложений, находите ошибки в продукте. Узнайте все о тест-дизайне.
4 месяца
с нуля
Старт 31 октября
профессия
Научитесь разработке веб-приложений, сайтов и программного обеспечения на языке Java, программируйте и используйте структуры данных
10 месяцев
с нуля
Старт 31 октября
профессия
новый
Собирайте, анализируйте и интерпретируйте данные, улучшайте бизнес-процессы и продукт компании. Обучитесь работе с библиотеками Python
9 месяцев
с нуля
Старт 31 октября
профессия
Занимайтесь созданием сайтов, веб-приложений, сервисов и их интеграцией с внутренними бизнес-системами на бекенд-языке PHP
10 месяцев
с нуля
Старт 31 октября
профессия
Создание веб-приложений со скоростью света
5 месяцев
c опытом
Старт 31 октября
профессия
Обучитесь разработке визуальной части сайта — фронтенда, а также реализации серверной — бэкенда. Освойте HTML, CSS, JavaScript
16 месяцев
с нуля
Старт 31 октября
профессия
Разработка бэкенд-компонентов для веб-приложений
10 месяцев
с нуля
Старт 31 октября
профессия
новый
Организовывайте процесс автоматизации тестирования на проекте, обучитесь языку программирования JavaScript, начните управлять процессом тестирования
8 месяцев
c опытом
Старт 31 октября