Тестирование веб-сервисов REST [закрыто]

моя организация работает над созданием веб-сервисов RESTful на JBoss appserver. Команда QA используется для тестирования веб-сервисов SOAP до сих пор с помощью SoapUI. SoapUI имеет новую версию, которая имеет возможности REST. Мы рассматриваем возможность его использования.

  1. есть ли какие-либо общедоступные услуги RESTful, доступные в сети Бесплатно, которые кто-то может проверить ?
  2. какие инструменты доступны (и используются) для тестирования веб-сервисов RESTful ?

24 ответов


soapUI будет делать работу, а также, проверить этот блог начать.


пожалуйста, попробуйте Firefox аддон плакат, который прост в использовании и получает вас и работает быстро


вы можете использовать веб-службы, используя довольно тривиальные биты Python. В зависимости от вашей безопасности вы можете просто использовать Python urllib или urllib2 чтобы сделать вы отдыхаете запросы и изучить ваши ответы.

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

class TestSomeREST( unittest.TestCase ):
    def setUp(self):
        REALM = "blah@blah.com"
        self.client= RESTClient( "localhost", 18000, "tester", "tester", REALM )
    def test_1_get(self):
        response = self.client.get('/this/that/other/2/')
        self.failUnlessEqual(200, response.status_code)
        j1= JSONDecoder().decode(response.content)
        self.assertEquals(2, j1[0]['pk'] )
        entity= j1[0]['fields']
        self.assertEquals('Some Other Group', entity['name'])
        self.assertEquals('E1G2', entity['customer_id'])

класс RESTClient использует urllib2 для прохождения дайджест-аутентификации для каждого запроса. Это довольно сложно, но Я могу поделиться сутью, если это интересно.


проверить Саша


CURL получает вас на полпути. Другая половина проверяет заголовки, коды ответов и содержимое сущности, чтобы убедиться, что это хорошо. Для этого вы можете использовать различные инструменты (в Shell scripting land, транспортировка заголовка и содержимого в файлы и их разделение могут просто сделать трюк). Было бы не так сложно дополнительно усовершенствовать набор инструментов, возможно, укладка свернуться с платформой модульного тестирования по вашему выбору.

Я построил панель тестирования веб-сервиса rest с AJAX. Он на самом деле это было совсем не сложно. У вас есть некоторые проблемы с безопасностью (т. е. убедитесь, что у вас есть набор тестов на том же сервере или, возможно, подписан Javascript.)


чтобы проверить службу REST, вы можете попробовать уверены что упрощает тестирование служб REST и проверку ответа на Java (используя JUnit или TestNG).


Проверьте почтальон -https://chrome.google.com/webstore/detail/fdmmgilgnpjigdojojpjoooidkmcomcm/. Это инструмент, над которым я работал в течение последних нескольких месяцев, и в последнее время из отзывов, которые я получаю, он становится довольно полезным для больших проектов REST, помогая с базовым тестированием конечных точек REST.

код для этого также доступен на Github. https://github.com/a85/POSTMan-Chrome-Extension


самый простой способ проверить веб-службу REST-использовать curl в терминале.

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

GET

curl http://localhost:3000/courses.json

в должности

curl -H "Content-Type:application/json"  -d '{"courseCode":"55555","courseName":"SEEEE","courseYr":999}' http://localhost:3000/courses.json

положите в Raills: eg1(со всеми полями) :

curl -H "X-Http-Method-Override: put" -H "Content-Type:application/json"  -d '{"courseCode":"123456","courseName":"AAAAAAAA","courseYr":12345}' http://localhost:3000/courses/5.json

eg2 (только с полем для редактирования):

curl -H "X-Http-Method-Override: put" -H "Content-Type:application/json"  -d '{"courseYr":999999999}' http://localhost:3000/courses/3.json

удалить в rails с id при условии

 curl -H "X-Http-Method-Override: delete" -H "Content-Type:application/json"  -d '{"id":4}' http://localhost:3000/courses/5.json

Я еще не тестировал его, но это приложение Java, похоже, приятно тестировать службы REST. Существует также учебник по Javalobby об этом.

Java-Приложение:http://code.google.com/p/rest-client/

Туто:http://java.dzone.com/announcements/wiztoolsorg-restclient-21-rele


