Тестирование API — интеграционное тестирование для выявления ошибок взаимодействия между модулями системы или между системами. Для его проведения тестировщики часто прибегают к специальным инструментам с функциями отправки входных данных в запросе и проверки точности выходных данных.
Что входит в тестирование API
Для каждого запроса API необходимо проверять следующие пункты:
- Правильность кода состояния HTTP через возврат соответствующего ответа на любое действие. Это может быть ответ 201 Created в случае создания ресурса или 403 Forbidden для отправки запрещенных запросов.
- Корректность тела JSON, типов, значений и имен полей ответа, включая ответы на ошибочные запросы.
- Оценка заголовков ответа HTTP-сервера. Они влияют на безопасность и производительность системы.
- Правильность состояния приложения при ручном тестировании и/или самостоятельной проверке пользовательского или иного интерфейса.
- Базовую работоспособность и время завершения операции. Если действие занимает слишком много времени, тест считается не пройденным.
Принципы тестирования 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 можно провести в несколько этапов.
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 и проводить его тестирование с использованием соответствующих инструментов.