02 - Jmeter4.x正則表達式以及跨線程使用變量

話很少說 直接開擼

上圖能夠看出,有兩個請求,其中第二個請求返回了登陸超時,結合第一個登陸接口來看,這個是須要header請求內容的也就是 token;固然設置一個token又怎麼可能可貴倒咱們,無非就是在HTTP Header Manager中添加一個鍵值對而已;可是同窗們,有沒有想過若是項目中全部的接口都須要,你就粘貼複製一百次嗎?若是另外一個線程組須要,你就從新配置一次登陸接口嗎?固然咱們確定不會這麼作,那麼下面我們就根據這兩個問號來解答這個問題!!!正則表達式


單個線程組內變量的調用

右鍵點擊"user_login"  →  add  →  Post Processors(後置處理器)  →  Regular Expression Extractior(正則表達式提取器)
dom

  • Name of created variable: 用戶引用變量名
  • Regular Expression:正則表達式
  • Temolate:模板 $1$ 表示取n次
  • Match No(0 for Random) 0表示隨機,1表示取第一個值
  • Default Value:缺省值,沒有時用此值

以取值token爲例

而後咱們在下一個請求中的HTTP Header Manager 中添加一個鍵值對,引用時格式爲${token},此時咱們再看就能夠了;
線程

跨線程組調用變量

下圖能夠看出,我們又增長了一個activity_share的接口,可是由於咱們沒有攜帶token的緣由,又登陸超時了,而此時咱們就不能使用 Regular Expression 的方法來解決此問題了,此時咱們又須要兩個新的組件;
3d

  • 右鍵點擊"user_login"  →  add  →  Post Processors  →  BeanShell PostProcessor;
  • 右鍵點擊"activity_share"  →  add  →  Pre Processors(前置處理器)  →  BeanShell PreProcessor; 以下圖


而後我們在 Post Processors 的script處輸入code

// 獲取token值
String token =  vars.get("token");
// 把token值上傳
props.put("token", token);

既然有了上傳確定有人接收,最後在 Pre Processors 的 script 處輸入blog

// 接收 token
String token = props.get("token");

必定注意引用格式**${__P(token,)}**token

相關文章
相關標籤/搜索