- airborne
- APIAuto
- Apickli
- ArexTest
- Bruno
- Dredd
- Firecamp
- Frisby
- Insomnia
- mountebank
- RestAssured
- Schemathesis
- SoapUI
- SuperTest
- Tavern
Растущее использование сервис-ориентированных архитектур, а затем микросервисов привело к созданию множества инструментов для тестирования API. В статье представлен список инструментов с открытым исходным кодом.
airborne
Фреймворк на основе RSpec. Airborne — это так называемый gem на языке Ruby, созданный для тестирования API поверх Rspec и RestClient. Airborne использует rest_client для выполнения HTTP-запросов и поддерживает все HTTP-запросы, то есть при создании теста можно вызвать любой метод: get, post, put, patch, delete, head, options.
Сайт: https://github.com/brooklynDev/airborne
APIAuto
Мощный и простой HTTP-интерфейс для agile-разработки, машинного обучения, zero-code testing, генерации кода и статической проверки, генерации документации и «плавающих» за курсором комментариев. Универсальный инструмент, объединяющий документацию, тестирование, мокинг, отладку и управление, также поддерживает клавиатурные шоткаты, например форматирование одним кликом, комментирование/отключение комментариев и т. д.
По количеству функций значительно превосходит многие другие инструменты для документирования/тестирования API, как открытые так и коммерческие, даже Postman, Swagger, YApi. Умеет импортировать юзкейсы и документы одним кликом.
Поддерживает GET, POST, PUT, PATCH, DELETE, HEAD и другие HTTP-методы и Content-Type, URL /{Path}/{Variable}. Годится для RESTful, RESTful-подобных и GRPC API.
Является «официальным» инструментом документирования и тестирования, рекомендованным спецификацией Tencent API JSON. Среди пользователей Tencent — многочисленные компании и команды из бизнес-группы IEG Interactive Entertainment, бизнес-группы TEG Technology Engineering и бизнес-группы CSIG Cloud and Intelligence. Среди внешних пользователей — Huawei, местное отделение Промышленно-коммерческого банка Китая, компания Transsion, входящая в мировой топ-500, гигант трансграничной электронной коммерции SHEIN, Social Security Technology (кошкожена) и другие.
Сайт: https://github.com/TommyLemon/APIAuto
Apickli
Фреймворк для тестирования интеграции REST API, основанный на Cucumber. Он предоставляет Gherkin-фреймворк и набор утилит, упрощающий тестирование. Apickli также доступен в виде npm-пакета.
Сайт: https://github.com/apickli/apickli
ArexTest
Платформа автоматизированного тестирования, позволяющая записывать действия реальных пользователей и затем использовать их для тестирования. Она записывает реальный трафик в продакшене и мокирует все обращения к сторонним зависимостям с помощью технологии инъекции байткода Java Agent, а затем воспроизводит запрос и мокированные данные в тестовом окружении. Кроме того, ArexTest сравнивает записанные и воспроизведенные ответные сообщения и выводит различия, позволяя разработчикам и тестировщикам быстро устранить проблемы.
Сайт: https://github.com/arextest
Bruno
IDE с открытым кодом для изучения и тестирования API. Его можно рассматривать как «облегченную» альтернативу Postman или Insomnia. Это инновационный API-клиент, призванный изменить статус-кво, навязанный Postman и другими подобными инструментами. Bruno хранит коллекции непосредственно в папке в вашей файловой системе. Для сохранения информации об API-запросах используется язык разметки Bru. Для совместной работы над коллекциями API можно использовать Git или любой другой контроль версий. Bruno работает только в режиме офлайн, и добавление облачной синхронизации в Bruno не планируется. Bruno ценит конфиденциальность ваших данных и считает, что все данные должны оставаться на вашем устройстве.
Сайт: https://github.com/usebruno/bruno
Dredd
Инструмент командной строки, не зависящий от языка, для валидации документов описания API на соответствие бэкэнд-реализации API. Dredd читает описание API и шаг за шагом проверяет, соответствует ли реализация API-ответов тому как они описаны в документации. Dredd поддерживает автоматическое тестирование REST API, создание подробных отчетов и документации по REST API на основе имеющихся кейсов.
Сайт: https://github.com/apiaryio/dredd , https://dredd.org/
Firecamp
Платформа для разработки API, которая помогает проектировать, разрабатывать, тестировать и документировать API. Благодаря удобному интерфейсу и ряду мощных функций она упрощает разработку API и взаимодействие между членами команды. Цель — обеспечить удобство для разработчиков, вдохновленный VS Code DX. Firecamp предлагает возможности мультипротокольного тестирования Rest, GraphQL, Websocket и SocketIO и позволяет сообща работать с коллекциями API в рамках рабочего пространства и команды. Вы можете создавать API, не переключаясь между инструментами и приложениями. Документация, командная строка, интеграция в ci/cd.
Сайт: https://github.com/firecamp-dev/firecamp , https://firecamp.dev/
Frisby
Фреймворк для тестирования REST API, основанный на Jest и призванный сделать тестирование конечных точек API простым, быстрым и не утомляющим. Frisby.js поставляется с множеством встроенных инструментов для самых распространенных тестовых задач в REST API, проверяя свойства, значения и типы. Если вам нужно что-то особое, Frisby.js предоставляет простой способ настройки и расширения ассертов-утверждений, уменьшая количество кода.
Сайт: https://github.com/vlucas/frisby , http://frisbyjs.com/
Insomnia
Кроссплатформенный API-клиент для GraphQL, REST, WebSockets, Server-sent events (SSE), gRPC и любых других HTTP-совместимых протоколов. С помощью Insomnia вы можете отлаживать API с использованием самых популярных протоколов и форматов, проектировать API с помощью встроенного редактора OpenAPI и визуального предпросмотра, тестировать API с помощью встроенных тест-сьютов. Мокирование API доступно с ноября 2023 года. Также интегрировать в CI/CD конвейеры с помощью командной строки для линтинга и тестирования и работать с другими членами команды.
Сайт: https://github.com/Kong/insomnia , https://insomnia.rest/
mountebank
Первый опенсорсный инструмент тестирования API, предоставляющий кроссплатформенные многопротокольные тестовые дублеры over the wire. Просто направьте ваше тестируемое приложение в mountebank вместо реальной зависимости и тестируйте так же, как вы бы делали это с обычными моками и стабами. mountebank использует легион тестовых дублеров на любой вкус. Ваш тест связывается с mountebank по протоколу http, используя API для настройки стабов, записи и воспроизведения прокси, и проверки ожидаемого поведения моков. В типичном случае каждый тест запускает дублера во время запуска теста и останавливает его во время завершения, и можно также по другому настроить mountebank с помощью файла конфигурации. mountebank использует несколько типов дублеров, каждый из которых работает с определенным протоколом. Как правило, тест указывает дублеру, к какому порту подключиться, и дублер открывает соответствующий сокет.
Сайт: http://www.mbtest.org/ , https://github.com/bbyars/mountebank
RestAssured
Тестировать и проверять REST-сервисы на Java сложнее, чем на динамических языках, таких как Ruby и Groovy. REST Assured переносит простоту использования этих языков в Java.
Сайт: https://rest-assured.io/ , https://github.com/rest-assured/rest-assured
Schemathesis
Это ориентированный на спецификации инструмент тестирования API для Open API и приложений на основе GraphQL. Он считывает схему приложения и генерирует тест-кейсы, которые гарантируют, что ваше приложение соответствует своей схеме и не упадет. Тестируемое приложение может быть написано на любом языке; единственное, что вам нужно — корректная схема API в поддерживаемом формате. Простой в использовании и в то же время мощный инструмент выявления сложных багов благодаря подходу к тестированию на основе свойств, подкрепленному авангардной библиотекой Hypothesis.
Сайт: https://github.com/schemathesis/schemathesis
SoapUI
Бесплатное кроссплатформенное решение для функционального тестирования API и веб-сервисов. Позволяет тестировать REST, SOAP и GraphQL. SoapUI основан на Java, поэтому работает на большинстве операционных систем. Мы тестировали его на нескольких версиях Windows, а также на Mac и многочисленных диалектах Linux.
Сайт: https://github.com/SmartBear/soapui
SuperTest
Библиотека на основе SuperAgent для тестирования HTTP-серверов node.js с использованием Fluent API. Предоставляет высокоуровневую абстракцию для тестирования HTTP, при этом позволяет перейти к API более низкого уровня, предоставляемого SuperAgent.
Website: https://github.com/visionmedia/supertest, https://www.npmjs.com/package/supertest
Tavern
Плагин pytest, инструмент командной строки и библиотека Python для автоматизированного тестирования API с простым, лаконичным и гибким синтаксисом на основе YAML. Удобен для новичков, и хорошо кастомизируется для сложных тестов. Tavern поддерживает тестирование RESTful API, а также API на основе MQTT. Tavern работает как плагин pytest, так что все, что вам нужно сделать – это установить pytest и Tavern, написать тесты в yaml-файлах и запустить pytest. Это означает, что вы получаете доступ ко всей экосистеме pytest. Вы также можете интегрировать Tavern в свой кастомный фреймворк или систему непрерывной интеграции как библиотеку Python, или использовать инструмент командной строки tavern-ci, с bash-скриптами и cron-задачами.
Сайт: https://taverntesting.github.io/