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 

위의 요청에 "잘못된 pqr 개체"라는 오류가 발생했습니다. 해결책을 제안하십시오.

+0

안녕하세요, 지난 질문에 대한 답변을 수락했습니다. 위 질문에 대해 제안하십시오. – Rahul

답변

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에있는 문서를 참조하십시오. 일반적으로 필요하지 않지만 보이지는 않습니다.

+0

죄송합니다. 'ght'에 추가 할 가치가 있습니다. – Rahul

+0

피터 안녕하세요, 답장을 보내 주셔서 감사합니다. 내 경우 테스트는 json 문자열이므로 테스트에서는 { 'helo': 'world', 'test': '# (done)'}이 아니라 예제에 표시된 문자열이 사용됩니다. 배열을 출력하는 동안 json 객체가 필요합니다. – Rahul

+0

@ 라훌 편집 됨, 확인하시기 바랍니다. –

관련 문제