Я хотел бы написать пакет автоматического тестирования для REST API. По мере завершения работы над новыми службами мы хотим убедиться, что все ранее созданные службы работают должным образом. Есть какие-нибудь предложения по поводу лучших инструментов для этого? Я знаю, что существуют такие инструменты, как Apigee, которые позволяют вам тестировать 1 сервис за раз, но мы хотели бы иметь возможность тестировать все сервисы одним нажатием кнопки.
api
rest
testing
automation
Прасад
источник
источник
Ответы:
В рамках моей работы мы недавно собрали несколько наборов тестов, написанных на Java, для тестирования некоторых созданных нами RESTful API. Наши Сервисы могут вызывать другие API RESTful, от которых они зависят. Мы разделили его на два люкса.
Я определенно рекомендую это сделать. У нас это сработало очень хорошо. Основные преимущества:
Этот пакет требует, чтобы мы настраивали данные в одноранговых службах, что означает, что для написания тестов обычно требуется больше времени. Насколько это возможно, мы используем клиентов REST для настройки данных в одноранговых службах.
Написание тестов в этом наборе обычно занимает больше времени, поэтому мы помещаем большую часть нашего обзора в Suite 1. При этом все еще есть очевидная ценность в этом наборе, поскольку наши макеты в Suite 1 могут вести себя не так, как настоящие службы.
источник
Frisby - это среда тестирования REST API, построенная на node.js и Jasmine, которая делает тестирование конечных точек API простым, быстрым и увлекательным. http://frisbyjs.com
Пример:
источник
По этой причине я сотрудничал с одним из моих коллег, чтобы запустить среду PyRestTest: https://github.com/svanoort/pyresttest
Хотя вы можете работать с тестами на Python, обычный формат теста - YAML.
Пример набора тестов для базового приложения REST - проверяет правильность ответа API, проверяя коды состояния HTTP, хотя вы также можете заставить его проверять тела ответа:
источник
Я использовал SOAP UI для функционального и автоматизированного тестирования. Интерфейс SOAP позволяет запускать тесты одним нажатием кнопки. Также существует страница тестирования контроллеров Spring, созданная Тедом Янгом. Я использовал эту статью для создания модульных тестов Rest в нашем приложении.
источник
Одна из проблем автоматического тестирования API состоит в том, что многие инструменты требуют, чтобы сервер API был запущен и работал, прежде чем запускать свой набор тестов. Наличие инфраструктуры модульного тестирования, способной запускать и запрашивать API-интерфейсы в полностью автоматизированной тестовой среде, может стать реальным преимуществом.
Вариант, который подходит для API, реализованных с помощью Node.JS / Express, - это использование мокко для автоматического тестирования. Помимо модульных тестов, легко писать функциональные тесты для API, разделенных на разные наборы тестов. Вы можете автоматически запустить сервер API в локальной тестовой среде и настроить локальную тестовую базу данных. Используя make, npm и сервер сборки, вы можете создать цель «make test» и инкрементную сборку, которая будет запускать весь набор тестов каждый раз, когда фрагмент кода отправляется в ваш репозиторий. Для по-настоящему привередливого разработчика он даже сгенерирует хороший отчет о покрытии кода HTML, показывающий, какие части вашей кодовой базы покрываются тестами, а какие нет. Если это звучит интересно, вот сообщение в блоге, в котором представлены все технические детали.
Если вы не используете узел, то какой бы ни была структура модульного тестирования де-факто для языка (jUnit, cucumber / capybara и т. Д.) - посмотрите на его поддержку для раскрутки серверов в локальной тестовой среде и выполнения HTTP-запросов. Если это большой проект, то усилия по автоматическому тестированию API и постоянной интеграции окупятся довольно быстро.
Надеюсь, это поможет.
источник
Runscope - это облачная служба, которая может отслеживать веб-API с помощью набора тестов. Тесты могут быть запланированы и / или запущены с помощью параметризованных веб-хуков. Тесты также могут выполняться из центров обработки данных по всему миру, чтобы гарантировать приемлемое время отклика для глобальной клиентской базы.
Уровень бесплатного пользования Runscope поддерживает до 10 000 запросов в месяц.
Отказ от ответственности: я являюсь сторонником разработчиков Runscope.
источник
Я реализовал много вариантов автоматизации на основе REST Assured, jave-DSL для тестирования спокойного сервиса. https://code.google.com/p/rest-assured/
Синтаксис простой, поддерживает json и xml. https://code.google.com/p/rest-assured/wiki/Usage
До этого я пробовал SOAPUI, и у меня были проблемы с бесплатной версией. Плюс кейсы находятся в файлах xml, которые сложно расширять и использовать повторно, просто мне не нравится
источник
Вы также можете использовать библиотеку Rest Assured. Для демонстрации с образцом сценария обратитесь к http://artoftesting.com/automationTesting/restAPIAutomationGetRequest.html
источник
Автоматизация тестирования API с частотой до одного раза в минуту - это услуга, доступная через theRightAPI . Вы создаете свои тестовые сценарии и выполняете их. Как только эти тесты сработают так, как вы от них ожидаете, вы можете запланировать их. Тесты могут быть объединены в цепочку для сценариев, требующих аутентификации. Например, у вас может быть тест, который отправляет запрос OAuth в Twitter и создает общий токен, который затем может использоваться любым другим тестом. К тестам также могут быть прикреплены критерии проверки, чтобы гарантировать коды состояния http, или даже подробный анализ ответов с использованием javascript или проверки схемы. После того, как тесты запланированы, вы можете получать уведомления, которые будут уведомлять вас, как только конкретный тест не проходит проверку или выходит за пределы установленных диапазонов для времени ответа или размера ответа.
источник
Я использовал классы HTTP TestNG и Apache для создания своей собственной тестовой среды REST API. Я разработал эту концепцию после двух лет работы в Selenium.
Все то же самое, за исключением того, что вы должны использовать классы HTTP Apache вместо классов Selenium.
Попробуйте, это действительно мило и хорошо, у вас есть все возможности для настройки своей тестовой среды в соответствии с вашими возможностями.
источник