Добрый день!
У меня есть вопрос к бывалым специалистам. Есть проект на котором нужно тестировать функционал сервисов и желательно еще и создавать авто-тесты по функциональным сценариям. Сервисы работают через MQ-очереди. Из одной читают, в другую пишут ответ.
Читал, что многие делают через юнит-тесты, разворачивают в памяти БД и т.п. и тесты гоняются очень быстро. У нас ситуация немного другая. Тестировать надо на Бд близкой к боевой. Очень много логики заложено в справочники БД.
На своем проекте пришли к использованию SoapUI и изредка rfhutil и т.п. штуки для ручного проброса сообщений в очередь. Также на SoapUI делаю авто-тесты. Получается довольно удобно и наглядно. Но возник вопрос, есть ли еще какие инструменты для тестирования. Какие есть подходы. Какие есть плюсы/минусы и подводные камни.
Из того что уже увидел на SoapUI - принцип домино очень часто срабатывает. И еще на free версии сложно закладывать логику Data Driven, т.е. таблицы с данными.
Пока просто под каждый сервис создаем отдельный TestSuite и в нем под каждую проверку свой TestCase. Все параметры подключения и некоторые переменные глобального характера вынесены на уровень проекта в Custom Properties. Еще проблемы бывают с парсингом XML, т.к. в отличии от работы с WSDL в SoapUI при работе с MQ приходится использовать groovy для парсинга запроса/ответа. Не то чтобы это была большая проблема, но там обращение к элементам идет не по имени, а по индексу (не нашел как по имени искать элементы) и как итог конструкция может быть очень хрупкой к перемене тегов в ответе.
Или пока не тратить время на предварительную оптимизацию и не заморачиваться и делать как есть и решать уже проблемы по мере поступления?
Какие вообще есть инструменты для тестирования веб-сервисов?
Вот тут смотрел презентацию Фреймворк автотестирования веб-сервисов своими силами в которой описывается самоделка. Какие преимущества делать отдельный фрейм-ворк? В принцие ничто не мешает отправлять запросы и из Eclipse, правда тесты будут менее понятны для обычных тестировщиков. В этом плане SoapUI куда как проще. В одном окне отправил XML, которую легко тут же отредактировать, а в другом получаешь ответ. Который можно и визуально сравнить с ожидаемым и накидать Assertions которые проверят его и по XSD-схеме и другие проверки сделают и в базу стрельнут запрос. А если чего нет, то можно подумать над jar-библиотекой, которая бы делала что нужно.
Еще прочитал про какую-то утилиту Cinimex Test Tool, но там нужно звонок обратный заказывать и скорее всего она платная. В отличии от SoapUI, который имеет бесплатную версию (по большей части нам уже хватает возможностей бесплатной версии). Еще есть какие-то решения от HP и IBM и может еще какие-то, но вроде бы там тоже звонки от менеджера и только за деньги.
Кто-то работал с другими инструментами? Какие впечатления, какой результат?
Еще смотрел в сторону бесплатного jmeter, но по удобству и наглядности он SoapUI чутка проигрывал и не стал тратить на него время. Может и зря.
P.S. в данном разделе уже прочел все схожие темы, но кроме SoapUI ничего особо не предлагали и еще все они были 2-3 годичной давности. Может что-то с тех пор поменялось? Отпишитесь кто с чем и как работал.
P.P.S. сервисы у меня асинхронные через MQ-очередь, поэтому даже с SoapUI приходится довольно много шаманить, чтобы оно работало и еще много всяких “странностей” в его работе часто всплывает…