1. 程式人生 > >接口測試工具-Jmeter使用筆記(九:跨線程組傳遞變量)

接口測試工具-Jmeter使用筆記(九:跨線程組傳遞變量)

場景 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使用筆記(九:跨線程組傳遞變量)