Чтобы удовлетворить повышенный спрос на разработку приложений, разработчик стали все чаще и чаще полагаться на API. API (интерфейс прикладного программирования) состоит из подпрограмм, протоколов, функций и процедур в рамках базовой архитектуры, которая позволяет разработчику создавать программное обеспечение. Это похоже на GUI (графический пользовательский интерфейс), который помогает пользователю запускать и взаимодействовать с некоторой сложной и непонятной ему программой. От разработчика скрывается вся сложная логика, а предоставляются лишь объекты и функции, необходимые для создания приложения. API объединяет разрозненные программные системы путём предоставления возможности связи и обмена данными между ними.
API является своего рода представителем бизнес – логики некого программного обеспечения, который помогает интегрировать его со сторонним приложением. Интересно отметить, что пользователи такого стороннего приложения взаимодействуют с графическим интерфейсом, который, в свою очередь, взаимодействует с нашим API для получения нужного результата.
API тестирование играет большую роль в общем тестировании приложения. С его помощью мы проверяем, правильно ли система обрабатывает наши запросы и верные ли данные возвращаются с неё.
Преимущества API тестирования:
- Позволяет увеличить взаимодействие между несколькими командами разработчиков;
- Разработчики компонентов могут проверить правильность данных, которые отсылает их модуль, найти ошибки и устранить их;
- Проверка функциональности модулей в различных средах: операционных системах, аппаратных средств, приложениях сторонних производителей и т.д.;
- Автотестами может быть проконтролировано поведение различных модулей и связи с зависимостями этих модулей.
Правда, существуют некоторые факторы, которые могут негативно сказаться на API тестировании:
- Различные компоненты или их зависимости, присутствующие в программном обеспечении, расположены удалённо или доступны только через сторонние приложения;
- Работа с модулем требует ручного вмешательства или зависит от некоторых ограничений, таких как локаль или временная зона;
- Ограничен доступ к зависимостям или модулям.
Для решения таких проблем служит служба виртуализации. С использованием виртуализации можно симулировать поведение удалённого компонента или на лету сконфигурировать нужное окружение.
Преимущества виртуализации при API – тестировании:
- Способность оценить неустойчивое поведение API: Часто бывает трудно оценить реакцию API на ввод невалидных данных. Благодаря сервисной виртуализации в нейтральной среде можно изучить реакцию API на такие вещи, как время простоя, медленную скорость, неустойчивое поведение и т.д.;
- Сокращение избыточности;
- Экономия: снижаются затраты на серверное и сетевое оборудование;
- Сокращение сроков выполнения работ: разработчики могут быстрее написать компоненты, зависящие от API разрабатываемых другой командой;
- Многоразовость: при первой же необходимости можно перенастроить системы под реальные потребности.