Предположив, что у Вас есть ответ, как:
<Envelope xmlns="http://schemas.xmlsoap.org/soap/envelope/">
<Body>
<ns1:SampleTests xmlns:ns1="hola">
<ns1:SampleTest1>
<ns1:Test>1</ns1:Test>
</ns1:SampleTest1>
<ns1:SampleTest2>
<ns1:Test>2</ns1:Test>
</ns1:SampleTest2>
</ns1:SampleTests>
</Body>
</Envelope>
Вы можете выполнить следовать XPath: exists(//*:Test[.=1])
, чтобы проверить, что существует по крайней мере один <ns1:Test>
элемент с 1
в качестве значения.
Внутри XPath Match это выглядит следующим образом:
Если вместо этого вы предпочитаете использовать утверждение Script вы можете использовать XmlSlurper
разобрать ваш Xml, а затем получить все <ns1:Test>
значения утверждают, что по крайней мере один имеет значение 1
. Посмотрите в код последующей:
// get the response
def responseStr = messageExchange.getResponseContent()
// parse the response as slurper
def response = new XmlSlurper().parseText(responseStr)
// get all <ns1:Test> values
def results = response.'**'.findAll { it.name() == 'Test' }
// now in results list we've NodeChild class instances we will convert it to
// string in order to perform the assert
results = results.collect { it.toString() }
// check that at least one element has '1' value
assert results.contains('1'),'RESPONSE NOT CONTAINS ANY <ns1:Test>1</ns1:Test>'
«Я написал это в утверждении сценария, но его не удается.» <- Нам нужно посмотреть, что вы сделали, и как это провалится! – SiKing
Для получения требуемого значения должен быть еще один уникальный идентификатор, или вы можете проверить наличие значения, если оно всегда фиксировано. для ex: 'exists (// ns1: SampleTests/ns1: SampleTest1/ns1: Test [. = '1'])' и ожидать, что это будет 'true' – Rao