Согласно исследованиям Google Trends, в последнее время продолжает возрастать интерес к тестированию интерфейсов прикладного программирования (API). В 2017 году американская компания SmartBear Software, разрабатывающая программное оснащение для программистов и тестировщиков, провела масштабный опрос среди профессионалов в данной области. Результат показал, что более половины программистов используют автоматизированные инструменты для тестирования интерфейсов прикладного программирования (API testing). При этом ожидается рост этого показателя до 80 %.
Следовательно, использование эффективных инструментов для автоматического тестирования API крайне важно. Сегодня становится понятным, что API testing – это не просто способ контроля качества, но и компонент эффективного внедрения программного обеспечения.
  API Testing
В этом материале мы представим обзор 9 решений (бесплатных или коммерческих) для тестирования API.
1. Postman ( https://www.getpostman.com/)
  Postman
Этот инструмент перерос с плагина для Chrome до многофункционального инструмента тестирования, совместимого с платформами Windows и Mac. Postman считается оптимальным выбором для тех, кто хочет использовать язык разработчика, а не работать с кодировками в интегрированной программной среде. Можно выделить следующие преимущества инструмента:
- широкий интерфейс делает тестирование удобным и простым;
 - можно использовать технологию автоматического и исследовательского тестирования;
 - удобный в работе клиент REST;
 - широкий пакет возможностей для интеграции, включая совместимость с форматами RAML и Swagger;
 - корректно функционирует в программах, разработанных для Windows, Linux, Mac и Chrome;
 - включены функции Document, Monitoring, Run и Test;
 - для полномасштабного использования не нужно учить новый язык программирования;
 - интегрирована система легкого обмена полученным опытом между участниками команды. Программа систематизирует запросы и ожидаемые ответы, рассылает результаты участникам проекта.
 
Цена: от бесплатного тестового периода до 21$ с одного аккаунта в месяц.
2. SoapUI (soapui.org/)
  SoapUI
Это удобный консольный инструмент, дающий возможность быстрого и простого тестирования SOAP, API REST и веб-сервисов. С использованием SoapUI можно открыть исходный документ и интегрировать необходимый набор функций, включая описанные ниже:
- быстрое создание программного кода с использованием технологии Groovy;
 - быстрое создание тестов методом «указания клика» и привычного перемещения объектов с помощью мыши;
 - мощный API testing с загрузкой данных из Excel, БД и файлов. Такой алгоритм позволяет реалистично симулировать реальное взаимодействие юзера и API;
 - присутствует поддержка асинхронного тестирования и возможность запуска комплексных сценариев;
 - сканирование безопасности и загрузка тестов могут использоваться повторно, для чего придется сделать всего пару кликов.
 
Цена: от бесплатного тестового периода до 659$ / год.
3. Tricentis Tosca ( https://www.tricentis.com/)
  Tricentis Tosca
Это платформа для непрерывного тестирования для технологий DevOps и Agile. Можно выделить следующие плюсы инструмента:
- поддерживает большинство популярных протоколов, включая REST, IBM MQ, Rabbit MQ, TIBCO EMS, NET TCP, SOAP, AMQP и HTTP(s) JMS;
 - интегрируется в циклы DevOps и Agile;
 - API testing может проводиться на мобильных, браузерных и пакетных приложениях;
 - автоматизация поддерживается внедренными передовыми технологиями;
 - сокращено время проведения регрессивных тестов.
 
Цена: может меняться.
4. Katalon Studio ( https://www.katalon.com)
  Katalon Studio
Это бесплатный API testing инструмент, что особенно нравится начинающим разработчикам. Он предоставляет общую среду для разработки и выполнения UI-функционала, тестирования мобильных продуктов и служб API/Web. Главным преимуществом решения является его способность комбинации уровней Business (службы API/Web) и UI. Инструмент полностью совместим с операционными системами Mac OS, Linux и Windows.
Katalon Studio поддерживает запросы RESTful и SOAP с разными командами (PUT, DELETE, GET, POST). При этом существует возможность настройки параметров команд.
Главные особенности:
- поддержка API testing запросов RESTful и SOAP;
 - множество интегрированных ключей для постановки тестовых задач;
 - комбинированная поддержка теста между верификациями API и UI;
 - поддержка библиотеки проверки утверждений AssertJ;
 - возможность применения подхода, управляемого полученными данными;
 - использование исследовательского и автоматического типа тестирования;
 - хорошее решение как для начинающих разработчиков, так и для опытных.
 
Цена: бесплатно.
5. JMeter ( https://jmeter.apache.org/)
  Jmeter
Изначально это открытое программное обеспечение разрабатывалось для нагрузочного тестирования. Но сегодня оно активно используется для функционального тестирования.
Основные особенности:
- автоматически поддерживает файлы CSV, что необходимо для быстрого указания уникальных параметров тестирования;
 - результаты тестирования воспроизводятся;
 - может применяться в рамках динамического и статического API testing для определения производительности технических ресурсов;
 - интеграция Jenkins и JMeter открывает возможность включать тесты в конвейерные обработки CI.
 
Цена: открытое программное обеспечение.
6. Apigee ( https://apigee.com/api-management/)
  Apigee
Это кросс-облачная платформа для тестов API, дающая возможность измерять и настраивать производительность, обеспечивать разработку API и технической поддержки с применением сторонних редакторов (Swagger). Система работает по многошаговому алгоритму, который управляется Javascript.
Главные плюсы:
- дает возможность разрабатывать, разворачивать, отслеживать и масштабировать API;
 - с помощью Open API Specification быстро создает прокси и производит развертку в «облаке»;
 - определяет слабые места путем наблюдения за трафиком, оценки количества ошибок и продолжительности ожидания ответа;
 - на базе одного кода функционируют модели разворачивания в локальной среде и «облаке», также доступен гибридный режим.
 
Система тестирования Apigee создана для онлайн-бизнеса и сфер, где требуется интенсивная обработка данных. В силу своей специфики и многофункциональности решение нельзя назвать доступным.
Цена: от бесплатного пробного периода до 2 500$ / месяц.
7. Assertible ( https://assertible.com/)
Это инструмент тестирования интерфейсов прикладного программирования, который отличается надежностью и автоматизацией процессов. Его преимущества заключаются в следующем:
- система обеспечивает автоматический API testing на всех этапах интеграции и поставки приложения;
 - поддерживает текущие тесты после интеграции программного обеспечения, совмещая их с популярными инструментами Slack, Zapier и GitHub;
 - с помощью готовых операторов осуществляется поддержка подлинности ответов HTTP, что позволяет контролировать наличие ошибок целостности.
 
Цена: от бесплатного тестового периода до 500$ / месяц.
8. Rest-Assured ( http://rest-assured.io/)
  Rest-Assured
Это открытый предметно-ориентированный Java-язык, делающий тестирование REST быстрым и удобным. Его плюсы:
- имеет большой набор интегрированных функционалов, поэтому не приходится прибегать к повторному кодированию;
 - качественно интегрирован с платформой Serenity, что открывает возможность комбинировать тесты REST и UI в одной среде, получая хорошие результаты;
 - совместим с синтаксисом конструкций BDD Given/When/Then;
 - для полноценного использования не обязательно глубоко разбираться в HTTP.
 
Цена: открытое программное обеспечение.
9. Karate DSL ( https://github.com/intuit/karate)
Относительно новое решение для тестирования API, помогающее создавать сценарии BDD-тестов без необходимости написания характеристик этапов. Необходимые характеристики генерируются самим Karate DSL, что ускоряет и упрощает процесс запуска тестирования.
Преимущества решения:
- интегрирован на вершине Cucumber-JVM;
 - может запускать тестирование и получать отчеты, как другие стандартные инструменты Java;
 - поддерживает параллельное многопотоковое выполнение программного кода, а также конфигурацию переключения/продвижения;
 - создать тест можно без знаний языка программирования Java;
 - тестирование может осуществлять человек, не работающий непосредственно в программировании.
 
Цена: открытое программное обеспечение.
Есть ли универсальное решение
Нет. Вышеописанные инструменты позволяют справляться с любыми задачами в области API testing, но только в комплексе. Как и все продукты для разработчиков, решения для тестирования API не могут совмещать в рамках одного продукта все возможные функции.
Для большинства заинтересованных пользователей возможностей платных продуктов вполне достаточно, но переход на них сдерживается сравнительно высокой стоимостью. Бесплатные решения вполне способны справляться с различными видами тестирования, но их применение сопряжено с необходимостью получения специфических знаний, а также с некоторой сложностью внедрения. Кроме того, нужно учитывать, что некоторые вполне удобные инструменты могут не сочетаться с конкретной платформой, технологией или задачей.
  Универсальное решение для тестирования API
Нужно понимать, что API testing – это актуальный тренд в области автоматического тестирования программного обеспечения. Поэтому на рынке неизбежно будут появляться новые инструменты. Они будут более удобными, многофункциональными или специализированными. В любом случае идеального решения для всех задач разработки программного обеспечения в ближайшее время создано не будет. Но расширение ассортимента инструментов для тестирования, определенно, играет на руку разработчикам.
Теперь остается только сформулировать свои требования, оценить все преимущества и недостатки подходящих решений и сделать выбор. Чтобы получить объективную возможность оценивания продуктов для тестирования, попробуйте инструменты из представленного списка. Такой подход поможет определить, какая платформа больше подходит для определенных задач, а также составить собственный топ. В итоге по мере появления на рынке новых инструментов для тестирования API вы сможете четко понимать, стоит ли использовать новинки или их возможности покрываются существующими решениями.
									Редакция Rookee								
					
					
				
						
						
						