JMeter(二十三)關(guān)聯(lián)

話說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ù)的上一個(gè)請求上右擊添加一個(gè)后置處理器-->正則表達(dá)式提取器

解釋

(1)引用名稱:下一個(gè)請求要引用的參數(shù)名稱,如填寫activityID,則可用${activityID}引用它。

(2)正則表達(dá)式

()括起來的部分就是要提取的。

.匹配任何字符串。

+:一次或多次。

?:不要太貪婪,在找到第一個(gè)匹配項(xiàng)后停止。

注:(.+?)[.\n]+可以匹配換行符在內(nèi)的所有字符。

(3)模板:用$$引用起來,如果在正則表達(dá)式中有多個(gè)正則表達(dá)式(多個(gè)括號(hào)括起來的東東),則可以是$2$$3$等等,表示解析到的第幾個(gè)值給title。如:$1$表示解析到的第1個(gè)值

(4)匹配數(shù)字:0代表隨機(jī)取值,1代表全部取值,通常情況下填0,如果在LR中,取出的值是一個(gè)數(shù)組,還得處理一下,LR11版本用一個(gè)隨機(jī)的函數(shù)就可以不用寫大段的代碼來處理數(shù)組。

(5)缺省值:如果參數(shù)沒有取得到值,那默認(rèn)給一個(gè)值讓它取。

2、關(guān)于正則表達(dá)式的舉例說明

(1)提取單個(gè)字符串:

假設(shè)測試人員期望匹配Web頁面的如下部分:name = "file" value = "readme.txt">并提取readme.txt。

一個(gè)符合要求的正則表達(dá)式:name = "file" value = "(.+?)">。

():封裝了待返回的匹配字符串。

.:匹配任何字符串。

+:一次或多次。

?:不要太貪婪,在找到第一個(gè)匹配項(xiàng)后停止。

(2)提取多個(gè)字符串:

假設(shè)測試人員期望匹配Web頁面的如下部分:name = "file" value = "readme.txt">并提取file和readme.txt。

一個(gè)符合要求的正則表達(dá)式:name?= "(.+?)" value = "(.+?)"。

引用名稱:MYREF

模板:$1$$2$

如下變量的值將會(huì)被設(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是另一個(gè)可被用來提取頁面給定內(nèi)容的Post Processor,XPath

Extractor的使用方式與Regular Expression

Extractor類似,只不過需要在該Extractor中指定的不是正則表達(dá)式,而是給定的XPath路徑。

用xpath從前一個(gè)請求中取。這種形式比較適合于返回為xml片段的情況。在需要獲得數(shù)據(jù)的請求上右擊添加一個(gè)后置處理器-->xPath Extractor。引用名稱即下一個(gè)請求要引用的參數(shù)名稱,如填寫body,則可用${body}引用它。

Xpath一般用于返回xml用得多。

XPath Extractor的設(shè)置界面:

l? Use Tidy?:當(dāng)需要處理的頁面是HTML格式時(shí),必須選中該選項(xiàng),當(dāng)需要處理的頁面是XML或XHTML格式(例如,RSS返回)時(shí),取消選中該選項(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á)式提取器。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • LoadRunner有的一些功能,比如:參數(shù)化、檢查點(diǎn)、集合點(diǎn)、關(guān)聯(lián),Jmeter也都有這些功能,只是功能可能稍弱...
    alamZheng閱讀 364評論 0 0
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,533評論 19 139
  • 初衷:看了很多視頻、文章,最后卻通通忘記了,別人的知識(shí)依舊是別人的,自己卻什么都沒獲得。此系列文章旨在加深自己的印...
    DCbryant閱讀 4,228評論 0 20
  • 20170531 這幾天重新拾起了爬蟲,算起來有將近5個(gè)月不碰python爬蟲了。 對照著網(wǎng)上的程序和自己以前寫的...
    八神蒼月閱讀 14,372評論 3 44
  • 1.坐享5分鐘,腦袋里一直想著要做的事兒,設(shè)計(jì)筆記本,有點(diǎn)做不下去。 2.早上九點(diǎn)多起床,十點(diǎn)多有人看房子,下午跟...
    想寫書的Linda閱讀 227評論 0 1

友情鏈接更多精彩內(nèi)容