Jmeter測試場景:
一個web系統,需要先發送登錄請求,獲取到登錄Token之后,后續每次請求都需要在請求頭中附帶Token才有權限操作。現在需要在Jmeter中自動獲取每次登錄請求返回的Token,並附加到后續的請求中。
登錄請求的返回報文如下:
{
"access_token":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOlsiYWN0aW5pYSJdLCJ1c2VyX25hbWUiOiJhZG1pbiIsInNjb3BlIjpbIlNVUEVSX0FETUlOIiwiQURNSU4iXSwicm9sZXMiOlt7ImF1dGhvcml0eSI6IlJPTEVfU1VQRVJfQURNSU4ifV0sImV4cCI6MTUzOTA1MDA1NiwiYXV0aG9yaXRpZXMiOlsiUk9MRV9TVVBFUl9BRE1JTiJdLCJqdGkiOiJjMjdlMTcwNi03MjJmLTQ2N2UtODM1OC0zNDIyZDlmZjdhOTMiLCJjbGllbnRfaWQiOiJ3ZWJfYXBwIiwidXNlcm5hbWUiOiJhZG1pbiJ9.sqRyMKVraxeTTQWHg1rXlJ0-vfGMFNhgzAZn226VBDs",
"token_type":"bearer",
"refresh_token":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOlsiYWN0aW5pYSJdLCJ1c2VyX25hbWUiOiJhZG1pbiIsInNjb3BlIjpbIlNVUEVSX0FETUlOIiwiQURNSU4iXSwicm9sZXMiOlt7ImF1dGhvcml0eSI6IlJPTEVfU1VQRVJfQURNSU4ifV0sImF0aSI6ImMyN2UxNzA2LTcyMmYtNDY3ZS04MzU4LTM0MjJkOWZmN2E5MyIsImV4cCI6MTU0MTY0MTc1NiwiYXV0aG9yaXRpZXMiOlsiUk9MRV9TVVBFUl9BRE1JTiJdLCJqdGkiOiI1Yzk4MjI3NC0zNjY0LTQ3ODgtYWU0YS00YWFjMGU0YzU1NjUiLCJjbGllbnRfaWQiOiJ3ZWJfYXBwIiwidXNlcm5hbWUiOiJhZG1pbiJ9.6ReMAY352Cg9irDqYNzWAfi8Ckr13v6PSYe42gsOPV8",
"expires_in":299,
"username":"admin"
}
后續的請求頭中需要添加參數Authorization,值為登錄請求中的access_token的值。
提取方法如下:
右鍵點擊登錄請求->Add->Post Processors->JSON Extractor
JSON Extractor中的配置如下:
其中,Names of created variables是提取出的變量名,JSON Path expressions為響應報文的提取表達式,可以通過${access_token}方式引用。可以將這個變量放在HTTP請求頭管理器中,這樣就不需要每個請求都配置一次頭參數了:
如果想查看參數提取的是否正確,可以添加一個Debug Sampler打印參數值進行查看。右鍵->Add->Sampler->Debug Sampler:
可以看到access_token的值已經獲取到了: