Jmeter正則提取請求響應數據


前言

在測試時,我們經常需處理請求返回的響應數據,比如很多時候 cookietokenAuthorization授權碼 會返回在 Response headers(響應頭)中,這時我們便需要從中進行提取,以供其他接口使用。

今天我們主要學習下,如何在Jmeter中通過正則提取響應數據中 Response headers 的數據。

總的設置界面如下:

所有設置界面

發送請求,獲取響應數據

首先,設置一個HTTP請求,如下:

HTTP請求

接着,設置一個察看結果樹,然后執行,得到響應數據,下圖中的cookie即我們需要提取的數據:

響應數據

正則提取響應數據

接下來,我們便設置一個正則提取器(用於提取出cookie),另外再設置一個調試后置處理程序(用於查看提取結果)

正則提取器

說明:
1.引用名稱:即變量名,后續請求中可以通過 ${引用名稱} 來調用
2.正則表達式:按實際情況填寫
3.模板:$$表示需要哪個正則表達式獲取的值,1代表第一個,-1代表全部,0代表隨機
4.匹配數字:1代表第一個,-1代表全部,0代表隨機
5.缺省值:如果正則未匹配到,就會使用缺省值

正則說明:
. 表示除“\r\n”之外的任意字符
* 表示匹配前面的子表達式任意次
+ 表示匹配前面的子表達式1次或多次
表示匹配前面的子表達式0次或1次
.*:貪婪匹配原則,即匹配到不能匹配為止
.*?:非貪婪匹配,即在匹配成功的情況下盡可能少的匹配

實例:存在字符串 7adbcfgfbesw ,要匹配7和b之間的字符
匹配1:使用 .* ,7開始之后,遇到第一個b不結束,繼續找下一個b,直到不能匹配,即匹配到 adbcfgf
匹配2:使用 .*? ,7開始之后,遇到第一個b就結束了,即匹配到 ad

調試后置處理程序

查看提取結果

提取結果

以上就是本次的提取結果,在這里,如果需在后續請求使用,可通過 ${response_data} 來關聯調用。

可能遇到的問題

假如,我們需提取 Set-Cookie 里的所有內容。此時,如果依然使用 .*? ,就會發現提取是不成功的,如下:

響應頭數據

正則提取器

提取失敗

要解決這個問題也很簡單,我們修改正則表達式,使用 .* 貪婪匹配原則既可以。

正則提取器

提取成功

好了,以上就是通過Jmeter正則提取的內容,提取其他數據,如 tokenAuthorization 等的方法與上面類似,大家可以進行實踐。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM