Учебное пособие по тестированию API: что такое автоматизация тестирования API?
Что такое тестирование API?
Тестирование API — это тип тестирования программного обеспечения, который проверяет интерфейсы прикладного программирования (API). Целью тестирования API является проверка функциональности, надежности, производительности и безопасности программных интерфейсов. При тестировании API вместо использования стандартного пользовательского ввода (клавиатуры) и вывода вы используете программное обеспечение для отправки вызовов API, получения выходных данных и записи ответа системы. Тесты API сильно отличаются от тестов GUI и не концентрируются на внешнем виде приложения. В основном он концентрируется на уровне бизнес-логики архитектуры программного обеспечения.
Для фона API (интерфейс прикладного программирования) представляет собой вычислительный интерфейс, который обеспечивает связь и обмен данными между двумя отдельными программными системами. Программная система, выполняющая API, включает в себя несколько функций/подпрограмм, которые может выполнять другая программная система. API определяет запросы, которые могут быть сделаны, способы их выполнения, форматы данных, которые можно использовать, и т. д. между двумя программными системами.
Настройка среды автоматизации тестирования API
Для тестирования автоматизации API требуется приложение, с которым можно взаимодействовать через API. Чтобы протестировать API, вам необходимо
- Используйте инструмент тестирования для управления API
- Напишите свой собственный код для тестирования API
Несколько моментов, на которые стоит обратить внимание
- Тестирование API отличается от других типов тестирования программного обеспечения, поскольку графический интерфейс недоступен, но вам необходимо настроить исходную среду, которая вызывает API с необходимым набором параметров, а затем, наконец, изучить результат теста.
- Следовательно, настройка среды тестирования для автоматического тестирования API кажется немного сложной.
- База данных и сервер должны быть настроены в соответствии с требованиями приложения.
- После завершения установки следует вызвать функцию API, чтобы проверить, работает ли этот API.
Типы вывода API
Результат API может быть
- Любой тип данных
- Статус (скажите «Годен» или «Не пройден»)
- Вызовите другую функцию API.
Давайте рассмотрим пример каждого из вышеперечисленных типов в этом руководстве по тестированию API.
Любой тип данных
Пример. Существует функция API, которая должна складывать два целых числа.
Long add(int a, int b)
Числа должны быть заданы в качестве входных параметров. Выходные данные должны представлять собой сумму двух целых чисел. Этот результат необходимо сверить с ожидаемым результатом.
Необходимо выполнить вызов, например
add (1234, 5656)
Исключения необходимо обрабатывать, если число превышает целочисленный предел.
Статус (скажите «Годен» или «Не пройден»)
Рассмотрим приведенную ниже функцию API –
- Замок()
- Разблокировать()
- Удалить()
В качестве вывода они возвращают любое значение, например True (в случае успеха) или false (в случае ошибки).
Более точный Тестовый кейс будет, может вызывать функции в любом из сценариев, а затем проверять наличие изменений либо в базе данных, либо в графическом интерфейсе приложения.
Вызов другого API/события
В этом случае мы вызываем одну из функций API, которая, в свою очередь, вызывает другую функцию.
Например: первую функцию API можно использовать для удаления указанной записи в таблице, а эта функция, в свою очередь, вызывает другую функцию для ОБНОВЛЕНИЯ базы данных.
Тестовые примеры для тестирования API:
Тестовые случаи тестирования API основаны на
- Возвращаемое значение на основе входного условия: его относительно легко протестировать, поскольку входные данные можно определить, а результаты можно аутентифицировать.
- Ничего не возвращает: Если возвращаемого значения нет, необходимо проверить поведение API в системе.
- Запустить другой API/событие/прерывание: Если выходные данные API вызывают какое-либо событие или прерывание, то эти события и прослушиватели прерываний должны отслеживаться.
- Обновить структуру данных: Обновление структуры данных будет иметь определенный результат или влияние на систему, и это должно быть проверено.
- Измените определенные ресурсы: Если вызов API изменяет некоторые ресурсы, это следует проверить путем доступа к соответствующим ресурсам.
Подход к тестированию API
Подход к тестированию API — это предопределенная стратегия или метод, который команда контроля качества будет использовать для проведения тестирования API после того, как сборка будет готова. Это тестирование не включает исходный код. Подход к тестированию API помогает лучше понять функциональные возможности, методы тестирования, входные параметры и выполнение тестовых примеров.
Следующие пункты помогут пользователю реализовать подход к тестированию API:
- Понимание функциональности программы API и четкое определение области применения программы.
- Применяйте методы тестирования, такие как классы эквивалентности, анализ граничных значений и угадывание ошибок, и записывайте тестовые примеры для API.
- Входные параметры для API необходимо спланировать и определить соответствующим образом.
- Выполните тестовые примеры и сравните ожидаемые и фактические результаты.
Разница между тестированием API и модульным тестированием
Модульное тестирование | API тестирование |
---|---|
Разработчики это выполняют | Тестировщики выполняют это |
Отдельный функционал тестируется | Проверена сквозная функциональность |
Разработчик может получить доступ к исходному коду | Тестировщики не могут получить доступ к исходному коду |
Тестирование пользовательского интерфейса также участвует | Тестируются только функции API |
Тестируются только базовые функции | Все функциональные проблемы проверены |
Ограничен по объему | Более широкий охват |
Обычно запускался перед заселением | Тестовый запуск после создания сборки |
Как протестировать API
Тестирование автоматизации API должно охватывать как минимум следующие методы тестирования, помимо обычного процесса SDLC.
- Обнаружительное тестирование: Тестовая группа должна вручную выполнить набор вызовов, задокументированных в API, например, проверить, может ли конкретный ресурс, предоставляемый API, быть указан в списке, создан и удален по мере необходимости.
- Юзабилити-тестирование: Это тестирование проверяет, является ли API функциональным и удобным для пользователя. И хорошо ли API интегрируется с другой платформой?
- Тестирование безопасности: Это тестирование включает в себя определение того, какой тип аутентификации требуется и шифруются ли конфиденциальные данные через HTTP или оба.
- Автоматическое тестирование: Тестирование API должно завершиться созданием набора скриптов или инструмента, который можно будет использовать для регулярного выполнения API.
- Документация: Команда тестирования должна убедиться, что документация адекватна и предоставляет достаточно информации для взаимодействия с API. Документация должна быть частью конечного результата.
лучшие практики тестирования API:
- Тестовые случаи API должны быть сгруппированы по категориям тестов.
- В верхней части каждого теста вы должны включать объявления вызываемых API.
- Выбор параметров должен быть явно упомянут в самом тестовом примере.
- Расставьте приоритеты вызовов функций API, чтобы тестировщикам было легко тестировать.
- Каждый тестовый пример должен быть максимально самодостаточным и независимым от зависимостей.
- Избегайте «цепочки тестов» в своей разработке.
- Особую осторожность следует проявлять при обработке функций однократного вызова, таких как – Удалить, Закрыть окно и т. д.
- Последовательность звонков должна быть выполнена и хорошо спланирована.
- Чтобы обеспечить полное покрытие тестированием, создайте тестовые примеры API для всех возможных комбинаций входных данных API.
Типы ошибок, которые обнаруживает тестирование API
- Не удается корректно обрабатывать ошибочные состояния.
- Неиспользуемые флаги
- Отсутствующая или дублирующая функциональность
- Проблемы надежности. Сложность подключения и получения ответа от API.
- Проблемы с безопасностью
- Проблемы с многопоточностью
- Проблемы с производительностью. Время ответа API очень велико.
- Неправильные ошибки/предупреждение вызывающего абонента
- Неправильная обработка допустимых значений аргументов.
- Данные ответа структурированы неправильно (JSON или XML)
Как автоматизировать тестирование API
1) Готовый API
Готовый API — ведущий инструмент для функционального тестирования, тестирования безопасности и нагрузочного тестирования RESTful, SOAP, GraphQL и других веб-сервисов. На одной интуитивно понятной платформе вы получите три мощных инструмента: ReadyAPI Test, ReadyAPI Performance и ReadyAPI Virtualization. С помощью этих инструментов вы можете выполнять функциональное тестирование, тестирование безопасности, а также тестирование производительности/нагрузки. Вы также можете имитировать API и веб-сервисы с помощью нашего надежного инструмента виртуализации. Кроме того, вы можете легко интегрировать свой Конвейер CI / CD во время каждой сборки.
Главные преимущества
- ReadyAPI можно интегрировать в любую среду.
- Он имеет функцию Smart Assertion, которая позволяет быстро создавать массовые утверждения для сотен конечных точек.
- Встроенная поддержка Git, Docker, Jenkins, Azure, и т.д.
- Поддерживает командную строку для автоматического тестирования.
- Поддерживает параллельное выполнение функциональных тестов и организацию очереди заданий.
- Promoповторное использование кода tes
- Удаляет зависимости во время тестирования и разработки.
14-дневная бесплатная пробная версия (кредитная карта не требуется)
В следующих руководствах представлено подробное руководство по автоматизации тестирования API.
- Как протестировать API с помощью REST Assured
- Как протестировать API с помощью Postman
- Как протестировать API с помощью UFT
Кроме того, существуют и другие инструменты для тестирования API. Проверь их здесь
Проблемы тестирования API
Проблемы тестирования API включают в себя:
- Основные проблемы тестирования веб-API: Комбинация параметров, выбор параметров и последовательность вызовов
- Нет доступного графического интерфейса протестировать приложение, что делает сложно указать входные значения
- Проверка и проверка результатов в другой системе немного сложна для тестировщиков.
- Выбор и категоризация параметров должны быть известны тестировщикам.
- Функция обработки исключений необходимо протестировать
- Знания в области кодирования необходимы тестировщикам.
Заключение
API состоит из набора классов/функций/процедур, представляющих уровень бизнес-логики. Если API не протестирован должным образом, это может вызвать проблемы не только в приложении API, но и в вызывающем приложении. Это незаменимый тест в разработке программного обеспечения.