Вот есть у меня такой респонс:
Вот есть у меня такой респонс:
ну если тебе нужные динамические тесты, значит ты должен понимать
что у тебя динамическая составляющая и что у тебя статическая составляющая
если тебе не подходит сравнение всего содержимого (чего я тоже не рекомендую), то вариантов не так уже много
отдельные xpath по всему xml или просто часть xml
можно вынести набор xpath в отдельный файл и потом с него читать, ну это уже просто один из способов реализации.
А откуда то данные в респонс сервисом собираются?
Подозреваю что из БД какой либо или вообще из какого-то более абстрактного хранилища. С БД SoapUI работает с момощью JDBC реквестов (респонс тоже в XML). То есть можно написать такой SQL с названиями полей чтобы возвращался очень похожий по структуре и названию нод результат SQL запроса. Потом просто сравнить каждый нод ответа сервиса и SQL.
Также с SQL можно работать из Groovy (groovy.sql.Sql). Тогда у вас результат будет в рекрдсете по которому можно итерироваться и сравнивать с полученным результатом ответа сервиса. Ну и т.д. и т.п.
Можно XML сконвртировать в Map<String> (или более сложную структуру), при этом упустить ненужные поля (ноды). Ноды нужные или ненужные можно хранить в List<String> ну и т.д.
Вобщем все зависит от того ЧТО Вам нужно и КАК проверять.
Да. Без парсинга XML никак в любом случае. GPath очень простой (XmlParser или XmlSlupper) и дает очень много возможностей. Только он как и XPath регистрозависим всегда, так что будьте внимательны. В груви для всех коллекций есть методы find{}, findAll{}, grep{} -- изучите их и обработка XML покажется заурядным скучным и очень простым делом.
Для вашего примера.
def xmlAsString = <ВАШ РЕСПОНС>
def root = new XmlParser().parseText(xmlAsString)
log.info root."**"."rows"
log.info root."**"."eventDate".text()
log.info root."**".find{it.text() == 'Wedding WISH LIST REGISTRY'}."description".text()
та я уже на Java свой парсер на Jacksone написал и вопрос отпал)
Спасибо)