2017-12-08 1 views
1

Ich bin stecken, wo ich ein String-Variable in JSON request übergeben müssen.Erste Ausgabe mit String-Variable in JSON Anfrage vorbei

angegebene URL ist:

'url' 
    def browserCall = Java.type('package.browserCall') 
    * def parameter = browserCall.method(data) //returns a string 
* def val = '{"data7":"6DW7926NC7KMQ","data8":'#(parameter)'}' 
* json param = val 
    Given path 'path' 
    * request 
    """ 
    { 
    "data1":"string", 
    "data2":"string", 
    "data3":"string", 
    "data4":"3", 
    "data5":"string", 
    "data6":param, 
    "data9":"string" 
    } 
    """ 
    When method post 
    Then status 200 

oben ausgeführt wird, Karate bei * def val = '{"data7":"6DW7926NC7KMQ","data8":'#(parameter)'}' überspringt, folgte ich die Typ-Konvertierung doc und versuchte def parameter =browserCall.method(data) Parameter json von json val = 'parameter' und reichte es Anforderung zu konvertieren, aber es funktioniert nicht .

Ich glaube, ich immer noch falsch mache. Bitte helfen

Antwort

0

diese Änderung Versuchen Sie, beachten Sie, dass Auswertung von #(foo) wird innerhalb von Strings nicht passieren !!

* def parameter = browserCall.method(data) 
* def val = { data: '6DW7926NC7KMQ', data8: '#(parameter)' } 

(Edited)

+0

gleiche versucht, aber es ist immer noch am * def val Überspringen = '{ "data7": "6DW7926NC7KMQ", "DATA8": "# (Parameter)"}'. –

+0

Danke für schnelle Köpfe. Ich habe versucht, Ihre Lösung, aber ich bekomme Fehler sagen "Fehlender Platz nach numerischen Literal PAY-0GJ70918F1391232NLIVLD7Q" Dies ist die gleiche dynamische Zeichenfolge, die ich von '# (Parameter)' erhalten. Ich habe den gleichen Fehler vorher aber war ahnungslos. –

+0

Parameter ist kein JSON, es ist ein String-Wert, der aus Java-Code kommt. Dieser String 'Parameter' muss ich unter JSON-Anfrage verwenden. –