一、前言
前面講了如何使用正規表示式提取值,一般提取的值在同一個執行緒裡,隨意哪個請求都是可以引用的,那如果別的執行緒組也想引用怎麼辦呢?這時就涉及到一個全域性變數的知識點了,話不多說,直接例項走起。
二、例項演示
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系統】,登入成功,如圖:
注:有人可能會好奇,這個請求下為什麼會多了幾個子請求,哈哈,這涉及到重定向的知識了,大家可以自行百度下