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




CURL На полпути. Другая половина проверяет заголовки, коды ответов и содержимое объекта, чтобы убедиться, что все в порядке. Для этого вы можете использовать различные инструменты (в области сценариев оболочки, передача заголовка и содержимого в файлы и их различие может помочь). Доработать набор инструментов не так уж и сложно, возможно, объединить его с выбранной вами структурой модульного тестирования.
Я создал панель тестирования остальных веб-сервисов с помощью AJAX. На самом деле это было не так уж и сложно. У вас есть некоторые проблемы с безопасностью, которые нужно решить (например, убедитесь, что у вас есть набор тестов на том же сервере или, возможно, подписанный Javascript).
Да, правила CURL для тестирования REST. curl.haxx.se
Проверить Скрипач
Вы можете использовать веб-сервисы, используя довольно тривиальные части Python. В зависимости от вашей безопасности вы можете просто использовать Python urllib или urllib2 для выполнения запросов REST и изучения ваших ответов.
Кроме того, вы можете использовать Python unittest для управления выполнением Python-тестов ваших REST-сервисов.
class TestSomeREST( unittest.TestCase ):
def setUp(self):
REALM = "[email protected]"
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 для прохождения дайджест-аутентификации для каждого запроса. Это довольно сложно, но я могу поделиться сутью, если будет интересно.
Попробуйте Python httplib. Это очень просто: вы указываете метод, URL-адрес и используете urllib.urlencode для параметров / тела POST.
При желании это можно комбинировать со встроенным модулем unittest для сообщения об ошибках.
Пожалуйста, попробуйте Firefox addon Poster, который прост в использовании и быстро поможет вам в работе.
Собственно, я забираю свой +1. При проверке трафика, который отправляет плакат, он имеет неправильную форму, что вызывает проблемы для моего веб-сервиса. Когда вы добавляете параметры и выполняете POST или PUT, он фактически не отправляет эти параметры и не отправляет тип содержимого, если вы явно не добавите содержимое.
Я использовал для этого JMeter, особенно для таких вещей, как нагрузочное тестирование. Он похож на SoapUI (который я тоже использовал), но больше ориентирован на тестирование веб-страниц, что также делает его неплохим при тестировании сервисов RESTful.
Я написал программу специально для тестирования веб-служб REST. Это довольно простое приложение, написанное на .NET 2.0 (я тестировал его только в Windows Vista, но должно работать и на XP). Приложение использует HttpWebRequest для выполнения запросов и отображает полученный ответ, а также заголовки для запроса и ответа. Я провел небольшое тестирование, но подумал, что это может помочь вам протестировать ваши веб-службы.
Я еще не тестировал его, но это приложение Java кажется хорошим для тестирования служб REST. Об этом также есть учебник по Javalobby.
Приложение Java: http://code.google.com/p/rest-client/
Туто: http://java.dzone.com/announcements/wiztoolsorg-restclient-21-rele
soapUI тоже выполнит эту работу, проверьте это сообщение в блоге, чтобы начать.
Возможно, soapUI работает, но я не могу сказать, потому что он постоянно дает сбой на моей машине Ubuntu, убивая Eclipse и заставляя меня терять любую несохраненную работу. Я пробовал все обычные обходные пути. Автономная версия хуже.
SOA Cleaner - это тестовый инструмент, который проверяет и мыло, и отдых (также WCF, но, похоже, вам не нужна эта функция). Это очень интуитивно понятно и удобно. Написано на .NET. Также доступна бесплатная версия. можно скачать с http://xyrow.com. Удачи!
В настоящее время я исследую приложение CLI wsclient для этой цели (http://wso2.org/library/3362). Это довольно многообещающе, и его можно использовать для быстрого тестирования из оболочки bash. Конечно, как многие упоминали здесь, многие инструменты, которые поставляются с системой * nix, сделают свою работу с лакомым кусочком кодирования / написания сценариев.
вы можете использовать Simple REST Client - это тоже расширение для Google Chrome https://chrome.google.com/webstore/detail/fhjcajmcbmldlhcimfajhfbgofnpcjmb
Чтобы протестировать службу REST, вы можете попробовать Будьте уверены, что упрощает тестирование служб REST и проверку ответа на Java (с использованием JUnit или TestNG).
OnionTest все еще бета, но весьма полезен
Если вам нравится использовать Ruby, для него есть Гем REST-Client
Я считаю, что для тестировщиков ruby - действительно простой язык для изучения, и в нем есть отличные инструменты, такие как Cucumber, для выполнения приемочных тестов в стиле BDD.
Я тестирую службы RESTful с помощью собственной платформы .NET (без проблем с портированием на Java). Основные принципы:
Если вам нужна дополнительная информация, я рад поговорить.
Проверьте Почтальон - https://chrome.google.com/webstore/detail/fdmmgilgnpjigdojojpjoooidkmcomcm/. Это инструмент, над которым я работал в течение последних нескольких месяцев, и в последнее время, судя по отзывам, которые я получаю, он стал весьма полезным для больших проектов REST, одновременно помогая в базовом тестировании конечных точек REST.
Код для этого также доступен на Github. https://github.com/a85/POSTMan-Chrome-Extension
Для 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.
Самый простой способ протестировать веб-службу REST - использовать curl в терминале.
Есть несколько кодов, которые я использовал для тестирования своего веб-сервиса рельсов. Вы можете изменить их, чтобы они соответствовали вашим услугам.
ПОЛУЧИТЬ
curl http://localhost:3000/courses.json
ПОЧТА
curl -H "Content-Type:application/json" -d '{"courseCode":"55555","courseName":"SEEEE","courseYr":999}' http://localhost:3000/courses.json
PUT в рейлах: 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
УДАЛИТЬ в рельсах с предоставленным идентификатором
curl -H "X-Http-Method-Override: delete" -H "Content-Type:application/json" -d '{"id":4}' http://localhost:3000/courses/5.json
Я пробовал множество клиентов REST, и, безусловно, лучшее, что я использовал, - это приложение Chrome: DHC.
DHC (aka Dev HTTP Client) is designed and developed by a developer for developers to make direct HTTP resource discovery, manipulation and testing more easily. Beside the main function, sending/receiving custom HTTP requests/responses, it allows permanently to save a request to a local repository for later reuse and moreover the request declaration can include variables that are context specific. With the use of contexts you can easily switch between various environments without modifying request declaration. (e.g. from a test environment to production)
Тестирование полноценных веб-сервисов REST - простая задача. Бесплатные объявления доступны в браузерах как клиент REST, откуда вам нужно отправить веб-службу с ожидаемым / требуемым типом метода: GET / POST / PUT / DELETE Если параметры совпадают, то вывод будет сгенерирован в теле браузера.
Даже когда я знаю, как тестировать веб-службы REST и использовал плагины, такие как Postman и RestClient, мне было нелегко понять, что вы пытаетесь сказать. Я уверен, что тот, кто задаст вопрос, не поймет его должным образом. Я прошу вас поработать над письмом более четко.
Надеюсь, приставка вам поможет ...!
Я знаю, что это очень старый вопрос, но он может быть полезен другим. Чтобы ответить на ваш первый вопрос, вы можете проверить здесь, чтобы протестировать некоторые веб-службы REST.
Плагин Fiddler и Poster в Firefox можно использовать для тестирования любых веб-сервисов REST. SoapUI также поддерживает веб-службы RESTful.
Для расширенного тестирования REST вы можете попробовать HttpMaster.
Он поддерживает динамические параметры, удобные средства просмотра для XML / JSON и различные типы проверки данных ответа, которые можно объединить в логические выражения.
Для базовых HTTP-запросов будет достаточно плагина для браузера.
Что касается заголовка «Тестирование веб-сервисов REST» ... Надеюсь, вы имеете в виду «Тест» и не делаете неясной ссылки на Tet Offensive (поговорите об усилении защиты сервера!)