26 July 2018

10 лучших инструментов для тестирования API

IT systems testingAPI
10 лучших инструментальных средств тестирования интерфейсов прикладного программирования 2018 года.

Интерес к тестированию неудержимо растёт на протяжении нескольких последних лет, согласно исследованиям Google Trends. Опрос, проведенный компанией Smartbear в 2017 году среди 5000 профессионалов в области разработки программного обеспечения, показал, что более 50% опрошенных респондентов используют автоматические средства тестирования API, и ожидается рост их количества на 30% ( с 59% до 77%) в течении следующих двух лет, причем 80% участников опроса указали, что отвечают за тестирование API.

Наличие правильных процессов, инструментов и технических решений для автоматических тестирований API становится важным, как никогда ранее. И с помощью тенденции shift-left, тестирование API становится больше, чем просто решение по контролю за качеством, теперь это критически важный компонент успешной непрерывной интеграции и развёртывания программного обеспечения.

В данной статье предоставлен обзор лучших средств тестирования API, как с открытым доступом, так и коммерческих решений, из которых команды тестировщиков могут выбрать наиболее подходящие для себя.



5 лучших средств тестирования API в 2018 году

1. SoapUI


SoapUI представляет собой консольный инструмент, предназначенный для тестирования API и позволяющий пользователям легко тестировать API REST и SOAP, а также Web-сервисы.

При помощи SoapUI, пользователи могут получить полный исходный документ и встроить предпочтительный набор функций, в дополнение к перечисленным ниже:

  • Создать тест легко и быстро при помощи технологий перетаскивания объектов «мышкой» (Drag and drop) и метода «указания и щелчка» (Point-and-click)
  • Быстро создать пользовательский код при помощи Groovy
  • Мощное тестирование на основе данных: Данные загружаются из файлов, баз данных и Excel, поэтому они могут создать симуляцию взаимодействия пользователя и API.
  • Создание комплексных сценариев и поддержка асинхронного тестирования
  • Повторное использование скриптов: загрузка тестов и сканирование безопасности могут повторно использоваться в случае функционального тестирования всего в несколько шагов

Веб-сайт: https://www.soapui.org/
Цена: Бесплатно — 659$/год

2. Postman


Будучи изначально плагином браузера Chrome, теперь Postman расширяет свои технические решения вместе с оригинальными версиями как для Mac, так и для Windows.

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

  • Легкий в использовании клиент REST
  • Богатый интерфейс делает этот инструмент простым и удобным в использовании
  • Может использоваться как при автоматическом, так и при исследовательском тестировании
  • Работает в приложениях для Mac, Windows, Linux и Chrome
  • Обладает пакетом средств интеграции, таких как поддержка форматов Swagger и RAML
  • Обладает функциями Run, Test, Document и Monitoring
  • Не требует изучения нового языка программирования
  • Позволяет пользователям легко делиться опытом и знаниями с другими членами команды, поскольку позволяет упаковывать все запросы и ожидаемые ответы и отправлять их коллегам.

Веб-сайт: https://www.getpostman.com/
Цена: Бесплатно — 21$/ с пользователя в месяц

3. Katalon Studio


Katalon Studio является бесплатным инструментом автоматического тестирования, предоставляющим общую среду для создания и выполнения UI функционала, служб API/Web и тестирования мобильных платформ.

Способность комбинировать уровни UI и Business (службы API/Web) для различных операционных сред (Windows, Mac OS, Linux) расценивается как значительное преимущество Katalon Studio перед аналогичными продуктами.

Katalon Studio поддерживает запросы SOAP и RESTful с различными типами команд (GET, POST, PUT, DELETE) с параметризованными возможностями.
Основные свойства:

  • Поддержка теста комбинации между верификациями UI и API.
  • Поддержка тестирования запросов как SOAP, так и RESTful.
  • Сотни встроенных ключей для создания тестовых заданий.
  • Поддержка одной из самых мощных библиотеки проверки утверждений AssertJ для создания динамических утверждений в BDD-стиле.
  • Поддержка подхода, управляемого данными.
  • Может использоваться как при автоматическом, так и при исследовательском тестировании.
  • Отлично подходит как для профессионалов, так и для новичков

Веб-сайт: https://www.katalon.com
Цена: Бесплатный

4. Tricentis Tosca


Tricentis Tosca представляет собой платформу непрерывного тестирования для Agile и DevOps. Среди преимуществ Tricentis Tosca следует отметить:

  • Поддержку многих массивов протоколов: HTTP(s) JMS, AMQP, Rabbit MQ, TIBCO EMS, SOAP, REST, IBM MQ, NET TCP
  • Интеграцию в циклы Agile и DevOps
  • Максимизацию многократного использования и способность к сопровождению средств автоматизации тестирования на основе использования моделей
  • Тесты API могут использоваться как на мобильных, так на браузерных и пакетных приложениях и т.д.
  • Достигнута автоматизация, поддерживаемая новыми технологиями
  • Снижено время, необходимое на проведение регрессивного тестирования

Веб-сайт: https://www.tricentis.com/
Цена: Уточняйте у продавца

5. Apigee


Apigee является кросс-«облачным» средством тестирования API, позволяющим пользователям измерять и тестировать производительность API, обеспечивать техническую поддержку и разработку API при помощи других редакторов, таких как Swagger.

  • Данный инструмент является многошаговым и находится под управлением Javascript
  • Он позволяет разрабатывать, отслеживать, выполнять разворачивание и масштабирование API
  • Идентифицирует проблемы путем отслеживания трафика API, уровня ошибок и времени ответа
  • Легко создает прокси API из Open API Specification и выполняет их развертку в «облаке»
  • Модели разворачивания в «облаке», локального разворачивания и гибридного разворачивания работают на основе одного кода
  • PCI, HIPAA, SOC2, и PII для приложений и API
  • Apigee разработан специально для цифрового бизнеса и задач с интенсивной обработкой данных на под управлением мобильных платформ API и приложений, которые управляют ним.

