Тестирование и документация API
Создание качественного API – это значительная часть того, что нужно для эффективного сотрудничества. Разработчики приложений, тестировщики, дизайнеры, менеджеры по продуктам, клиенты и партнеры – и специалисты, и контрагенты привносят уникальные возможности в разрабатываемый продукт.
Чтобы добиться подлинного и долговременного успеха в начинании, важно убедиться, что программный интерфейс работает корректно и справляется со всеми запланированными задачами. Соответствие заявленным возможностям реально подтвердить лишь в ходе тщательного тестирования. При этом процедуру может значительно облегчить хорошая документация, способная вдобавок обеспечить еще и высокую степень автоматизации проверки.
Автоматическое тестирование
Жизненный цикл API, особенно в платном варианте, предполагает, что пользователь, получая доступ к интересующим инструментам, может убедиться в соответствии задекларированных характеристик и возможностей реальным. Этот вопрос решается чаще всего путем автоматического тестирования. Процесс проходит путем:
- получения описания API;
- создания ожиданий на основе запросов и ответов в схеме;
- выполнения запросов к целевому API;
- проверки соответствия ответов. Цель состоит в том, чтобы документация и реализация API были синхронизированы – так удается обеспечивать актуальность профильной документации.
Программное обеспечение для тестирования
Каждый разработчик и тестировщик подбирает инструмент согласно конкретным задачам и своим предпочтениям. Вот несколько наиболее популярных из достаточно богатого ассортимента.
Postman
Среда имеет графический пользовательский интерфейс, который может устанавливаться как отдельное приложение для операционных систем Windows или OS X, так и в виде расширения в браузер. Решение наиболее востребовано среди тестировщиков, не желающих зависеть от технологий, используемых разработчиками API.
Soap UI
Наиболее адекватный выбор для проработки сложных сценариев. Утилита к тому же обеспечивает гибкое конфигурирование тестов и может дополняться с помощью объектно-ориентированного Groovy.
PowerShell
Простой и легкий инструмент для экосистем на базе Windows. Поставляется с операционной системой, прост в освоении, имеет отличную производительность благодаря отсутствию графического интерфейса.
JMeter и Taurus
Утилита JMeter, поддерживающая Jenkins, CSV и CI-паплайны, в сочетании с платформой Taurus может эффективно использоваться для непрерывного тестирования API. Полноценные скрипты можно писать на YAML или в формате JSON.
Dredd
Независимая от языка программирования командная строка, позволяющая проверять соответствие описания в документации API внутренней реализации программного интерфейса. Утилита является кроссплатформенной, поддерживает все самые популярные и трендовые языки, начиная от Go и Node.js и заканчивая Perl и Rust.
Большую помощь в тестировании может оказать сервис Apiary, своеобразный аналог GitHub, но специализирующийся на создании описаний, проведении тестирования и выработке документации API. Разметкой в данном случае выступает API Blueprint. Apiary может предложить продвинутый онлайн-редактор, поддерживает комментарии пользователей и вызов методов из браузера. Но главное достоинство – возможность создать под конкретную задачу бесплатный тестовый сервер на вычислительных мощностях площадки.
Перспективы
Перечисленные инструменты непрерывно совершенствуются. В частности, с целью упрощения процесса отдельные проекты уже применяют ИИ для трансформации тестов пользовательского интерфейса в тесты API. Утилиты задействуют технологию машинного обучения, чтобы автоматизировать поиск шаблонов и каналов между микросервисами, следуя за поведением пользователя.
По мере развития возможностей искусственного интеллекта тестирование будет становиться все более простым и быстрым, но пока стоит осваивать способы, связанные с написанием скриптов, для того чтобы по возможности автоматизировать отдельные стадии процедуры.