2016-09-28 4 views
-1

Ich muss eine Antwort von der Anforderung 1 analysieren und einen bestimmten numerischen Wert aus der Antwort an Anforderung 2 übergeben. Die folgende Tabelle zeigt die JSON-Antwort.SoapUI REST-Antwortsitzungs-Token


HTTP/1.1 200 OK Datum: Mi, 28. September 2016 19.42.35 GMT Content-Length: 61

{ "response":"New session Created with session Id 123456789101213" }


was soll ich verwenden - groovy oder Eigentumsübertragung? wenn groovy - bitte lassen Sie mich wissen, welchen Code ich verwenden sollte wenn Eigentum Transfer - was ist die erforderliche Parsing-Nachricht, die ich verwenden sollte?

Antwort

0

Ja, es kann auf beide Arten gemacht werden und das ist ein zusätzlicher Schritt.

Es ist auch möglich, ohne diesen zusätzlichen Schritt mit Script Assertion für den aktuellen Testschritt zu verzichten. Dort kann die Antwort auch geltend gemacht werden.

Pseudo Anweisungen:

  • die Antwort abrufen und
  • geltend machen, wenn der gewünschte Wert in der Antwort vorhanden ist
  • den Wert auf Testfallebene gesetzt
  • den abgerufenen Wert verwenden, analysieren mit Eigenschaftserweiterung in einem anderen Testschritt des Testfalls.

Script Assertion

/** 
* This is a script assertion 
* which reads the response and asserts if there is response 
* reads response property and sets at test case level property SESSION_ID 
*/ 
def jsonString = context.response 
def json = new groovy.json.JsonSlurper().parseText(jsonString) 

//Check if the response is not empty or null 
assert json, "Response received is empty or null" 
def sessionId = json.response as String 

//Check if there is reponse property exists in response json 
assert sessionId, "response property is empty or null" 
log.info "Session id : ${sessionId}" 

//To set the value at test case level 
context.testCase.setPropertyValue('SESSION_ID', sessionId) 

Wie die abgerufenen Sitzungs-ID in anderen Prüfschritte des der Testfall benutzen?

  • Wenn der Schritt-Typ ist, Groovy Script auf eine der folgenden zwei Arten verwenden: context.expand('${#TestCase#SESSION_ID}') oder
    context.testCase.getPropertyValue('SESSION_ID')

  • Wenn der Schritttyp anderer Typen, sagen SOAP, REST, JDBC, HTTP usw., dann verwenden:
    ${#TestCase#SESSION_ID}

Hinweis: natürlich ist es auch möglich Wert bei Suite o einstellen • Auch auf Projektebene, die es ermöglicht, den abgerufenen Wert über die Suite- bzw. Projektebene hinweg wiederzuverwenden