Gatling - Jak zapisać treść odpowiedzi

Jak zapisać treść odpowiedzi w Gatling?

Podczas testowania wydajności API może być konieczne zbudowanie łańcucha żądań. Na przykład wykonujemy wywołanie API, zapisujemy odpowiedź i przekazujemy odpowiedź do innego wywołania API.

Nazywa się to łączeniem żądanie-odpowiedź i jest typową czynnością podczas testowania interfejsów API.


Gatling zapewnia sposób na zapisanie całej odpowiedzi lub części odpowiedzi.

Poniższe przykłady ilustrują sposób zapisywania danych odpowiedzi w Gatling.




Zachowaj całą odpowiedź

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

Zapisujemy pełną odpowiedź powyższego wywołania API w zmiennej o nazwie Auth_Response.

Następnie możemy użyć tej zmiennej, która zawiera odpowiedź, aby przekazać ją jako treść lub ładunek do innego żądania, takiego jak:

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


Wyodrębnij element z treści odpowiedzi i zapisz

W Gatling możemy również przeanalizować odpowiedź, na przykład za pomocą JsonPath, wyodrębnić wartość i zapisać ją jako zmienną. Podobnie jak powyżej, możemy następnie przekazać tę zmienną w następnym wywołaniu 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'))

W powyższym żądaniu analizujemy odpowiedź JSON i wyodrębniamy wartość parametru tokenId i zapisz jego wartość jako tokenId.


Następnie możemy odwołać się do zmiennej za pomocą ${tokenId}