Веб-сайт: https://apigee.com/api-management/
Цена: Бесплатный пробный период — 2 500$/месяц

6. JMeter


JMeter (открытое программное обеспечение) широко используется для функционального тестирования API, однако изначально он создавался для нагрузочного тестирования.

  • Поддерживает воспроизведение результатов тестирования
  • Автоматически работает с файлами CSV, позволяя команде быстро создавать уникальные значения параметров для тестирования API.
  • Благодаря интеграции между JMeter и Jenkins, пользователи могут включать тесты API в конвейерные обработки CI
  • Данный инструмент может использоваться как для статического, так и динамического тестирования производительности ресурсов

Веб-сайт: https://jmeter.apache.org/
Цена: Открытое программное обеспечение

7. Rest-Assured


Rest-Assured является общедоступным предметно-ориентированным Java-языком, который делает службу тестирования REST более простой и удобной.

  • Обладает целым набором встроенных функционалов, наличие которых означает, что пользователю не придется кодировать заново.
  • Надежно интегрирован со автоматизированной платформой Serenity, что позволяет пользователям комбинировать тесты UI и REST в рамках одной платформы и получать изумительные результаты.
  • Поддерживает синтаксические конструкции BDD Given/When/Then
  • Пользователям необязательно быть экспертами в области HTTP

Веб-сайт: http://rest-assured.io/
Цена: Открытое программное обеспечение

8. Assertible


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

  • Обеспечивает автоматическое тестирование API на каждом этапе процесса интеграции и поставки программного обеспечения.
  • Осуществляет поддержку текущих тестов API после внедрения приложений и интегрирует их с привычными инструментами, такими как GitHub, Slack, и Zapier.
  • Поддерживает проверку подлинности ответов HTTP при помощи готовых операторов подтверждения отсутствия ошибок, таких как проверка достоверности JSON Schema и проверка целостности данных JSON Path

Веб-сайт: https://assertible.com/
Цена: Бесплатный — 500$/месяц

9. Karate DSL


Karate DSL это новый инструмент для тестирования API, который помогает разрабатывать сценарии для BDD тестов на основе API простым способом, без написания характеристик этапов. Эти характеристики создаются самим KarateDSL, а поэтому пользователи могут запустить тестирование API легко и быстро.

  • Встроен на вершине Cucumber-JVM
  • Способен запускать тестирование и генерировать отчеты как любой другой стандартный проект Java
  • Тест может быть разработан без обязательного владения знаниями языка Java
  • Тесты могут легко создаваться даже непрограммистами
  • Поддерживает конфигурацию продвижения /переключения, а также многопотоковое параллельное выполнение кода

Веб-сайт: https://github.com/intuit/karate
Цена: Открытое программное обеспечение

10. Ни одно решение не может совместить все инструменты
Это больно осознавать, однако, это правда!

Мы верим, что приведенный выше список представляет наилучшие решения, доступные на текущий момент, если Вы решили использовать автоматическое тестирование API. Однако, как и в случае с большинством продуктов в данной сфере, найти один инструмент, который совмещает все указанные функции, практически невозможно.

Некоторые могут посчитать, что свойств коммерческих продуктов (Postman, Tricentis Tosca,…) будет достаточно, однако цена вопроса будет служить серьезным сдерживающим фактором. Бесплатные и общедоступные решения (Rest-Assured, Karate DSL,…) являются довольно-таки приемлемыми, но требуют квалифицированных умений и много усилий для имплементации правильной платформы. Инструменты, которые удерживают баланс между ценой и другими факторами (Katalon Studio, Postman), могут иметь недостатки для некоторых типов проектов, и эти недостатки требуют пристальной оценки.



Тестирование API создало свой собственный тренд в области автоматического тестирования, и чем дальше, тем больше инструментов будет создаваться для удовлетворения растущих запросов от команд разработки программного обеспечения. Найти идеальный инструмент по-прежнему сложно, но у нас есть и хорошие новости — теперь Ваш выбор стал намного шире, чем был раньше. Тщательно обдумайте Ваши требования, взвесьте все «за» и «против» каждого решения — постарайтесь быть не слишком придирчивым на ранних стадиях и попробуйте 5 лучших кандидатов из нашего списка. Когда Вы создадите список всех «за» и «против» для этих решений, Вы получите более адекватную картину критических факторов Вашего проекта и сможете отредактировать список инструментов. Данный подход предоставит Вам хорошую возможность идентифицировать подходящий инструмент для текущего этапа и информацию о следующем инструменте, когда Ваши проекты станут более комплексными, сложными и опытными.

Мне было бы очень приятно услышать Ваши отзывы, поэтому — если Вы знаете другие инструменты, которые могут использоваться для аналогичных целей — буду признателен за Ваш вклад в исследование темы.
Tags:тестированиеapi
Hubs: IT systems testing API
+11
56.6k 139
Comments 6
Popular right now
Back-end разработчик (Laravel, REST API)
from 100,000 to 140,000 ₽GBMSRemote job
Java API Developer
from 3,300 to 5,000 $AWWCOR Inc.Remote job
QA engineer
from 70,000 ₽ГК InnoSTageRemote job
Top of the last 24 hours