Jmeter-全域性變數跨執行緒組使用

一加一發表於2020-11-14

一、前言  

  前面講了如何使用正規表示式提取值,一般提取的值在同一個執行緒裡,隨意哪個請求都是可以引用的,那如果別的執行緒組也想引用怎麼辦呢?這時就涉及到一個全域性變數的知識點了,話不多說,直接例項走起。

二、例項演示

1、在【登入】執行緒組的[統一登入]請求下,右鍵>新增>後置處理器>正規表示式,把統一登入成功後的響應結果裡的token用正規表示式提取出來,引用名稱是“token”。

表示式規則寫法為:"token":"(.*?)"

 

 2、在【登入】執行緒組,右鍵>新增>取樣器>BeanShell 取樣器,將提取的token設定為全域性變數newtoken。

Script的寫法為:${__setProperty(newtoken,${token},)}

 

3、在【xx系統】執行緒組,右鍵>新增>前置處理器>BeanShell PreProcessor,將全域性變數newtoken拿過來賦值給token

Script的寫法為:

String a1=props.get("newtoken");
vars.put("token",a1)

4、在【xx系統】執行緒組,右鍵>新增>配置元件>HTTP資訊頭管理器,將前置處理器拿到的token儲存在HTTP資訊頭管理器。

寫法為:${__property(newtoken)}

 

5、好的,以上終於完事了,可以在【xx系統】執行緒組安心地引用token了,如下:

 

6、最後執行除錯如下:(因涉及到資訊保安問題,所以就大概截了下圖)

1)用Debug Sampler可以看到提取出來的token

2)【xx系統】執行緒組可正常引用【登入】執行緒組的token,如圖

3)統一登入成功跳轉到【xx系統】,登入成功,如圖:

 

 

注:有人可能會好奇,這個請求下為什麼會多了幾個子請求,哈哈,這涉及到重定向的知識了,大家可以自行百度下

 

相關文章