2017-12-06 1 views
1

ネストされたjsonを持つリクエストボディに変数を渡そうとしていますが、できません。リクエストボディのネストされたjsonで変数を渡す方法

Given path 'url' 
* request {abc:'ab',pqrs:'{"mno":"data","ijk":"data"}',dcb:'tata'} // Double quotes are required for 'pqrs' because thats the format of the service. 
When method post 
Then status 200 
* def test = response.lmn 
* print lmn 
* def browser = Java.type('file path') 
* def testing = browser.do(parameter) // 'do' function will call a java file which will return a String parameter 
* print testing 


Given path 'url' 
* def nested = {uvw:"value",xyz:'#(testing)',ght:} //We tried storing nested variable in json format but that didn't work. 
* request { abc:'ab',pqr:'#(nested)',dcb:'tata' } 
When method post 
Then status 200 

上記のリクエストに「Invalid pqr object」というエラーが表示された後。ソリューションを提案してください。

+0

こんにちは、私は最後の質問の答えを受け入れている、上記の質問 – Rahul

答えて

0

JSONを作成する際に基本的な誤りがあるようです。それだけです。たとえば、上記の後にghtフィールドは何もありません。私はあなたのスクリプトの2番目の部分に焦点を合わせます。あなたはScenarioに以下を貼り付けて、それがうまくいくのを見ることができます。これは良いヒントです。HTTP要求を別のファイルに作成せずにすぐにこのように実験できます。

* json testing = '{"helo":"world","test":"done"}' 
* def nested = { uvw: 'value', xyz: '#(testing)', ght: null } 
* def temp = { abc: 'ab', pqr: '#(nested)', dcb: 'tata' } 
* print temp 

、出力は次のとおりです。

[print] { 
    "abc": "ab", 
    "pqr": { 
    "uvw": "value", 
    "xyz": { 
     "helo": "world", 
     "test": "done" 
    }, 
    "ght": null 
    }, 
    "dcb": "tata" 
} 

期待ようにすべてが動作しています。

編集:必要に応じて文字列を取得してJSONに戻す方法を示す編集。 type-conversionの文書を参照してください。通常は必要ありませんが、あなたのように見えます。

+0

のために提案してください申し訳ありません 'ght'は私がそれを追加するために逃した値があります。 – Rahul

+0

こんにちはピーターはお返事ありがとうございます。私の場合、テストはjsonの文字列なので、テストでは{'helo': 'world'、 'test': '#(done)'}のようになり、あなたの例では文字列ではありません。 配列を渡して印刷するときに、jsonオブジェクトにする必要があります。 – Rahul

+0

@Rahulが編集しました。確認してください。 –

関連する問題