Gatling - Cavab Bədənini necə xilas etmək olar

Cavab bədənini Gatling-də necə saxlamaq olar?

API performans testi etdiyimiz zaman bir istək zənciri yaratmalı ola bilərik. Məsələn, bir API-yə zəng edirik, cavabı saxlayırıq və cavabı başqa bir API çağırışına keçiririk.

Buna sorğu-cavab zənciri deyilir və API-lər sınanarkən ümumi bir fəaliyyətdir.


Gatling, bütün cavabı və ya bir hissəsini qurtarmaq üçün bir yol təqdim edir.

Aşağıdakı nümunələr Gatling-də cavab məlumatlarını necə saxlayacağımızı göstərir.




Bütün Cavab Bədənini Qurtarın

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

Yuxarıdakı API çağrısının tam cavabını Auth_Response adlı dəyişəndə ​​saxlayırıq.

Sonra cavabı ehtiva edən dəyişəni bədən kimi yükləmək və ya başqa bir sorğuya yük kimi ötürmək üçün istifadə edə bilərik, məsələn:

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


Cavab gövdəsindən element çıxarın və saxla

Gatling-də bir cavabı təhlil edə bilərik, məsələn JsonPath ilə, bir dəyər çıxarıb dəyişən kimi saxlaya bilərik. Yuxarıdakı kimi, daha sonra növbəti API çağırışında bu dəyişəni keçə bilərik.

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

Yuxarıdakı tələbdə, JSON Cavabını təhlil edirik və tokenId parametri üçün dəyəri çıxarırıq və dəyərini tokenId olaraq qeyd edin.


Daha sonra ${tokenId} istifadə edərək dəyişənə müraciət edə bilərik