Скидки до 20% + 2-ая профессия бесплатно и подарки на 50 000₽

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

Как тестировать 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
Похожие статьи
Рекомендуемые программы
профессия
Верстка на HTML5 и CSS3, Программирование на JavaScript в браузере, разработка клиентских приложений используя React
10 месяцев
с нуля
Старт 26 декабря
профессия
Программирование на Python, Разработка веб-приложений и сервисов используя Django, проектирование и реализация REST API
10 месяцев
с нуля
Старт 26 декабря
профессия
Тестирование веб-приложений, чек-листы и тест-кейсы, этапы тестирования, DevTools, Postman, SQL, Git, HTTP/HTTPS, API
4 месяца
с нуля
Старт 26 декабря
профессия
Программирование на Java, Разработка веб-приложений и микросервисов используя Spring Boot, проектирование REST API
10 месяцев
с нуля
Старт 26 декабря
профессия
новый
Google таблицы, SQL, Python, Superset, Tableau, Pandas, визуализация данных, Anaconda, Jupyter Notebook, A/B-тесты, ROI
9 месяцев
с нуля
Старт 26 декабря
профессия
Программирование на PHP, Разработка веб-приложений и сервисов используя Laravel, проектирование и реализация REST API
10 месяцев
с нуля
Старт 26 декабря
профессия
Программирование на Ruby, Разработка веб-приложений и сервисов используя Rails, проектирование и реализация REST API
5 месяцев
c опытом
Старт 26 декабря
профессия
Программирование на JavaScript в браузере и на сервере (Node.js), разработка бекендов на Fastify и фронтенда на React
16 месяцев
с нуля
Старт 26 декабря
профессия
Программирование на JavaScript, разработка веб-приложений, bff и сервисов используя Fastify, проектирование REST API
10 месяцев
с нуля
Старт 26 декабря
профессия
новый
Git, JavaScript, Playwright, бэкенд-тесты, юнит-тесты, API-тесты, UI-тесты, Github Actions, HTTP/HTTPS, API, Docker, SQL
8 месяцев
c опытом
Старт 26 декабря