為什么要進行關(guān)聯(lián):當我們在對系統(tǒng)進行測試時,本次操作或下一次操作對服務(wù)器提交的請求,參數(shù)中有部分參數(shù)需要服務(wù)器返回動態(tài)變化的值, 如cookie或token或userid等數(shù)據(jù).
關(guān)聯(lián)數(shù)據(jù)的規(guī)則: 首先這個值是動態(tài)變化的, 其次是由服務(wù)器動態(tài)返回的, 最后會對請求結(jié)果產(chǎn)生影響.
在Jmeter中關(guān)聯(lián)數(shù)據(jù)的常用的處理方式有以下幾種方法:
1、正則表達式提取器
2、Boundary Extractor邊界提取器
3、Json Extractor提取器
一、正則表達式提取器
在要關(guān)聯(lián)的請求下右鍵點擊添加-后置處理器-正則表達式提取器
進入響應(yīng)結(jié)果界面, 將格式選擇為RegExp Tester, 然后通過正則表達式獲取數(shù)據(jù).
e.g. 通用匹配規(guī)則: 將需要關(guān)聯(lián)的數(shù)據(jù) 替換為(.*?)
在正則表達式提取器中進行設(shè)置:
1. 引用名稱, 即后續(xù)使用時進行調(diào)用的變量名稱 通過${變量名}即可使用獲取到的變量數(shù)據(jù).
2. 模板$1$意思是,如果有多個動態(tài)變化的值,$1$代表獲取匹配到的第一個數(shù)據(jù),如果有多個動態(tài)變化的值需要關(guān)聯(lián)那么直接多添加幾個正則表達式提取器就可以了,然后在要關(guān)聯(lián)的值里填入 ${變量名 }
說明:
后置處理器:在請求結(jié)束或者返回響應(yīng)結(jié)果時發(fā)揮作用
正則表達式提取器:允許用戶從服務(wù)器的響應(yīng)中通過使用獲取userid的正則表達式提取值。該元素會作用在指定范圍取樣器,用正則表達式提取所需值,生成模板字符串,并將結(jié)果存儲到給定的變量名中。
模板:代表從正則表達式結(jié)果引用的樣式,其實結(jié)果是一組,而不是一個。$0$代表這一組結(jié)果的全部,$1$代表這一組結(jié)果的第1個,以此類推;$1$$2$代表該正則表達式一組結(jié)果中的第1個和第2個,兩個結(jié)果在一起中間沒有間隔;$3$,$4$代表該正則表達式一組結(jié)果中的第3個和第4個,兩個結(jié)果間有一個逗號相連。
匹配數(shù)字:0代表正則表達式結(jié)果組中隨機,1代表全部。
缺省值:當引用不對時顯示傳遞的信息,一般寫一個ERROR。
二、Boundary Extractor
在你要關(guān)聯(lián)請求右鍵點擊添加—后置處理器-邊界提取器
進入響應(yīng)結(jié)果界面, 將格式選擇為邊界提取器測試, 然后需要提取數(shù)據(jù)的左邊界與右邊界,點擊測試獲取數(shù)據(jù).
進入都邊界提取器界面將確定的左邊界與右邊界, 引用變量名稱進行輸入.
使用獲取到的關(guān)聯(lián)數(shù)據(jù)時,通過${變量名} 進行引用即可.
三、Json Extractor提取器:
當傳數(shù)據(jù)返回的是一個Json格式,如{"name":"sojson","url":"www.qftestjson.com"}這樣的格式又或者是如下
{
'status': 1.
'msg': '登陸成功',
'result': {
'user_id': 8.
'email': '123456@sina.com',
'password': '519475228fe35ad067744465c42a19b2',
'level_name': '倔強青銅'
}
}
在你要關(guān)聯(lián)請求右鍵點擊添加—后置處理器—JSON Extractor
進入響應(yīng)結(jié)果界面, 將格式選擇為JSON Path Testter, 然后通過JSON Path語法獲取數(shù)據(jù).
調(diào)試通過后, 進入JSON Extractor頁面, 將調(diào)試成功的JSON Path語法填寫在JSON Path exressions中即可. Variable Names為引用變量名稱, 后續(xù)通過${id}引用變量名即可使用關(guān)聯(lián)數(shù)據(jù).
以上三種方式, 在實際使用中, 正則表達式提取器與JSON Extractor使用較多, 應(yīng)重點掌握.
更多關(guān)于軟件測試培訓的問題,歡迎咨詢千鋒教育在線名師,如果想要了解我們的師資、課程、項目實操的話可以點擊咨詢課程顧問,獲取試聽資格來試聽我們的課程,在線零距離接觸千鋒教育大咖名師,讓你輕松從入門到精通。