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