1. 程式人生 > 其它 >Jmeter跨執行緒組獲取token(徹底解決因格式token報錯)

Jmeter跨執行緒組獲取token(徹底解決因格式token報錯)

將token設定為全域性變數網上方式方法千千萬,但是你就是獲取token會失敗,不是提示格式錯誤,就是提示無法獲取token,沒安裝Jmeter的可以檢視前兩期教程,有詳細介紹

在工作當中如果僅僅是一個執行緒組肯定是無法滿足使用需求的,那麼我們會使用多個執行緒組進行工作,這裡不得不提及一個名詞叫:全域性變數 。

一、觀察並獲取token

1、當我們登陸成功以後進行觀察,會發現token的存在,提取token有兩種格式(分別是:正則表示式提取,JSON格式提取)根據個人愛好吧,我一般喜歡正則因為平時接觸的比較多

2、建立正則提取器,選擇生成token的請求--新增-- 後置處理器--正則表示式;

(匹配數字一般為1,博主這裡比較懶直接省略不寫了,不要問正則為什麼這樣寫,因為這是最最最基本的你們可以直接抄寫就好了,實在很好奇可以進入廖雪峰的部落格下進行系統學習一下,但是這個模板是固定的就是$1$,其中的1便是獲取第一個token值)

3、建立完正則後我們需要校驗一下,是否提取成功了,可以建立除錯取樣器 Debug sampler

(選中執行緒組--新增--取樣器--Debug sampler )

4、檢視結果如下圖則算是成功了

二、將token設定為全域性變數

1、上一步我們講解的是採用正則的方式提取的token,這一步是將提取的token進行設定為全域性變數;首先建立BeanShell後置處理器,路徑如下圖:

3、開啟函式助手,找到_setProperty函式,填寫要設定的全域性變數名稱和要將哪個變數設定為全域性變數,直接複製函式助手生成的函式字串到BeanShell PostProccessor中,也可以BeanShell後置處理器中填寫引數:${__setProperty(newtoken,${g_token})}; 其中g_token為token提取器中引用的名稱,一定要保持一致;

三、呼叫全域性變數token

1、在計劃下面進行呼叫全域性變數,${__property(newtoken)} 或 ${__P(newtoken)} (一定要注意不要馬馬虎虎的將名稱或則格式寫錯,最容易出錯的地方就是這裡了,越是簡單的地方約容易被大意忽略) 第二行的格式根據需求可以在抓包中有體現,抓包工具大家可以看前面兩張的fiddler 或者開發者抓包即可;

總結一下:講到這裡已經就接近尾聲了,後面建立的執行緒組中皆可呼叫全域性的token,如果有畫蛇添足的非要在每一個執行緒組中加一個http請求頭管理器也是可以的,但是一定要將http請求頭管理器的引數寫正確,別給蛇畫個半隻足就難看了;(目前很多文章都有誤導性作用)

本文來自部落格園,作者:ganfd,轉載請註明原文連結:https://www.cnblogs.com/ganfd/p/15774202.html