Selenium против XmlUnit + HttpClient для тестирования веб-REST API - PullRequest
4 голосов
/ 08 декабря 2010

Мне нужно протестировать функции веб-API в формате REST. В настоящее время используется Selenium RC для функционального тестирования сайта. И используя XmlUnit и HttpClient для функционального тестирования нашего REST API. Но, похоже, жизнь была бы проще, если бы мы действительно могли разделить наш код функционального тестирования на весь селен. В частности, с WebDriver Selenium 2.0 выглядит проще, чем когда-либо, чтобы тестировать ответы XML с использованием XPath.

Мои мысли в лагере Pro XmlUnit+HttpClient:

  • позволяет легко тестировать с прямыми вызовами базы данных или Spring bean-компонентами
  • упрощает тестирование ответов JSON, когда / если мы это поддержим в будущем
  • селен предназначен для веб-интерфейса, а не для тестирования REST API

Мои мысли в лагере Pro Selenium WebDriver:

  • разделяет функциональное тестирование на все стандартные тесты на селен
  • легко тестирует результаты с помощью других тестов UI для селена, далее тестируя UI
  • позволяет другим, кроме основных разработчиков, просматривать функциональные тесты API
  • Может быть, проще использовать такие службы, как BrowserMob, который использует тесты селена, для загрузки API тестирования?
  • надеюсь, более быстрые функциональные тесты с селеновой структурой

Мы используем Spring 3 и Hibernate. Что лучше для функционального тестирования нашего API?

Ответы [ 3 ]

6 голосов
/ 04 июня 2011

Другим вариантом может быть использование REST Assured , Java DSL для тестирования служб REST. Это позволяет вам писать модульные тесты с небольшим количеством стандартного кода для XML и JSON. Кроме того, он предоставляет более продвинутые функции, такие как аутентификация, проверка XSD / DTD, коды ответов, файлы cookie и т. Д. Более подробная информация доступна на странице использования .

Отказ от ответственности: REST Assured - проект с открытым исходным кодом, инициированный моим коллегой.

2 голосов
/ 08 декабря 2010

Если вы хотите провести реальное функциональное тестирование API остальных, то я могу порекомендовать Fitnesse с этим приспособлением: https://github.com/smartrics/RestFixture

Селен - просто плохой выбор для такого рода вещей.

Что касается тестирования производительности, вы можете запустить остальные API-тесты в Jmeter за считанные минуты, не нужно платить третьим лицам.

0 голосов
/ 08 декабря 2010

Тестирование API не похоже на функциональное тестирование, но больше похоже на юнит-тестирование. Так что я бы пошел на XmlUnit + HttpClient

...