როგორ გადავარჩინოთ საპასუხო ორგანო გეტლინგში?
როდესაც ვაკეთებთ API– ს შესრულების ტესტირებას, შეიძლება დაგჭირდეთ თხოვნების ჯაჭვის შექმნა. მაგალითად, ჩვენ ვუკავშირდებით API- ს, ვინახავთ პასუხს და ვაგზავნით პასუხს სხვა API ზარზე.
ამას უწოდებენ მოთხოვნა-პასუხის ჯაჭვას და ეს არის ჩვეულებრივი აქტივობა API- ს ტესტირებისას.
გეტლინგი გთავაზობთ მთელი პასუხის ან პასუხის ნაწილის დაზოგვის გზას.
ქვემოთ მოცემული მაგალითები ასახავს, თუ როგორ უნდა შეინახოთ პასუხის მონაცემები გატლინგში.
val authRequest = exec(http('Auth Request')
.post(base_url + '/login/auth')
.body(ElFileBody('payload.json'))
.check(bodyString.saveAs('Auth_Response'))
.check(status is 200))
ჩვენ ვინახავთ ზემოაღნიშნული API ზარის სრულ რეაგირებას ცვლადში, რომელსაც ეწოდება Auth_Response
.
შემდეგ შეგვიძლია გამოვიყენოთ ეს ცვლადი, რომელიც შეიცავს პასუხს, რომ გადავიდეს სხეულად ან ტვირთად დატვირთვა სხვა მოთხოვნაზე, მაგალითად
val validateRequest = exec(http('Validate Request')
.post(base_url + '/login/validate')
.body(StringBody('${Auth_Response}'))
.check(bodyString.saveAs('Validate_Response'))
.check(status is 200) )
გეტლინგში, ჩვენ ასევე შეგვიძლია გავაანალიზოთ პასუხი, მაგალითად JsonPath– ით, გამოვყოთ მნიშვნელობა და შევინახოთ იგი როგორც ცვლადი. როგორც ზემოთ, შემდეგ ჩვენ შეგვიძლია გადავცეთ ეს ცვლადი შემდეგ API ზარში.
val loginRequest: HttpRequestBuilder = http('Login Request')
.post(base_url + '/login')
.header(ContentType, ApplicationJson)
.header(Accept, ApplicationJson)
.body(StringBody(''))
.check(status is 200)
.check(jsonPath('$.tokenId').saveAs('tokenId'))
ზემოთ მოყვანილ თხოვნაში, ჩვენ გავაანალიზებთ JSON Response- ს და გამოვყოფთ მნიშვნელობას პარამეტრისთვის tokenId
და შეინახეთ მისი მნიშვნელობა, როგორც tokenId
.
ამის შემდეგ შეგვიძლია ცვლადს მივუთითოთ ${tokenId}