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