Как отлаживать службы RESTful? [закрытый]
Я ищу простой способ отладки RESTful services. Например, большинство веб-приложений можно отлаживать с помощью обычного веб-браузера. К сожалению, тот же браузер не позволит мне тестировать HTTP PUT, DELETE и в определенной степени даже HTTP POST.
Я не собираюсь автоматизировать тесты. Я хотел бы запустить новые услуги через быструю проверку здравомыслия, в идеале без необходимости писать своего собственного клиента.
17 ответов:
используйте существующий инструмент "REST client", который позволяет легко проверять запросы и ответы, например RESTClient.
в моей фирме мы используем множество различных инструментов и подходов к тестированию RESTful services:
пишем cURL скрипты-по существу одна команда, сохраненная в файле. Один файл на ресурсе для каждого метода. Для PUT и POST у нас обычно будут файлы, содержащие представления для отправки вместе со скриптом cURL. Например, для ресурса почтового ящика у нас может быть файл с именем
mailbox_post.cmd
, который может содержать строкуcurl -v -X POST -u username -H 'Content-Type:application/xml' -d @mailbox_post.xml http://service/mailbox
. Нам нравится такой подход потому что мы в конечном итоге создаем коллекцию тестов, которые можно запускать в пакетном режиме или, по крайней мере, передавать между тестерами и использовать для регрессионного тестирования.мы используем cURL и RESTClient специальные тесты
у нас есть служба обслуживания XHTML по умолчанию, поэтому она просматривается и добавляет ресурсы форм, поэтому служба фактически частично или полностью тестируется с помощью браузера. Это было частично вдохновлено некоторыми частями RESTful Web Services, где авторы показывают, что линия между веб-службами и веб-приложениями может не быть такой твердой и строгой, как обычно предполагается.
мы пишем функциональные тесты как в Groovy закрытие, используя Restlet framework, и запустить тесты с помощью сценария Test runner Groovy. Это полезно, потому что тесты могут быть с отслеживанием состояния, строить друг на друге и совместно использовать переменные, когда это необходимо. Мы находим API Restlet должен быть простым и интуитивно понятным, и поэтому легко писать быстрые HTTP-запросы и тестировать ответы, и это еще проще при использовании в Groovy. (Я надеюсь поделиться этой техникой, включая сценарий тестового запуска, на наш блог: в ближайшее время.)
почтальон, расширение Google Chrome, может быть полезно.
Я нашел RequestBin полезным для отладки запросов REST. Сообщение на уникальный URL-адрес и данные запроса обновляются / отображаются. Может помочь в крайнем случае, когда другие инструменты не доступны.
инструмент, который я нашел полезным, если вы используете OS X Leopard:
Это очень простая программа GUI, которая позволяет создавать http-запросы к ресурсу и просматривать ответ.
вы можете использовать скрипача композитор отладка restful services..
Обновлено JD 12 sep 2013: Rest Builder теперь называется композитор.
Я в конечном итоге остановился на почтальон
Он поддерживает все остальные функции, о которых я мог думать, и пользовательский интерфейс абсолютно превосходен. Единственным недостатком является то, что он требует хром.
Я использую мыло пользовательского интерфейса, чтобы проверить мои API-интерфейса REST.
Он более полный, чем любые другие инструменты:
- fine debug requests and responses
- автоматизированное тестирование
- всем графическим интерфейсом
- свойства и передача свойств для параметризации тестов
- условное тестирование
- тестирование производительности
Я не работаю на SmartBear. Я уже был большим поклонником SoapUI, используя его для мыла Веб-сервисы.
Помимо использования одного из инструментов в ответе Питера Хилтона, я должен сказать, что сценарий тестов с помощью LWP или какого-либо аналогичного инструмента может быть вашим единственным вариантом. Ты может обходите использование LWP, просто открывая сокет, отправляя необработанный HTTP-запрос и изучая, что вы получаете взамен. Но насколько я знаю, существует нехватка инструментов тестирования для такого рода домена-большинство смотрят на эту проблему-пространство в первую очередь с точки зрения разработчика веб-сайта, и для них браузер-это достаточно тестовая платформа.
Я использую restclient, доступный от Код Google. Это простое приложение Java Swing, которое поддерживает все методы HTTP и позволяет вам полностью контролировать заголовки HTTP, conneg и т. д.
Если вы хотите бесплатный инструмент для той же цели с дополнительной функцией представления данных составных форм здесь http://code.google.com/a/eclipselabs.org/p/restclient-tool/
Firefox имеет RESTClient плагин для отправки различных запросов с помощью методов, параметров, заголовков и т. д.
вы, ребята, должны проверить плакат расширение для firefox, это просто и достаточно полезно использовать :)
Я склонен писать модульные тесты для RESTful ресурсов с помощью Джерси который поставляется с хорошим клиентом отдыха. Хорошая вещь заключается в том, что если вы реализуете свои ресурсы RESTful с помощью JAX-RS, то клиент Jersey может повторно использовать поставщиков сущностей, таких как JAXB/XML/JSON/Atom и т. д., Поэтому вы можете повторно использовать те же объекты на стороне сервера, что и на клиентском модульном тесте.
вот единичный тестовый случай С Apache Camel проект который ищет полезные данные XML из ресурса RESTful (используя конечные точки объекта JAXB). Метод ресурса (uri) определяется в этот базовый класс который просто использует API клиента Джерси.например
clientConfig = new DefaultClientConfig(); client = Client.create(clientConfig); resource = client.resource("http://localhost:8080"); // lets get the XML as a String String text = resource("foo").accept("application/xml").get(String.class);
потому что его полностью хватает здесь: https://luckymarmot.com/paw
стоит не копейки...