jmeter腳本包含很多請(qǐng)求,而請(qǐng)求之間很可能存在某種關(guān)聯(lián)。關(guān)聯(lián)即為上下文之間的連接,通過前面請(qǐng)求得到的響應(yīng),作為后文的輸入,以此根據(jù)前文不同的響應(yīng),做出不同的處理。
比如登錄,登錄時(shí)獲取的token,可通過關(guān)聯(lián)獲取得到,后面的各種請(qǐng)求都需要以該token作為參數(shù)傳送,才能正常訪問頁面資源。
jmeter關(guān)聯(lián)的方式有三種,分別是正則表達(dá)式提取器,Xpath Extractor和JSON Extractor。
讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來自于我們對(duì)這個(gè)行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價(jià)值的長期合作伙伴,公司提供的服務(wù)項(xiàng)目有:域名注冊(cè)、網(wǎng)站空間、營銷軟件、網(wǎng)站建設(shè)、獻(xiàn)縣網(wǎng)站維護(hù)、網(wǎng)站推廣。
在取樣器(如HTTP請(qǐng)求),選擇后置處理器——正則表達(dá)式提取器,即可使用。
下面以提取初始token為例,講述下如何提取所需信息。
先添加一個(gè)HTTP請(qǐng)求
點(diǎn)擊運(yùn)行,在結(jié)果樹中查看響應(yīng)信息。本例,我們需要提取的是data的值,作為token
在HTTP gettoken的請(qǐng)求中,添加正則表達(dá)式提取器,填入如下信息。
解釋:
(1)引用名稱:下一個(gè)請(qǐng)求要引用的參數(shù)名稱,如填寫token,則可用${token}引用它。
(2)正則表達(dá)式:()括起來的部分就是要提取的。此部分需了解正則表達(dá)式的方法,在此不細(xì)說。
(3)模板:用$$引用起來,如果在正則表達(dá)式中有多個(gè)正則表達(dá)式(由多個(gè)括號(hào)提?。?2$,表示解析到的第2個(gè)值,$1$表示解析到的第1個(gè)值。
(4)匹配數(shù)字:0代表隨機(jī)取值,1代表全部取值,通常情況下填0。
(5)缺省值:如果參數(shù)沒有取得到值,那默認(rèn)給一個(gè)值讓它取。
添加一個(gè)新的請(qǐng)求,該請(qǐng)求可獲取上面的值作為token。引用格式為{token_g1}。g1表示提取的第一個(gè)值(如有多個(gè)token,g2表示第二個(gè))。
然后點(diǎn)擊運(yùn)行,在結(jié)果樹可看到,新請(qǐng)求中的token參數(shù)值與前文獲取的data值一致,表示提取成功。
XPath Extractor是另一個(gè)可被用來提取頁面給定內(nèi)容的Post Processor(后置處理器),XPath Extractor的使用方式與正則表達(dá)式處理器類似,只不過需要在該Extractor中指定的不是正則表達(dá)式,而是給定的XPath路徑
當(dāng)提取的文本時(shí)頁面上的元素時(shí),Xpath Extractor比較方便好用。Xpath可在瀏覽器通過F12,獲取所需元素的表達(dá)式。
JSON Extractor與Xpath Extractor很相似,光聽名字就知道。對(duì)于響應(yīng)結(jié)果為JSON格式的數(shù)據(jù),用JSON Extractor進(jìn)行提取會(huì)更為方便和優(yōu)雅。上一個(gè)例子說明下如何使用:
假如需要從下面的url中提取userType的值,響應(yīng)結(jié)果以json格式顯示,可清晰的看到層級(jí)關(guān)系。
在登錄的請(qǐng)求上添加JSON Extractor,Variable names給提取的變量設(shè)名稱,JSON Path expresstions格式如下
如果該url的響應(yīng)包含多個(gè)customerinfo,要提取第二個(gè)customerinfo里面的userType,可用$.data.customerInfo[1].userType的數(shù)組形式提取。
注:如需核對(duì)是否成功提取所需變量,可在線程組添加一個(gè)debug sampler,執(zhí)行腳本后,查看結(jié)果樹即可知曉
三種關(guān)聯(lián)方式各有其適用范圍,都掌握這些使用方法會(huì)在編寫測試腳本時(shí)如魚得水。
如獲取HTML等資源時(shí),選擇Xpath Extractor更便捷,可快速提取具體元素的屬性值;
如響應(yīng)格式為JSON,選擇JSON Extractor無疑更方便;
若進(jìn)行接口測試,請(qǐng)求的響應(yīng)不是頁面元素的形式,則應(yīng)用正則表達(dá)式進(jìn)行提取。
睿江云官網(wǎng)鏈接:https://www.eflycloud.com/home?from=RJ0035