Пока нет оценок.
Пожалуйста, подождите...

Постоянные «сдвиги влево», которые проходят при использовании такого метода как непрерывные выпуски ПО, неуклонно приводят к тому, что возрастает количество обратной связи от отдела QA.

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

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

Тестирование API

Тестирование API

Понятие API

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

Значительная часть функционального тестирования основывается как раз на пользовательском интерфейсе – различные формы, веб-страницы, процессы. API тесты «обходят» части пользовательского интерфейса, взаимодействуя с приложениями и системами напрямую, посредством запросов к его API.

Подобная форма тестирования позволяет проверять работоспособность таких распространенных технологий, как базы данных, JMS HTTP и веб-службы.

Иногда можно встретить и другое название этого процесса – «консольное тестирование».

Значительная часть консольного тестирования основана на обходе интерфейса и прямолинейной отправке запроса прямиком к back-end части приложения и получению ответа и удостоверения в том, что все функционирует, как нужно.

Это самый простой и понятный пример того, как проходит процесс тестирования конечных точек (API).

Клиент совершает запрос, обращаясь при этом к ресурсу. Запрос отправляется, находит нужный сервер, а сервер в свою очередь выполняет входящий запрос. После нахождения нужного запроса, он прямиком отсылается к клиентской части.

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

Конечно, можно банально обратиться к проверенному годами Selenium, но его можно использовать только при браузерном тестировании, а вот для процессов тестирования SOAP и REST он точно не подходит в полной мере.

REST-Assured

Если на проекте активно используется Java, значит REST-Assured – наиболее приемлемый и эффективный инструмент для автоматизации процесса проверки API. Именно этот инструмент в кругу разработчиков и тестировщиков является наиболее часто используемым.

Утилита REST-Assured – это очень богатая и разносторонняя Java-библиотека, которую можно всецело использовать для проверки функциональности разнообразных REST-служб, выстроенных на HTTP протоколах.

Изначально, при ее создании было отмечено, что она идеально подойдет для тестировщиков, которые часто сталкиваются с процессами автоматизации различных Java фреймворков.

С технической точки зрения, REST-Assured являет собой оригинальный доменно-специфический язык, с помощью которого можно максимально упростить создание автоматических тестов для продукта на основе Java.

Наличие большого количества шаблонных функций позволяет не программировать с нуля.

Приложение поддерживает XML, а также JSON запросы и ответы.

Karate DSL

Относительно новый инструмент автоматизации, с помощью которого тестировщик может существенно упростить создание различных сценариев для своих BDD-тестов для проверки конечных точек. В отличие от большинства уже разработанных утилит и приложений, при использовании Karate DSL вам не нужно создавать новые шаги и тестовые сценарии.

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

Продукт Karate DSL однозначно может стать идеальным инструментом, который подойдет для всего отдела тестирования в качестве базовой утилиты, с помощью которой можно создавать и выполнять массу проверок.

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

HTTPMaster Express

Утилита HTTPMaster Express являет собой специализированный инструмент веб-разработки, с помощью которого можно спокойно автоматизировать проверку функциональности веб-сайтов и сопутствующих серверных служб.

Ее запросто можно использовать в качестве основного инструмента для процессов тестирования различных REST-служб или API-программ.

Также есть возможность быстро отслеживать входящие ответы от API-приложений.

Особенности программы:

  • Позволяет настроить клиентские запросы;
  • Есть возможность редактировать установленные параметры, для включения динамических данных;
  • Работа с цепочкой запросов, где информация из первого запроса передается в следующий и так далее.

RestSharp

Простой REST и HTTP API-клиент для .NET.

Особенности приложения:

  • Всецело поддерживает взаимодействие с MonoTouch, Mono для Android, Windows Phone 10, NET 3.5+, Silverlight 5;
  • Запросто монтируется через NuGEt;
  • Поддержка DELETE, HEAD, POST, OPTIONS.

Rest Console

Универсальный HTTP-клиент для создания и редактирования запросов, позволяющий тестировщикам редактировать и отлаживать ранее созданный REST API.

Возможности:

  • Создание параметров запросов;
  • Параметры подсвечивания синтаксиса;
  • Работа с аутентификацией Plain, OAuth+Custom;

RoboHydra Server

Популярное средство проверки для клиентов, выстроенных на основе HTTP.

Чтобы постоянно не подключаться к реальному серверу, вы просто подключаете RoboHydra Server и приложение отвечает вместо вас необходимым образом.

Особенности:

  • Разработан на JavaScript, запускается из-под Node;
  • Есть возможность тестирования с помощью целой группы разнообразных клиентов.

WebInject

Эффективное решением с открытым программным кодом, которое подходит для разнообразных процессов автоматизированного тестирования веб-приложений и подключенных служб.

Отличительная черта – функционирование через командную строку.

Утилита создана на основе языка программирования Perl и является кросс-платформенным продуктом, который одинаково поддерживаться, как на Windows, Linux, так и на MaC OS.

Pyresttest

Еще один эффективный инструмент автоматизации проверки API на основе языка программирования Python.

С его помощью можно:

  • Создавать систему базовых тестов YAML или JSON в файлах, которые не требуют исходного программного кода;
  • Возвращать коды в случае падения теста;
  • Создавать и редактировать группу тестов под управлением операционных систем Linux и Mac OS.

Airborne

Продукт Airborne – построенный на Ruby фреймворк с открытым исходным кодом.

  • Функционирует с утилитами Rack;
  • Работает с API, которые созданы на Rails.

Unirest

Данный инструмент довольно активно рекомендуется как один из наиболее простых клиентов для тестирования HTTP запросов.

Его запросто можно комбинировать с xUnit для процессов тестирования.

Mockbin

Этот продукт рекомендован как наиболее эффективный инструмент самим Аугусто Мариетти.

Используя его, можно запросто генерировать собственную группу конечных точек для проверок, имитации и отслеживания HTTP-запросов и ответов между подключенными библиотеками, сокетами и собственно API.

Возможности:

  • Имитация своих конечных точек;
  • Создание группы HTTP-методов;
  • Процессы логирования и отслеживания входящей группы запросов к конечным точкам.

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

Теперь же можно поговорить о некоторых нюансах автоматизации API, на которые необходимо обращать свое внимание.

Рациональность отбора тестов API для автоматизации

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

Не каждый тест-кейс запросто поддается процессу автоматизации, и нередко возникают ситуации, когда проверки рационально провести в мануальной форме. Если простыми словами, то на 1000 есть около 10% тестов, которые не получиться автоматизировать.

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

Помните, что ручное тестирование и автоматизация – это не взаимоисключающие процессы, а максимально взаимодополняющие.

Вывод

Хотя про автоматизацию тестирования API было изложено много негатива, нет полной уверенности в том, что избегать автотестов – наиболее правильное решение. От них всегда есть существенная польза.

Применение автоматизации дает эффективные результаты при тех же финансовых затратах.

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

И напоследок, неоспоримые преимущества любой автоматизации:

  • Автотест работает намного быстрее, чем человек;
  • Точность автотеста намного выше;
  • Автоматизация – явный курс на повышения контроля качества;
  • Автоматизация может использоваться в любых процессах тестирования;
  • Автотест можно запускать даже ночью, пока все тестировщики безмятежно спят!

Оставить комментарий