Jmeter性能測試(12)--關聯之正則表達式提取器

如果有這樣的情況:一個完整的操作流程,需要先完成某個操作,獲得某個值或數據信息,然後才能進行下一步的操作(也就是常說的關聯/將上一個請求的響應結果作爲下一個請求的參數);

在jmeter中,可以利用正則表達式提取器來幫助我們完成這一動作。

首先:在默認的測試計劃中添加一個線程組,然後添加取樣器,這裏我以JDBC請求做例子:

 

然後:右鍵添加後置處理器→正則表達式提取器,正則表達式提取器界面如下:

說明:

後置處理器:在請求結束或者返回響應結果時發揮作用

正則表達式提取器:允許用戶從服務器的響應中通過使用perl的正則表達式提取值。該元素會作用在指定範圍取樣器,用正則表達式提取所需值,生成模板字符串,並將結果存儲到給定的變量名中。

APPly to:作用範圍(返回內容的斷言範圍)

         Main sample and sub-samples:作用於父節點的取樣器及對應子節點的取樣器

         Main sample only:僅作用於父節點的取樣器

         Sub-samples only:僅作用於子節點的取樣器

         JMeter Variable:作用於jmeter變量(輸入框內可輸入jmeter的變量名稱)

要檢查的響應字段:需要檢查的響應報文的範圍

         主體:響應報文的主體

         Body(unescaped):主體,響應的主體內容且替換了所有的html轉義符,注意html轉義符處理時不考慮上下文,因此可能有不正確的轉換,不太建議使用 

         Body as a Document:從不同類型的文件中提取文本,注意這個選項比較影響性能 

         Response Headers:響應信息頭

         Request Headers:請求信息頭

         URL:統一資源定位符,即Internet上用來描述信息資源的字符串

         Response Code:響應狀態碼,比如200、404等

         Response Message:響應信息

PS:jmeter的中文翻譯有時候不太準確,建議儘量選擇語言格式爲英文(爲了方便說明,這裏選擇中文語言,當然,自己明白最好,不用糾結這個)

引用名稱(Reference Name):Jmeter變量的名稱,存儲提取的結果;即下個請求需要引用的值、字段、變量名(例子中我提取的是SOCIAL_NO)

引用方法:引用方法:${引用名稱}

正則表達式(Regular Expression):使用正則表達式解析響應結果,“()”表示提取字符串中的部分值,請不要使用“||”,除非你本身需要匹配這個字符。

下面是常用的正則表達式操作符:

模板(Template):從匹配的結果中創建一個字符串,這是通過正則表達式匹配出來的一組值,意爲使用提取到的第幾個值(可能有多個值匹配,因此使用模板);從1開始匹配,以此類推.

                參數可以在取值模板組合使用,例如:“11-22”作爲模板得到的值是使用“-”連接的第一個待匹配內容與第二個待匹配內容組合而成的字符串。

匹配數字(Match No):正則表達式匹配數據的結果可以看做一個數組,表示如何取值:0代表隨機取值,正數n則表示取第n個值(比如1代表取第一個值),負數則表示提取所有符合條件的值。

缺省值:匹配失敗時候的默認值;通常用於後續的邏輯判斷,一般通常爲特定含義的英文大寫組合,比如:ERROR

 

最後,根據上面的說明,完成配置,然後可以先添加一個監視器(查看結果樹),檢查是否取到了對應的值;

提取到的參數,調用時用${SOCIAL_NO_1},${SOCIAL_NO_2}...,如果想要得到匹配出的參數的個數,用${SOCIAL_NO_matchNr},如果想隨機選取一個,只需要將

匹配數字設爲0,使用${SOCIAL_NO}調用即可。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章