1. 程式人生 > >jmeter—關聯設定

jmeter—關聯設定

jmeter想要從一個請求中獲取資料,通常有兩種關聯方法
一、 正則表示式提取器
方法一,從前一個請求中,用正則表示式提取器
1. 使用方法
具體方法:在需要獲得資料的請求上新增一個後置處理器—>正則表示式
這裡寫圖片描述
設定正則表達提取器的模板
這裡寫圖片描述
2. 引數詳解
引用名稱:即下一個要引用的引數名稱
正則表示式:填寫要提取的正則表示式,()就是要提取的內容,.代表任意字元,*代表出現任意次數
模板:用$$引用起來,如果在正則表示式中有多個正則表示式(含有多個括號括起來的),則可以是用$數字$表示解析到的第幾個值給引用名稱,例如,$2$標識吧解析到的第二個值給title
匹配數字:0代表隨機,-1代表所有,其餘正整數代表將在檢查的內容中,第幾個匹配的內容提取出來,此處我們把第一個匹配的內容提取出來,故此處設定為1
預設值:表示引數沒有取到的話,預設給它的值。一般不填寫
3. 具體示例
如上指令碼中,我們想判斷正則表示式是否真的提取到了值,驗證如下:
新增一個請求,請求引數引用正則表示式的提取值,即title
這裡寫圖片描述


新增檢視結果樹,檢視請求結果
我們看到第一個請求中,我們正則表示式想要提取的結果如下,紅框中圈出,那麼如果在下一個請求中出現請求引數為紅框中內容,說明提取結果存在,且正確
這裡寫圖片描述
檢視第二個請求內容
這裡寫圖片描述
我們看到請求內容果然是我們想要獲取的,且兩者一樣,這樣我們的關聯設定就是正確的,但是此處我們發現報錯,具體原因我們來排查一下
這裡寫圖片描述
4. 問題處理
切換到響應資料中,我們看到請求的內容中文亂碼,那麼我們既然判斷了關聯內容時正確的,為了解決這個問題,我們重新設定一下我們的取樣器
這裡寫圖片描述
勾選編碼,然後在重新指向一下,看看我們的問題是否解決
這裡寫圖片描述
重新執行後我們看到URI請求引數進行了URI編碼,檢視響應資料,看看傳輸的內容是否正確
這裡寫圖片描述

可以看到我們的傳輸內容時正確的,問題解決。
二、 xpath從前一個請求中獲取
方法二,用xpath從前一個請求中獲取,這種方式比較適合返回為xml片段的情況
此處還以我們上邊舉得例子來進行演示:
1. 使用方法
xpath Extractor設定頁面
這裡寫圖片描述
2. 引數詳解
Use Tidy:當需要處理的頁面是HTML格式時,必須選中該選項,當需要處理的頁面是XML或XHTML格式(例如,RSS返回)時,取消選中該選項
引用名稱:存放提取出的值的引數。
XPath Query:用於提取值的XPath表示式。
預設值:引數的預設值。
3. 示例演示
此處我們演示如何獲取title的值,配置xpath提取器如下:
這裡寫圖片描述

檢視結果樹,判斷提取值是否正確
這裡寫圖片描述
4. 問題處理
可以看到我們正確進行了提取,異常報錯處理方法如上邊解決方案。
以上便是關聯設定中的常用兩種方法。