Uwugcina njani umzimba wokuphendula eGatling?
Xa sisenza uvavanyo lokusebenza kwe-API, sinokufuna ukwakha uluhlu lwezicelo. Umzekelo, senza umnxeba kwi-API, sigcine impendulo kwaye sidlulise impendulo kwenye ifowuni ye-API.
Oku kubizwa ngokuba yimpendulo yokuphendula isicelo kwaye yinto eqhelekileyo xa kuvavanywa ii-API.
Ukugcwala kunika indlela yokugcina yonke impendulo okanye inxenye yempendulo.
Le mizekelo ingezantsi ibonisa indlela yokugcina idatha yokuphendula kwiGatling.
val authRequest = exec(http('Auth Request')
.post(base_url + '/login/auth')
.body(ElFileBody('payload.json'))
.check(bodyString.saveAs('Auth_Response'))
.check(status is 200))
Sigcina impendulo epheleleyo yale fowuni ingentla ye-API kwinto ebizwa ngokuba Auth_Response
.
Emva koko sinokusebenzisa okwahlukileyo, okunempendulo, ukudlula njengomzimba okanye ukuhlawula umthwalo kwesinye isicelo, njenge:
val validateRequest = exec(http('Validate Request')
.post(base_url + '/login/validate')
.body(StringBody('${Auth_Response}'))
.check(bodyString.saveAs('Validate_Response'))
.check(status is 200) )
KwiGatling, sinokubonisa impendulo, umzekelo ngeJsonPath, ukukhupha ixabiso kwaye uligcine njengotshintsho. Njengasentla, emva koko singadlulisa okwahlukileyo kwifowuni elandelayo ye-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'))
Kwisicelo esingentla, sibonisa impendulo yeJSON kwaye sikhuphe ixabiso leparameter tokenId
kwaye ugcine ixabiso lazo njenge tokenId
.
Emva koko sinokubhekisa kuguquko usebenzisa ${tokenId}