2017-08-25 1 views
0

Ich habe XML-Antwort, die viele Informationen enthält und einer von ihnen ist so etwas wie MyURL und enthält URL, die am Ende myid enthalten sollte.
Wie kann ich Behauptung in soapUI zu überprüfen, ob URL myid enthält, wenn es so etwas wie folgt aussieht:Soapui Assertion für einen Teil der URL in XML-Antwort

<stream audio="eng">   <myURL>http://xxxxxx.test.com/test26/test32456749&myid=12345678910</myURL> 
</stream> 

ID wird nach dem Refresh-Wechsel nur Länge immer noch das gleiche sein soll.

+0

Haben Sie die URL bearbeitet? es soll ein '?' sein, das fehlt. – Rao

+0

vb381, haben Sie die Chance, die Lösung zu versuchen. – Rao

Antwort

1

Hier gehen Sie:

Verwenden Script Assertion für den gleichen Testschritt, wo Sie diese Antwort bekommen. Folgen Sie den Inline-Kommentaren.

//Check if the response is not empty 
assert context.response, 'Response is null or empty' 

//Chang the name of the element to find if required 
def elementToFind = 'myURL' 

def xml = new XmlSlurper().parseText(context.response) 
def node = xml.'**'.find{it.name() == elementToFind } 

//Check if there is such element 
assert elementToFind == node?.name(), "$elementToFind does not exists in the response" 

//Get the parameters from the url 
def params = node.text().toURL().query?.split('&') 

//Convert it map/properties 
def props = params.collectEntries { param -> param.split('=').collect { URLDecoder.decode(it) }} 

log.info props.myid 
+0

es funktioniert nicht für mich:/Ich weiß nicht, Skripting, ich habe versucht, es für meine XML zu aktualisieren, nur einige Elemente geändert Namen, aber diese Behauptung nur fehlgeschlagen, ich kann nichts in Log sehen ... – vb381

+0

und dort sind mehr Parameter mit & in dieser URL aufgeteilt ... – vb381

+0

sry, es funktioniert jetzt super :) Wie kann ich auch die Länge dieser ID überprüfen? Wenn es z.B. 16 Zeichen – vb381