Jmeter之關聯——常用提取器


Jmeter關聯

所謂關聯,從業務角度講,即:某些操作步驟與其相鄰步驟存在一定的依賴關系,導致某個步驟的輸入數據來源於上一步的返回數據,這時就需要“關聯”來建立步驟之間的聯系。

簡單來說,就是:將上一個請求的響應結果作為下一個請求的參數。。。

這里的提取器,都可以作為jmeter中關聯的使用。

一、邊界提取器

參數:前三個就不做介紹了;

(4)匹配數字:-1表示全部,0隨機,1第一個,2第二個

(5)缺省值:這個如果沒有匹配到,給它定義的一個默認值

這里和lr里的關聯函數是差不多的,比如這里要提取hao123,

 提取器填寫如下:

 在請求2里引用:引用使用${變量名},這里為${id},如下圖,就已經取到值了。

二、正則表達式提取器

參數:

(1)就是變量名。

(2)正則表達式:

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

   .:匹配任何字符串。

  +:一次或多次。
  ?:不要太貪婪,在找到第一個匹配項后停止。

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

(4)匹配數字:0代表隨機取值,1代表全部取值,通常情況下填0

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

 在請求2里引用:引用使用${變量名},這里為${id},如下圖,就已經取到值了。

三、json提取器

jsonpath得使用詳細:http://www.lemfix.com/topics/63

json提取器的示例:https://www.cnblogs.com/tudou-22/p/12579575.html

參數介紹:

(1)names of created variables :接收值的變量名

(2)json path: json path表達式

(3)match no:0隨機;n取第幾個匹配值;-1匹配所有,后續引用用 變量名_N 取第N個值。

(4)default values: 缺省值,匹配不到值的時候取該值

 

如果返回的數據時json串,那么該如何提取呢?

這里說一下json提取器:

json數據為:{"statusCode":200,"data":{"userId":"4a2cbe616eb74f0d99190af072c8dea6","token":"37e7a9e198186f5a443e50e6138a5bd20bd"}}

則json path表達式為:$.data.token

json數據為:{"statusCode":200,"data":[{"code":"407949","id":"aa477ad2085d492a99b877d14343d68d","name":"90一中4545"}]}

則json path表達式為:$.data[0].id  【原來這個responses 的data為數組,故應為 $.data[0].id 提取第1個值】

例子:提取下面json里的性別

json提取器里填寫如下:

在請求2里引用:引用使用${變量名},這里為${name},如下圖,就已經取到值了。

 

四、xpath提取器

XPath Extractor是另一個可被用來提取頁面給定內容的Post Processor,XPath Extractor的使用方式與Regular Expression Extractor類似,只不過需要在該Extractor中指定的不是正則表達式,而是給定的XPath路徑。

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

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

這里需要學習xpath的寫法

 

參數:

(1)Reference Name:存放提取出的值的參數。

(2)XPath Query:用於提取值的XPath表達式。

(3)Default Value:參數的默認值。

面板介紹:

 

 

【小注】正則表達式提取器和XPath Extractor的區別:

①正則表達式提取器可以用於對頁面任何文本的提取,提取的內容是根據正則表達式在頁面內容中進行文本匹配;

②XPath Extractor則可以提取返回頁面任意元素的任意屬性;

③如果需要提取的文本是頁面上某元素的屬性值,建議使用XPath Extractor;

④如果需要提取的文本在頁面上的位置不固定,或者不是元素的屬性,建議使用正則表達式提取器。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM