Jmeter如何將上一個請求的結果做爲下一個請求的參數——使用正則表達式提取器

正則表達式提取器是一個後置處理器,做用是在請求完成後,從響應數據中截取一部分字符串保存到變量中,以便下一個請求使用,下面咱們就來作一個簡單的例子吧正則表達式

1.首先在線程組下添加兩個HTTP請求,url

2.添加好兩個HTTP請求後,在每一個HTTP請求下添加一個查看結果數線程

3.在第一個HTTP請求下添加正則表達式提取器3d

4.在第一個HTTP請求添加好IP地址,路徑,端口號,協議,方法,若是有參數,還須要添加參數,我這裏沒有參數因此就不添加了blog

5.點擊綠色箭頭啓動,查看第一個HTTP請求完成後的響應數據字符串

6.第一個HTTP請求完成後的響應數據的url是隨機變化的,每次HTTP請求完成後的響應數據的url是不一樣的,如今須要獲取第一個HTTP請求完成後的響應數據的url做爲第二個HTTP請求的IP地址,這個時候就須要用到正則表達式提取器,正則表達式提取器是一個後置處理器,做用是在請求完成後,從響應數據中截取一部分字符串保存到變量中,以便下一個請求使用。模板

7.如今編輯正則表達式提取器變量

8.說明:引用

(1)引用名稱:做爲下一個請求要引用的參數名稱,如填寫myurl,則可用${myurl}引用它來做爲第二個HTTP請求的IP地址請求

 (2)正則表達式用""包起來,如第一個HTTP請求完成後的響應數據{"status":"ok","message":"建立房間成功","data":{"url":"https://www.pp2pp.xyz/room/58ff022f5cd4c32ae9a7f457"}} 咱們只須要URL,因此正則表達式爲  "url":"https://(.+?)"

() 表示括起來的部分就是要提取的。

. 表示匹配任何字符串。
+ 表示一次或屢次。
?表示不要太貪婪,在找到第一個匹配項後中止。
(3)模板:用$$引用起來,若是在正則表達式中有多個正則表達式,則能夠是$2$,$3$等等,表示解析到的第幾個值給myurl。如:$1$表示解析到的第1個值,咱們這裏只有一個正則表達式,因此是$1$
(4)匹配數字:0表明隨機取值,1表明所有取值,一般狀況下填1
(5)缺省值:若是參數沒有取獲得值,那默認給一個值讓它取,一般狀況下爲空
 
9.如今能夠開始編輯第二個HTTP請求,
10.咱們再來點擊綠色箭頭啓動,查看這兩個HTTP請求完成後的響應數據,能夠看到第二個HTTP請求地址就是第一個HTTP請求的響應數據的URL
 
11.若是是要獲取第一個HTTP的響應數據的URL地址的後面數字做爲第二個HTTP的參數,作法也是同樣的,只是正則表達式不同,
如第一個HTTP請求完成後的響應數據{"status":"ok","message":"建立房間成功","data":{"url":"https://www.pp2pp.xyz/room/58ff022f5cd4c32ae9a7f457"}} 若是咱們只須要URL後面的數字58ff022f5cd4c32ae9a7f457,那麼正則表達式爲  "url":"https://www.pp2pp.xyz/room/(.+?)"
相關文章
相關標籤/搜索