Как отлаживать службы RESTful?

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

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

Ответ 1

Используйте существующий инструмент "REST client", который позволяет легко проверять запросы и ответы, например RESTClient.

Ответ 2

В моей фирме мы используем различные инструменты и подходы к тестированию сервисов RESTful:

  • Мы пишем cURL скрипты - по существу одну команду, сохраненную в файле. Один файл на ресурс для каждого метода. Для PUT и POST обычно мы будем иметь файлы, содержащие представления для отправки вместе с cURL script. Например, для ресурса почтового ящика у нас может быть файл с именем mailbox_post.cmd, который может содержать строку curl -v -X POST -u username -H 'Content-Type:application/xml' -d @mailbox_post.xml http://service/mailbox. Нам нравится этот подход, потому что мы завершаем сборку тестов, которые могут выполняться в пакете или, по крайней мере, проходить между тестировщиками и использоваться для тестирования регрессии.

  • Мы используем cURL и RESTClient для ad-hoc-тестов

  • У нас есть служба, обслуживающая XHTML по умолчанию, поэтому она просматривается и добавляет ресурсы форм, поэтому служба фактически частично или полностью тестируется с помощью браузера. Это частично было вызвано некоторыми частями RESTful Web Services, в которых авторы показывают, что линия между веб-службами и веб-приложениями может оказаться не такой, как как правило, принято считать твердым и строгим.

  • Мы пишем функциональные тесты как Groovy, используя Restlet и выполните тесты с помощью тестового бегуна Groovy script. Это полезно, потому что тесты могут быть устойчивыми, строить друг на друге и совместно использовать переменные. Мы обнаруживаем, что Restlet API является простым и интуитивно понятным, и поэтому легко писать быстрые HTTP-запросы и тестировать ответы, и это еще проще при использовании в Groovy. (Я надеюсь поделиться этой техникой, в том числе тестовым бегуном script, на нашем блоге в ближайшее время.)

Ответ 3

Postman, расширение Google Chrome, может быть полезно.

Ответ 4

Я нашел RequestBin полезным для отладки запросов REST. Сообщение на уникальный URL-адрес и данные запроса обновляются/отображаются. Может помочь в том, что другие инструменты недоступны.

http://requestb.in/

Ответ 5

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

HTTP-клиент

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

Ответ 7

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

Ответ 8

В итоге я остановился на POSTMAN

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

Ответ 9

RESTTest для Firefox (надстройка). Fiddler для IE.

Ответ 10

Я использую пользовательский интерфейс Soap для тестирования моего API REST.

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

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

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

My SoapUI REST Project

Ответ 11

Помимо использования одного из инструментов в ответе Peter Hilton, я должен сказать, что сценарий тестов с помощью LWP или какого-то подобного инструмента может быть вашим единственным вариантом. Вы можете обойти использование LWP, просто открыв сокет, отправив необработанный HTTP-запрос и исследуя, что вы получаете взамен. Но, насколько я знаю, существует нехватка инструментов тестирования для такого рода доменов - большинство из них смотрят на это проблемное пространство в основном из объектива разработчика веб-сайта, и для них достаточно браузера тестовой платформы.

Ответ 12

Я использую restclient, доступный из Код Google. Это простое приложение Java Swing, которое поддерживает все HTTP-методы и позволяет вам полностью контролировать заголовки HTTP, conneg и т.д.

Ответ 13

Я стараюсь писать модульные тесты для ресурсов RESTful, используя Jersey, который поставляется с приятным клиентом REST. Самое приятное, если вы реализуете свои ресурсы RESTful с помощью JAX-RS, тогда клиент Джерси может повторно использовать поставщиков сущностей, таких как JAXB/XML/JSON/Atom, и так далее - чтобы вы могли повторно использовать те же объекты на стороне сервера, что и вы использовать на стороне клиента unit test.

Например здесь unit test case из Apache Camel, который ищет XML-ресурсы из ресурса RESTful (используя конечные точки объекта JAXB). Метод ресурса (uri) определяется в этом базовом классе, который просто использует API-интерфейс клиента Jersey.

например.

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);

Ответ 14

Если вы хотите получить бесплатный инструмент с той же целью с дополнительной функцией отправки данных в нескольких частях, он находится здесь http://code.google.com/a/eclipselabs.org/p/restclient-tool/

Ответ 15

Firefox имеет RESTClient плагин для отправки другого запроса с помощью методов, параметров, заголовков и т.д.

Ответ 16

Вы, ребята, должны проверить poster расширение для firefox, это просто и полезно для использования:)

Ответ 17

потому что его полностью отсутствует здесь: https://luckymarmot.com/paw

Стоит когда-нибудь копейки...