Gatling - kako spasiti odgovor

Kako spasiti tijelo odgovora u Gatlingu?

Kada provodimo testiranje izvedbe API-ja, možda ćemo trebati izgraditi lanac zahtjeva. Na primjer, upućujemo poziv API-ju, spremamo odgovor i prosljeđujemo odgovor drugom API pozivu.

To se naziva lančano slanje zahtjeva i odgovora i uobičajena je aktivnost prilikom testiranja API-ja.

Gatling pruža način spremanja cijelog odgovora ili dijela odgovora.

Primjeri u nastavku ilustriraju kako spremiti podatke o odgovoru u Gatlingu.

Spremi cijelo tijelo odgovora

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

Potpuni odgovor na gornji API poziv spremamo u varijablu pod nazivom Auth_Response.



Tada tu varijablu, koja sadrži odgovor, možemo koristiti za prenošenje kao tijelo ili korisni teret na drugi zahtjev, poput:

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

Izdvojite element iz tijela odgovora i spremite

U Gatlingu također možemo raščlaniti odgovor, na primjer s JsonPathom, izvući vrijednost i spremiti je kao varijablu. Kao i gore, tu varijablu možemo proslijediti u sljedećem API pozivu.

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

U gornjem zahtjevu raščlanjujemo JSON odgovor i izdvajamo vrijednost za parametar tokenId i spremite njegovu vrijednost kao tokenId.

Tada na varijablu možemo uputiti pomoću ${tokenId}