使用場景:
請求API需要授權令牌,但是授權令牌只需要獲取一次,即可調用服務器上其他業務接口。
所以我想要把授權操作放在單獨的一個線程,業務流放在其他線程。
這就需要我把從授權線程獲取的令牌傳入業務流線程。
解決方法———后置處理器Beanshell PostProcessor
1、首先選擇“獲取token”線程組:添加正則表達式,提取出token的值(不會使用正則表達式的同學請查閱博主之前Jmeter相關文章)
2、在“獲取token”線程組:添加后置處理器BeanShell PostProcessor
Parameters:引用正則表達式提取的變量${token}
Script:具體beanshell語法大家可去查看相關資料,這里很簡單,一條語句就搞定。
意思是把獲取的變量${token}設置為全局變量,並以新的名字newtoken來進行引用。
3、在“業務流”線程組引用全局變量newtoken
引用方式是${__P(newtoken,)},注意花括號中是兩個下划線,newtoken后還跟一個逗號,不要寫漏了。
至於我在這個線程組里面加的固定定時器,是因為如果不加定時器,兩個線程是同步執行的,會發生token值還沒有獲取到就進行業務流的接口請求,造成請求返回失敗。
4、執行,查看結果
獲取到的token值為上圖所示
引用成功~