我正在尝试将变量传递给我的请求主体,该主体具有嵌套的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
点击上述请求后获取错误为“无效的pqr对象”。请提出解决方案。
答案 0 :(得分:0)
看起来你在形成JSON方面犯了一些基本错误,就是这样。例如,ght
字段在上面没有任何内容。我将只关注脚本的第二部分。您可以将下面的内容粘贴到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上的文档,通常你不需要它,但看起来就像你一样。