Gatlingas - kaip išsaugoti atsako kūną

Kaip išsaugoti atsako kūną Gatlinge?

Atlikdami API našumo testavimą, mums gali tekti sukurti užklausų grandinę. Pavyzdžiui, mes skambiname API, išsaugome atsakymą ir perduodame atsakymą kitam API skambučiui.

Tai vadinama užklausos-atsakymo grandine ir yra įprasta veikla tikrinant API.


„Gatling“ suteikia galimybę išsaugoti visą atsakymą ar jo dalį.

Toliau pateikiami pavyzdžiai parodo, kaip išsaugoti atsakymo duomenis „Gatling“.




Išsaugokite viso atsakymo įstaigą

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

Išsaugome visą aukščiau nurodyto API iškvietimo atsakymą kintamajame, vadinamame Auth_Response



Tada mes galime naudoti tą kintamąjį, kuriame yra atsakymas, perduoti kaip kūną ar naudingąją apkrovą kitai užklausai, pavyzdžiui:

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


Ištraukite elementą iš atsako kūno ir išsaugokite

„Gatling“ taip pat galime analizuoti atsakymą, pavyzdžiui, naudodami „JsonPath“, išskleisti vertę ir išsaugoti ją kaip kintamąjį. Kaip ir aukščiau, tada mes galime perduoti tą kintamąjį kitame API kvietime.

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

Pirmiau pateiktoje užklausoje analizuojame JSON atsakymą ir išskleidžiame parametro tokenId vertę ir išsaugokite jo vertę kaip tokenId.


Tada galime nurodyti kintamąjį naudodami ${tokenId}