вы можете использовать простой клиент REST является расширением для Google Chrome тоже https://chrome.google.com/webstore/detail/fhjcajmcbmldlhcimfajhfbgofnpcjmb


SOA Cleaner-это тестовый инструмент, который проверяет soap и rest (также WCF, но, похоже, вам не нужна эта функция). Это очень intuative, и полезной. Записано .Сеть. Также доступна бесплатная версия. можно загрузить сhttp://xyrow.com. Удачи!


Я тестирую RESTful services с помощью домашней .NET framework (нет проблем с портированием на Java). Основные принципы:

  • build client (для совершения звонков)
  • классы типов сборки (XML и JSON)
  • десериализовать ответ
  • утверждать вещи

Если вы хотите больше информации, я рад поговорить.


Я использую расширение консоли REST для Google Chrome, и это, безусловно, лучшее, что я пробовал. Он также поддерживает различные механизмы безопасности, такие как OAuth

(update 2: fix link)


для java также существует RESTFuse, что позволяет разрабатывать модульные тесты, которые могут выглядеть следующим образом:

@Rule
public Destination destination = new Destination("http://localhost:8080/rest/");


@HttpTest( method = Method.GET, path = "/status" ,authentications =
   @Authentication(type = AuthenticationType.BASIC, user = "joe", password = "doe")
)
public void testAuthRhqadmin() {
    com.eclipsesource.restfuse.Assert.assertOk(response);
}

этот тест работает против http://localhost:8080/rest/status и аутентифицируется как пользователь joe с паролем doe. Затем тело метода проверяет, что вызов GET возвращает код состояния 200.


попробуйте httplib Python. Это очень просто, вы указываете метод, url и используете urllib.urlencode для параметров / тела POST.

Это можно совместить с builtin unittest модулем если вы любите, то для сообщать ошибок.


Я использую JMeter для этого, особенно для таких вещей, как нагрузочное тестирование. Он похож на SoapUI (который я также использовал), но больше ориентирован на тестирование веб-страниц, что делает его довольно приличным при тестировании служб RESTful.


Я написал программу специально для тестирования веб-сервисов REST. Его довольно простое приложение, написанное в .NET 2.0 (я тестировал его только на Windows Vista, но должен работать и на XP). Приложение использует HttpWebRequest для выполнения запросов и отображает результирующий ответ, а также заголовки запроса и ответа. Я провел небольшое тестирование, но подумал, что это может помочь вам протестировать ваши веб-службы.

тест на отдых


в настоящее время я исследую приложение WSCLIENT CLI для этой цели (http://wso2.org/library/3362). Он довольно перспективен и может быть использован для взлома быстрого теста из оболочки bash. Конечно, как многие упоминали здесь, многие из инструментов, которые поставляются с системой * nix, сделают эту работу с лакомым кусочком кодирования / сценариев


Если вам нравится использовать Ruby, есть REST-Client gem для нее

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


Я пробовал множество клиентов REST и, безусловно, лучшее, что я использовал, это приложение Chrome:DHC.

DHC (aka Dev HTTP Client) разработан и разработан разработчиком для разработчиков, чтобы сделать прямое обнаружение ресурсов HTTP, манипуляции и тестирование более легко. Помимо основной функции, отправки / получения пользовательских HTTP-запросов / ответов, она позволяет постоянно сохранять запрос в локальном репозитории для последующего повторного использования и, кроме того, объявление запроса может включите переменные, зависящие от контекста. С помощью контекстов вы можете легко переключаться между различными средами без изменения объявления запроса. (например, от тестовой среды до производства)


тестирование REST full web services-простая задача. Бесплатные объявления доступны в браузерах как клиент REST, откуда вы должны отправить веб-службу с ожидаемым / требуемым типом метода: GET / POST / PUT / DELETE Если параметры совпадают, то вывод будет сгенерирован в теле браузера.enter image description here


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

Fiddler и Poster plug In Firefox можно использовать для тестирования любых веб-сервисов REST. SoapUI также поставляется с поддержкой RESTful webservices.


для расширенного тестирования отдыха вы можете попробовать HttpMaster.
он поддерживает динамические параметры, дружественные средства просмотра для XML / JSON и различные типы проверки данных ответа, которые могут быть объединены в логические выражения.
Для базовых http-запросов будет достаточно некоторого плагина браузера.


OnionTest все еще бета, но довольно полезно