Jmeter 正則表達式提取器

官方文檔

Jmeter Regular Expression Extractor允許用戶使用perl類型的正則表達式從服務器響應中提取值。作為后置處理器,它將在其作用域內的每個Sample request之后執行,具體步驟為:應用正則表達式并提取請求值,生成模板字符串,最后將結果存儲到給定的變量名中。

特性參數

  • Apply to(應用范圍)

    • Main sample only (默認):匹配范圍是當前父采樣器;

    • Sub-samples only :僅匹配子采樣器;

    • Main sample and sub-samples :匹配范圍包括當前父采樣器并覆蓋子采樣器;

    • JMeter Variable Name to use:Extraction is to be applied to the contents of the named variable

  • Field to check(要檢查的相應字段)
    針對Response不用內容進行匹配,可選項有七個,分的比較細,也比較好容易理解。

  • Name of create variable
    設置變量名,調用時使用${name}即可。

  • Regular Expression
    設置用于解析響應數據的正則表達式,用圓括號表示要提取的字符串,此處圓括號的作用類似于LoadRunner中的左右邊界。

  • Template
    模板用于從正則表達式的匹配結果中創建字符串。正則表達式可以設置多個模板,此處可以指定引用哪個模板。語法為:$0$表示整個表達式匹配的內容,$1$表示組1,$2$表示組2,以此類推。如果只有一個正則表達式時,寫$1$即可。

  • Match No
    指定要使用的匹配項。正則表達式可以匹配多次,使用0值表示JMeter應該隨機選擇匹配的值;正整數N表示選擇第N個匹配項;負數表示選擇全部匹配到的內容,一般與ForEach控制器結合使用。

  • Default Value

    如果正則表達式不匹配,則將引用變量設置為默認值。可以勾選Use empty default value 將默認值設置為空。

DEMO

免費接口:GET, http://qzone-music.qq.com/fcg-bin/cgi_playlist_xml.fcg?uin=${uin}&json=1&g_tk=1916754934 ,其中${uin}為QQ號碼。如下圖:

下面參照官網的說明文檔,分別介紹幾種不同情況。

1. Match No 設置為非負數,并且發生匹配

正則表達式內容為:xqusic_mid:"(.*?)",xqusic_id:(\d+) ,Template:1,Match No:1,Default Value設置為:test,這表示取第一個分組中匹配到的第一個內容,如果沒有發生匹配,則將模板的值復制為test。如下圖:


運行結果為:

下面來分析一下運行結果中給出的變量,如下:

# 模板的值,即分組1的第一個數據;
rethink=002iYN6V0lHUjb
# 正則表達式中的分組數,可以看到正則表達式中一共給出了兩個要匹配的項;
rethink_g=2
# 分組的匹配內容
rethink_g0=xqusic_mid:"002iYN6V0lHUjb",xqusic_id:3018351066
rethink_g1=002iYN6V0lHUjb
rethink_g2=3018351066

2. Match No 設置為負數,并且發生匹配

將Match No設置為-1,表示取第一個分組全部匹配到的內容。其他參數保持不變,運行腳本后的結果為:
# 模板設置的默認值
rethink=test
# rethink_n(1,2,3...) 當前匹配到的模板的值
rethink_1=002iYN6V0lHUjb
rethink_1_g=2
# 分組的匹配內容
rethink_1_g0=xqusic_mid:"002iYN6V0lHUjb",xqusic_id:3018351066
rethink_1_g1=002iYN6V0lHUjb
rethink_1_g2=3018351066

rethink_2=0011OcRB3SIlGB
rethink_2_g=2
rethink_2_g0=xqusic_mid:"0011OcRB3SIlGB",xqusic_id:2177446616
rethink_2_g1=0011OcRB3SIlGB
rethink_2_g2=2177446616

# 內容匹配數,可能為0
rethink_matchNr=2

3. 沒有發生匹配

將正則表達式修改為:\sxqusic_mid:"(.*?)",xqusic_id:(\d+),Default Value設置為:test ,然后運行腳本,結果為:

可以看到模板的取值被設置為Default Value,并且刪除了以下變量:rethink_g,rethink_gn(n=0,1,2...)

4. 多模板發生匹配

設置Template為$1$|||$2$,Match No為1,運行腳本后結果如下:


通過以上栗子可以發現,JMeter中的正則表達式提取器還算是比較靈活的,可以自由設置特性參數以滿足具體需要。不過要想熟練掌握,還是需要多加練習。

【To be continud...】

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 229,836評論 6 540
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,275評論 3 428
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 177,904評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,633評論 1 317
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,368評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,736評論 1 328
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,740評論 3 446
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,919評論 0 289
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,481評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,235評論 3 358
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,427評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,968評論 5 363
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,656評論 3 348
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,055評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,348評論 1 294
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,160評論 3 398
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,380評論 2 379

推薦閱讀更多精彩內容