jmeter腳本包含很多請求,而請求之間很可能存在某種關聯。關聯即為上下文之間的連接,通過前面請求得到的響應,作為后文的輸入,以此根據前文不同的響應,做出不同的處理。
比如登錄,登錄時獲取的token,可通過關聯獲取得到,后面的各種請求都需要以該token作為參數傳送,才能正常訪問頁面資源。
jmeter關聯的方式有三種,分別是正則表達式提取器,Xpath Extractor和JSON Extractor。
在取樣器(如HTTP請求),選擇后置處理器——正則表達式提取器,即可使用。
下面以提取初始token為例,講述下如何提取所需信息。
先添加一個HTTP請求

點擊運行,在結果樹中查看響應信息。本例,我們需要提取的是data的值,作為token
在HTTP gettoken的請求中,添加正則表達式提取器,填入如下信息。
解釋:
(1)引用名稱:下一個請求要引用的參數名稱,如填寫token,則可用${token}引用它。
(2)正則表達式:()括起來的部分就是要提取的。此部分需了解正則表達式的方法,在此不細說。
(3)模板:用$$引用起來,如果在正則表達式中有多個正則表達式(由多個括號提?。?,如$2$,表示解析到的第2個值,$1$表示解析到的第1個值。
(4)匹配數字:0代表隨機取值,1代表全部取值,通常情況下填0。
(5)缺省值:如果參數沒有取得到值,那默認給一個值讓它取。
添加一個新的請求,該請求可獲取上面的值作為token。引用格式為{token_g1}。g1表示提取的第一個值(如有多個token,g2表示第二個)。
然后點擊運行,在結果樹可看到,新請求中的token參數值與前文獲取的data值一致,表示提取成功。
XPath Extractor是另一個可被用來提取頁面給定內容的Post Processor(后置處理器),XPath Extractor的使用方式與正則表達式處理器類似,只不過需要在該Extractor中指定的不是正則表達式,而是給定的XPath路徑
當提取的文本時頁面上的元素時,Xpath Extractor比較方便好用。Xpath可在瀏覽器通過F12,獲取所需元素的表達式。
JSON Extractor與Xpath Extractor很相似,光聽名字就知道。對于響應結果為JSON格式的數據,用JSON Extractor進行提取會更為方便和優雅。上一個例子說明下如何使用:
假如需要從下面的url中提取userType的值,響應結果以json格式顯示,可清晰的看到層級關系。
在登錄的請求上添加JSON Extractor,Variable names給提取的變量設名稱,JSON Path expresstions格式如下
如果該url的響應包含多個customerinfo,要提取第二個customerinfo里面的userType,可用$.data.customerInfo[1].userType的數組形式提取。
注:如需核對是否成功提取所需變量,可在線程組添加一個debug sampler,執行腳本后,查看結果樹即可知曉
三種關聯方式各有其適用范圍,都掌握這些使用方法會在編寫測試腳本時如魚得水。
如獲取HTML等資源時,選擇Xpath Extractor更便捷,可快速提取具體元素的屬性值;
如響應格式為JSON,選擇JSON Extractor無疑更方便;
若進行接口測試,請求的響應不是頁面元素的形式,則應用正則表達式進行提取。
睿江云官網鏈接:https://www.eflycloud.com/home?from=RJ0035
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。