Как отлаживать службы RESTful? [закрытый]


Я ищу простой способ отладки RESTful services. Например, большинство веб-приложений можно отлаживать с помощью обычного веб-браузера. К сожалению, тот же браузер не позволит мне тестировать HTTP PUT, DELETE и в определенной степени даже HTTP POST.

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

17 55

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-адрес и данные запроса обновляются / отображаются. Может помочь в крайнем случае, когда другие инструменты не доступны.

http://requestb.in/

инструмент, который я нашел полезным, если вы используете OS X Leopard:

HTTP Client

Это очень простая программа GUI, которая позволяет создавать http-запросы к ресурсу и просматривать ответ.

вы можете использовать скрипача композитор отладка restful services..

Обновлено JD 12 sep 2013: Rest Builder теперь называется композитор.

cURL работает просто отлично.

Я в конечном итоге остановился на почтальон

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

RESTTest для Firefox (дополнение). Саша для IE.

Я использую мыло пользовательского интерфейса, чтобы проверить мои API-интерфейса REST.

Он более полный, чем любые другие инструменты:

  • fine debug requests and responses
  • автоматизированное тестирование
  • всем графическим интерфейсом
  • свойства и передача свойств для параметризации тестов
  • условное тестирование
  • тестирование производительности

Я не работаю на SmartBear. Я уже был большим поклонником SoapUI, используя его для мыла Веб-сервисы.

My SoapUI REST Project

Помимо использования одного из инструментов в ответе Питера Хилтона, я должен сказать, что сценарий тестов с помощью 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

стоит не копейки...