2016-11-18 2 views
-1

Ich versuche, die Antwort zu bestätigen, um zu überprüfen, ob der Antwortwert mit einem bestimmten Text beginnt. Ich habe versucht, die Funktion startsWith zu verwenden, aber es scheint, dass es in SOPAUI-Skript-Assertion nicht funktioniert.Bestätigungsantwort beginnt mit

Dies ist, was ich versucht habe:

import groovy.json.JsonSlurper 

//grab the response 
def ResponseMessage = messageExchange.response.responseContent.records 
//define a JsonSlurper 
def jsonSlurper = new JsonSlurper().parseText(ResponseMessage) 
//log.info jsonSlurper 

assert jsonSlurper.startsWith("Text") 

Hier ist die Json Antwort

{ 
    "Name": "Natalie", 
    "message": "What are you doing" 
} 

ich, wenn die Name beginnt mit "Nat"

+2

Mögliche Duplikat [SOAPUI Groovy \ [behaupten reponse beginnt mit \]] (http://stackoverflow.com/questions/40663725/soapui-groovy-assert-reponse- starts-with) – doelleri

+1

Stellen Sie keine neue Frage, bearbeiten Sie Ihre alte Frage. – doelleri

+0

@protea 'JsonSlurper() .parseText()' gibt eine Datenstruktur von 'lists' und' maps' zurück, so dass Sie 'startsWith' nicht direkt verwenden können. Was versuchst du zu erreichen? Sie möchten überprüfen, ob ein Schlüssel in Ihrem json mit 'Text' beginnt? Bitte geben Sie "json" Antwort, auf diese Weise wird vielleicht die Frage klar ":)". – albciff

Antwort

0

Von Dokumentation JsonSlurper().parseText(String text) kehrt überprüfen möchten :

Datenstruktur von lists und maps

so können Sie startsWith nicht direkt verwenden. Um zu erreichen, was Sie wollen, müssen Sie zum gewünschten Objekt im Pfad gehen und dort startsWith verwenden. So etwas muss arbeitet für Ihren Fall:

import groovy.json.JsonSlurper  

def jsonStr = '{ "Name": "Natalie", "message": "What are you doing" }' 

def jsonSlurper = new JsonSlurper().parseText(jsonStr) 
assert jsonSlurper.Name.startsWith("Nat") 
+0

funktioniert. Danke vielmals. – protea

+0

@protea du bist willkommen :) – albciff