Gatling - Hoe om die antwoordliggaam te red

Hoe om die reaksie-instansie in Gatling te red?

As ons API-prestasietoetsing doen, sal ons dalk 'n ketting van versoeke moet opstel. Ons doen byvoorbeeld 'n oproep na 'n API, stoor die antwoord en stuur die antwoord na 'n ander API-oproep.

Dit word versoek-antwoord-skakeling genoem en is 'n algemene aktiwiteit wanneer API's getoets word.


Gatling bied 'n manier om die hele reaksie of 'n gedeelte daarvan te stoor.

Die onderstaande voorbeelde illustreer hoe om antwoorddata in Gatling te stoor.




Red die hele reaksie-liggaam

val authRequest = exec(http('Auth Request')
.post(base_url + '/login/auth')
.body(ElFileBody('payload.json'))
.check(bodyString.saveAs('Auth_Response'))
.check(status is 200))

Ons stoor die volledige reaksie van bogenoemde API-oproep in 'n veranderlike genaamd Auth_Response

Dan kan ons die veranderlike, wat die antwoord bevat, gebruik om as 'n liggaam of loonvrag na 'n ander versoek deur te gee, soos:

val validateRequest = exec(http('Validate Request')
.post(base_url + '/login/validate')
.body(StringBody('${Auth_Response}'))
.check(bodyString.saveAs('Validate_Response'))
.check(status is 200) )


Onttrek element uit die reaksie-liggaam en stoor

In Gatling kan ons ook 'n antwoord ontleed, byvoorbeeld met JsonPath, 'n waarde onttrek en as 'n veranderlike stoor. Soos hierbo, kan ons die veranderlike dan in die volgende API-oproep deurgee.

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'))

In bogenoemde versoek ontleed ons die JSON-respons en haal ons die waarde vir die parameter tokenId en stoor die waarde daarvan as tokenId


Ons kan dan die veranderlike met behulp van ${tokenId} verwys