Программирование • 10 октября 2023 • 5 мин чтения

Как тестировщики проверяют работу API: принципы, инструменты и реальные примеры

В программировании разработчики часто используют API для связи с другими программами и инструментами. Работу этих API нужно проверять — этим и занимаются тестировщики.

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

API, или Application Programming Interface, — это набор правил, с помощью которых разные программы общаются друг с другом. Он позволяет программам обмениваться информацией, запрашивать данные или выполнять определённые задачи.
Материал по теме:

Что такое API и как он работает

При подключении API к программе могут возникать разные проблемы и ошибки — как из-за кода самого API, так и из-за неправильного подключения. Искать такие ошибки — задача тестировщика.

Существует шесть видов тестирования API — в зависимости от того, что именно проверяет тестировщик:

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

2. Тестирование взаимодействий
Проверка взаимодействия API с другими API, компонентами программы и сервисами. Показывает, что он успешно отправляет и получает данные, а также обрабатывает различные сценарии использования.

3. Тестирование авторизации и аутентификации
Проверка доступа к API: как работают механизмы авторизации, кто и к каким функциям и данным имеет доступ.

4. Тестирование обработки ошибок
Проверка поведения API в случае непредвиденных ситуаций и ошибок — например, передачи некорректных данных. Позволяет убедиться, что API правильно обрабатывает исключения и передаёт в программу верные коды ошибок.

5. Тестирование производительности
Проверка работы API при повышенных нагрузках — его пропускной способности и производительности. Позволяет убедиться, что API не «отвалится» в случае повышенного спроса на программу.

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

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

Чтобы создавать надёжные и эффективные тесты API, тестировщики придерживаются нескольких принципов:

✅Использовать правильные и разнообразные входные данные
При тестировании важно использовать разные типы данных, граничные значения, некорректные данные. Это помогает убедиться, что API правильно обрабатывает все возможные входные сценарии.

✅Автоматизировать тестирование
В тестировании API многое можно автоматизировать: например, проверку отдельных функций или обработку ошибок.

✅Проводить непрерывные тесты
Если в компании есть процессы CI/CD, важно включить в них тестирование API. Это позволит регулярно проверять его работоспособность и получать обратную связь о проблемах сразу после их возникновения.

✅Проверять безопасность
Поскольку API часто поставляются со стороны, важно тщательно тестировать их на уязвимости и проверять механизмы аутентификации, чтобы и API, и основная система были защищены от потенциальных угроз и атак.

На курсе по тестированию «С нуля до автоматизатора» студентов обучают этим принципам, а также всем необходимым навыкам и инструментам для тестирования API.

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

Некоторые тесты можно проводить и вручную — так же как и программировать теоретически можно в обычном блокноте. Но на практике тестировщики используют специальные инструменты, которые позволяют упростить и автоматизировать тестирование. И делать то, что руками никак не получится.

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

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

Примеры тестирования

В общих чертах тестирование API происходит по этой схеме

Вот как это может быть применено на реальном примере тестирования API. Представим тестирование RESTful API для системы управления задачами. Предположим, что этот API предоставляет следующие методы:

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

Шаги тестирования могут быть такими:

1. Определить требования
Изучить документацию API, чтобы понять, какие поля должны быть в задаче, как она должна быть создана и обновлена, ожидаемые коды состояния и структуру ответов.

2. Создать тестовые случаи
Например:
● Тест случая GET /tasks — отправить GET-запрос на /tasks и убедиться, что полученный ответ содержит список задач.
● Тест случая GET /tasks/{id} — создать тестовую задачу, получить её идентификатор, затем отправить GET-запрос на /tasks/{id} и убедиться, что возвращается информация о задаче с правильным идентификатором.
● Тест случая POST /tasks — отправить POST-запрос на /tasks с тестовыми данными для создания новой задачи и убедиться, что задача успешно создана и возвращается правильный код состояния (например, 201 Created).
● Тест случая PUT /tasks/{id} — создать тестовую задачу, получить её идентификатор, затем отправить PUT-запрос на /tasks/{id} с обновлёнными данными и убедиться, что задача успешно обновлена и возвращается правильный код состояния (например, 200 OK).

3. Настроить окружение
Установить Postman для отправки запросов и проверки ответов API.

4. Отправить запросы
С использованием Postman отправить запросы из тестовых случаев к API.

5. Проверить ответы
Проверить ответы от API, используя ожидаемые результаты, указанные в тестовых случаях. Например, убедиться, что возвращается правильный код состояния, структура ответа соответствует ожидаемой и значения полей задачи корректны.

6. Обработать ошибки
Проверить, как API обрабатывает ошибки, отправляя некорректные запросы. Убедиться, что возвращаются соответствующие коды и описания ошибок.

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

8. Регулярно проводить повторное тестирование
Особенно после внесения изменений в код API или его окружения, для обнаружения проблем и подтверждения работоспособности API.

Совет эксперта

Василий Беляков

Частая ошибка в тестировании API — начинать с негативных сценариев. На самом деле нужно начинать с положительных проверок — отправлять в него корректные данные и проверять стандартные сценарии использования. Это нужно, чтобы понять, что API выполняет свою функцию, — ведь иначе в других проверках вообще не будет смысла.
Статью подготовили:
Василий Беляков
Яндекс Практикум
Инженер по обеспечению качества, наставник
Яндекс Практикум
Редактор
Полина Овчинникова
Яндекс Практикум
Иллюстратор

Дайджест блога: ежемесячная подборка лучших статей от редакции

Поделиться
Идеи новогодних подарков от нейросети + промокоды на курсы Практикума и акции от партнеров
Thu Oct 03 2024 18:02:58 GMT+0300 (Moscow Standard Time)