之前的博客,有介紹jmeter如何對請求進行關聯的一種常見用法,即:后置處理器中的正則表達式提取器,下面介紹另一種關聯方法,XPath Extractor!
所謂關聯,從業務角度講,即:某些操作步驟與其相鄰步驟存在一定的依賴關系,導致某個步驟的輸入數據來源於上一步的返回數據,這時就需要“關聯”來建立步驟之間的聯系。
簡單來說,就是:將上一個請求的響應結果作為下一個請求的參數。。。
jmeter提供的對關聯的支持包括以下2個方面:
①能夠將返回頁面上的指定內容保存在參數中;
②能夠將GET或POST方法中的數據使用該參數來替換;
XPath Extractor的使用方法與正則表達式提取器(Regular Expression Extractor)類似,只不過該Expression中指定的不是正則表達式,而是給定的XPath路徑。
首先,新建一個線程組,然后右鍵-添加-后置處理器-XPath Extractor:
這里簡單介紹下jmeter后置處理器的作用:
后置處理器(Post Processor)本質上是一種對sampler發出請求后接受到的響應數據進行處理(后處理)的方法,結合之前我介紹過的jmeter元件的作用域和執行順序 ,
必須將后置處理器元件放在合適的位置才能達到預期的效果。
XPath Extractor界面如下:
APPly to:作用范圍(返回內容的斷言范圍)
Main sample and sub-samples:作用於父節點的取樣器及對應子節點的取樣器
Main sample only:僅作用於父節點的取樣器
Sub-samples only:僅作用於子節點的取樣器
JMeter Variable:作用於jmeter變量(輸入框內可輸入jmeter的變量名稱)
XML Parsing Options:要解析的XML參數
Use Tidy:當需要處理的頁面是HTML格式時,必須選中該選項;如果是XML或XHTML格式(例如RSS返回),則取消選中;
Quiet表示只顯示需要的HTML頁面,Report errors表示顯示響應報錯,Show warnings表示顯示警告;
Use Namespaces:如果啟用該選項,后續的XML解析器將使用命名空間來分辨;
Validate XML:根據頁面元素模式進行檢查解析;
Ignore Whitespace:忽略空白內容;
Fetch external DTDs:如果選中該項,外部將使用DTD規則來獲取頁面內容;
Return entire XPath fragment of text content:返回文本內容的整個XPath片段;
Reference Name:存放提取出的值的參數。
XPath Query:用於提取值的XPath表達式。
Default Value:參數的默認值。
PS:XPath是XML/XHTML中常用的選取給定節點和節點集的方法。
正則表達式提取器和XPath Extractor的區別:
①正則表達式提取器可以用於對頁面任何文本的提取,提取的內容是根據正則表達式在頁面內容中進行文本匹配;
②XPath Extractor則可以提取返回頁面任意元素的任意屬性;
③如果需要提取的文本是頁面上某元素的屬性值,建議使用XPath Extractor;
④如果需要提取的文本在頁面上的位置不固定,或者不是元素的屬性,建議使用正則表達式提取器。