jmeter之關聯正規表示式和XPath Extractor
JMeter的關聯方法有兩種:後置處理器-正規表示式提取器與XPath Extractor。
一、正規表示式提取器
1、新增正規表示式
在需要獲得資料的上一個請求上右擊新增一個後置處理器-->正規表示式提取器
解釋:
(1)引用名稱:下一個請求要引用的引數名稱,如填寫activityID,則可用${activityID}引用它。
(2)正規表示式:
()括起來的部分就是要提取的。
.匹配任何字串。
+:一次或多次。
?:不要太貪婪,在找到第一個匹配項後停止。
注:(.+?)[.\n]+可以匹配換行符在內的所有字元。
(3)模板:用
引用起來,如果在正規表示式中有多個正規表示式(多個括號括起來的東東),則可以是$2引用起來,如果在正規表示式中有多個正規表示式(多個括號括起來的東東),則可以是$2
3$等等,表示解析到的第幾個值給title。如:$1$表示解析到的第1個值
(4)匹配數字:0代表隨機取值,1代表全部取值,通常情況下填0,如果在LR中,取出的值是一個陣列,還得處理一下,LR11版本用一個隨機的函式就可以不用寫大段的程式碼來處理陣列。
(5)預設值:如果引數沒有取得到值,那預設給一個值讓它取。
2、關於正規表示式的舉例說明
(1)提取單個字串:
假設測試人員期望匹配Web頁面的如下部分:name = "file" value = "readme.txt">並提取readme.txt。
一個符合要求的正規表示式:name = "file" value = "(.+?)">。
():封裝了待返回的匹配字串。
.:匹配任何字串。
+:一次或多次。
?:不要太貪婪,在找到第一個匹配項後停止。
(2)提取多個字串:
假設測試人員期望匹配Web頁面的如下部分:name = "file" value = "readme.txt">並提取file和readme.txt。
一個符合要求的正規表示式:name = "(.+?)" value = "(.+?)"。
引用名稱:MYREF
模板:$1$$2$
如下變數的值將會被設定:
MYREF_g0:name = "file"value = "readme.txt"
MYREF_g1:file
MYREF_g2:readme.txt
引用${MYREF_g1}
3、使用該關聯的請求
如下圖:
4、完整的例子:
二、XPath Extractor
XPath Extractor是另一個可被用來提取頁面給定內容的Post Processor,XPath Extractor的使用方式與Regular Expression Extractor類似,只不過需要在該Extractor中指定的不是正規表示式,而是給定的XPath路徑。
用xpath從前一個請求中取。這種形式比較適合於返回為xml片段的情況。在需要獲得資料的請求上右擊新增一個後置處理器-->xPath Extractor。引用名稱即下一個請求要引用的引數名稱,如填寫body,則可用${body}引用它。
Xpath一般用於返回xml用得多。
XPath Extractor的設定介面:
Use Tidy:當需要處理的頁面是HTML格式時,必須選中該選項,當需要處理的頁面是XML或XHTML格式(例如,RSS返回)時,取消選中該選項。
Reference Name:存放提取出的值的引數。
XPath Query:用於提取值的XPath表示式。
Default Value:引數的預設值。
三、小結這兩種方式
正規表示式提取器和XPath Extractor都可以用來提取給定頁面中的特定文字,並將其儲存在引數中,這兩種方式各有優缺點。
正規表示式提取器可以用於對頁面任何文字的提取,提取的內容是根據正規表示式在頁面內容中進行文字匹配;
而XPath Extractor則可以提取返回頁面任意元素的任意屬性。
相比較而言,
如果需要提取的文字是頁面上某元素的屬性值,建議使用XPath Extractor;
而如果需要提取的文字在頁面上的位置不固定,或者不是元素的屬性,建議使用正規表示式提取器。
相關文章
- jmeter學習指南之Boundary Extractor和正規表示式提取器JMeter
- Jmeter 常用後置處理器之正規表示式提取器、JSON 提取器、JSON JMESPath ExtractorJMeterJSON
- 【jmeter】實現介面關聯的兩種方式:正規表示式提取器和json提取器JMeterJSON
- 《JavaScript 闖關記》之正規表示式JavaScript
- jmeter中提取token值(正規表示式,)JMeter
- python之正規表示式Python
- VIM和正規表示式
- jmeter中關聯時,常見表示式JMeter
- 正規表示式之難點
- java正規表示式之 groupJava
- python 關於正規表示式rePython
- 正規表示式關鍵詞解析
- 關於JS的正規表示式JS
- 匹配銀聯卡號正規表示式
- Python基礎之正規表示式Python
- Python 之 RE(正規表示式)常用Python
- Go 正規表示式庫之 commonregexGo
- 轉|正規表示式之匹配中文
- 前端基礎之正規表示式前端
- 正規表示式
- 正規表示式.
- python基礎 之 正規表示式和re模組Python
- php之正規表示式函式總結PHP函式
- 正規表示式 字元和字元類字元
- 時間戳和正規表示式時間戳
- 【正規表示式】常用的正規表示式(數字,漢字,字串,金額等的正規表示式)字串
- Python筆記五之正規表示式Python筆記
- 開心檔之MySQL 正規表示式MySql
- Linux之grep中的正規表示式Linux
- 正規表示式之(exp),(?:exp),(?=exp) 理解
- 常用正規表示式
- JavaScript 正規表示式JavaScript
- MySQL正規表示式MySql
- 正規表示式(java)Java
- SQL正規表示式SQL
- python正規表示式Python
- 正規表示式合集
- 正規表示式(一)