近期有檸檬班的學生找到華華,問了一個問題,就是利用Jmeter做接口測試的時候,如何提取頭部的JSESSIONID然后傳遞到下一個請求,繼續完成當前用戶的請求。
其實,關於這個問題有三種種解決方法:
1)從響應數據里面提取JSESSIONID,點擊鏈接可以查看https://www.cnblogs.com/liulinghua90/p/5320290.html
2)如果響應數據里面沒有返回JSESSIONID,那么就可以保持cookie,點擊鏈接可以查看:https://www.cnblogs.com/liulinghua90/p/9257552.html
3)如果響應頭里面有這個JSESSIONID,我們可以通過添加cookie來解決這個問題,今天這篇博客,我們重點講解第三種方法。
一、測試前准備
1.測試地址:
登錄:http://XXXX:8080/futureloan/mvc/api/member/login
充值:http://XXXX:8080/futureloan/mvc/api/member/recharge
2.參數提取:
登錄的參數:mobilephone、pwd
充值的參數:mobilephone、amount
3.測試前場景:
1:登錄之后會隨着登錄的響應結果產生一個JESSIONID再響應頭。
2:充值請求必須帶着JESSSIONID一起發給服務器,才會請求成功。
4:選用工具:Jmeter
二、開始測試
1:打開Jmeter--->添加線程組--->添加HTTP請求--->填入登錄請求數據,如下所示:
2:打開Jmeter--->添加線程組--->再添加HTTP請求--->填入充值請求數據,如下所示:
3.運行線程組,檢查登錄的結果以及充值的結果,發現登錄成功了如下所示:
充值未成功,提示如下:
4.再去檢查Jmeter里面登錄的響應數據的請求頭,如下所示:
三、利用正則表達式提取響應頭部的JSESSIONID
1:給登錄的HTTP請求添加一個正則表達式,從頭部提取JSESSIONID,如下所示:
原本登錄返回的JSESSIONID的內容如下:
Set-Cookie: JSESSIONID=639A471FBECF4E2A20947A0150A2B887; Path=/futureloan
Set-Cookie: rememberMe=deleteMe; Path=/futureloan; Max-Age=0; Expires=Mon, 02-Jul-2018 02:14:05 GMT
正則表達式我們寫如下格式:
Set-Cookie: JSESSIONID=(.*); Path=/futureloan
這樣就可以匹配到JSESSIONID啦!
2:給充值接口添加cookie管理器:
3:保存好,再次發起請求,得到如下結果:
4:同時看到充值請求里面帶上了原本沒有的cookie
四:總結
如果我有多個請求,怎么辦呢?可以依次給每個請求添加cookie!或者是添加一個總的cookie供所有請求使用。