話說LoadRunner有的一些功能,比如:參數(shù)化础倍、檢查點(diǎn)烛占、集合點(diǎn)、關(guān)聯(lián)沟启,Jmeter也都有這些功能忆家,只是功能可能稍弱一些呀癣,今天就關(guān)聯(lián)來講解一下。
JMeter的關(guān)聯(lián)方法有兩種:后置處理器-正則表達(dá)式提取器與XPath Extractor弦赖。
一、正則表達(dá)式提取器
1浦辨、添加正則表達(dá)式
在需要獲得數(shù)據(jù)的上一個請求上右擊添加一個后置處理器-->正則表達(dá)式提取器
解釋:
(1)引用名稱:下一個請求要引用的參數(shù)名稱蹬竖,如填寫activityID,則可用${activityID}引用它流酬。
(2)正則表達(dá)式:
()括起來的部分就是要提取的币厕。
.匹配任何字符串。
+:一次或多次芽腾。
?:不要太貪婪旦装,在找到第一個匹配項(xiàng)后停止。
注:(.+?)[.\n]+可以匹配換行符在內(nèi)的所有字符摊滔。
(3)模板:用$$引用起來阴绢,如果在正則表達(dá)式中有多個正則表達(dá)式(多個括號括起來的東東),則可以是$2$$3$等等艰躺,表示解析到的第幾個值給title呻袭。如:$1$表示解析到的第1個值
(4)匹配數(shù)字:0代表隨機(jī)取值,1代表全部取值腺兴,通常情況下填0左电,如果在LR中,取出的值是一個數(shù)組页响,還得處理一下篓足,LR11版本用一個隨機(jī)的函數(shù)就可以不用寫大段的代碼來處理數(shù)組。
(5)缺省值:如果參數(shù)沒有取得到值闰蚕,那默認(rèn)給一個值讓它取栈拖。
2、關(guān)于正則表達(dá)式的舉例說明
(1)提取單個字符串:
假設(shè)測試人員期望匹配Web頁面的如下部分:name = "file" value = "readme.txt">并提取readme.txt没陡。
一個符合要求的正則表達(dá)式:name = "file" value = "(.+?)">辱魁。
():封裝了待返回的匹配字符串。
.:匹配任何字符串诗鸭。
+:一次或多次染簇。
?:不要太貪婪,在找到第一個匹配項(xiàng)后停止强岸。
(2)提取多個字符串:
假設(shè)測試人員期望匹配Web頁面的如下部分:name = "file" value = "readme.txt">并提取file和readme.txt锻弓。
一個符合要求的正則表達(dá)式:name?= "(.+?)" value = "(.+?)"。
引用名稱:MYREF
模板:$1$$2$
如下變量的值將會被設(shè)定:
MYREF_g0:name = "file"value = "readme.txt"
MYREF_g1:file
MYREF_g2:readme.txt
引用${MYREF_g1}
3蝌箍、使用該關(guān)聯(lián)的請求
如下圖:
4青灼、完整的例子:事例代碼
二暴心、XPath Extractor
XPath Extractor是另一個可被用來提取頁面給定內(nèi)容的Post Processor,XPath
Extractor的使用方式與Regular Expression
Extractor類似杂拨,只不過需要在該Extractor中指定的不是正則表達(dá)式专普,而是給定的XPath路徑。
用xpath從前一個請求中取弹沽。這種形式比較適合于返回為xml片段的情況檀夹。在需要獲得數(shù)據(jù)的請求上右擊添加一個后置處理器-->xPath Extractor。引用名稱即下一個請求要引用的參數(shù)名稱策橘,如填寫body炸渡,則可用${body}引用它。
Xpath一般用于返回xml用得多丽已。
XPath Extractor的設(shè)置界面:
l? Use Tidy?:當(dāng)需要處理的頁面是HTML格式時蚌堵,必須選中該選項(xiàng),當(dāng)需要處理的頁面是XML或XHTML格式(例如沛婴,RSS返回)時吼畏,取消選中該選項(xiàng)。
l? Reference Name:存放提取出的值的參數(shù)嘁灯。
l? XPath Query:用于提取值的XPath表達(dá)式宫仗。
l? Default Value:參數(shù)的默認(rèn)值。
三旁仿、小結(jié)這兩種方式
正則表達(dá)式提取器和XPath Extractor都可以用來提取給定頁面中的特定文本藕夫,并將其保存在參數(shù)中,這兩種方式各有優(yōu)缺點(diǎn)枯冈。
正則表達(dá)式提取器可以用于對頁面任何文本的提取毅贮,提取的內(nèi)容是根據(jù)正則表達(dá)式在頁面內(nèi)容中進(jìn)行文本匹配;
而XPath Extractor則可以提取返回頁面任意元素的任意屬性。
相比較而言尘奏,
如果需要提取的文本是頁面上某元素的屬性值滩褥,建議使用XPath Extractor;
而如果需要提取的文本在頁面上的位置不固定,或者不是元素的屬性炫加,建議使用正則表達(dá)式提取器瑰煎。