今天使用jmeter工具模擬2個(gè)關(guān)聯(lián)接口自動化測試過程,遇到各種小石子咯腳情況漓骚,記錄下避免下次繼續(xù)被咯腳,這里使用這2個(gè)上下關(guān)聯(lián)的接口,第1個(gè)接口參數(shù)化(CSV Data Set Config)延赌,對第1個(gè)接口響應(yīng)數(shù)據(jù)做正則提取器(Regular Expression Extractor),第2個(gè)接口關(guān)聯(lián)第1個(gè)接口提取出來叉橱,對第1挫以、2接口做斷言;
從頭開始吧:
step1:在【Test plan】測試計(jì)劃下添加線程組【Thread Group】,可以自行定義線程組的name窃祝,路徑如下:
step2:在此線程組下添加【Http Header Manger】用于管理這次請求頭相關(guān)信息掐松,路徑如下:
添加請求頭信息后點(diǎn)擊【Save】;注意別留空格
step3:在此線程組下添加【Http Request Defaults】,記錄請求ip和port大磺,方便之后切換環(huán)境直接更改這里的請求ip及端口即可抡句;
填寫請求協(xié)議,ip杠愧,port等信息待榔;
step4:在該線程組下添加請求【HTTP Request】,路徑如下:
注意添加參數(shù)的前2種方式是“二選一”流济,如果切換的話需要把前一種清空再切換方式锐锣,另外復(fù)制path時(shí)注意不要留空格;這里以body datya為例绳瘟;
step5:該線程組下添加查看結(jié)果樹【View Result Tree】雕憔,這里是直接加在線程組上的,那就會對整個(gè)線程組下的請求接口作用稽荧,如果是添加在【HTTP Request】下橘茉,那作用域就只對改請求作用;
以上5步完成基礎(chǔ)的接口姨丈,接下來分別對參數(shù)化/正則提取器/關(guān)聯(lián)/斷言等場景進(jìn)行操作畅卓,首先第1個(gè)接口參數(shù)化(CSV Data Set Config)。
①準(zhǔn)備參數(shù)化數(shù)據(jù)存在text(較簡單)或者excel(另存外為.csv結(jié)尾的文件名)中蟋恬,這里以excel為例翁潘;
②為線程組添加CSV Data Set Config,添加變量名等信息歼争;
③在請求中引用變量名拜马,完成參數(shù)化;
按照上面的步驟繼續(xù)進(jìn)行吧沐绒,step1準(zhǔn)備數(shù)據(jù):
準(zhǔn)備好數(shù)據(jù)后俩莽,繼續(xù)step2添加CSV Data Set Config并設(shè)置:
step3實(shí)際調(diào)用的接口中,通過${}引用變量來實(shí)現(xiàn)接口參數(shù)化乔遮,通過查看結(jié)果樹里的Request Body的請求參數(shù)信息:
繼續(xù)看如何對第1個(gè)接口響應(yīng)數(shù)據(jù)做正則提取器Regular Expression Extractor:
①根據(jù)查看結(jié)果樹中返回的響應(yīng)數(shù)據(jù)提取所需要的數(shù)據(jù)并使用正則表達(dá)式扮超;
②在接口1 HTTP Request 添加Regular Expression Extractor,并進(jìn)行設(shè)置蹋肮;
③該線程組添加【Debug Sampler】方便在查看結(jié)果樹中觀測提取器是否提取成功出刷;
首先看①如何提取和填寫表達(dá)式:
①-step1,通過查看結(jié)果樹找到需要提取的數(shù)據(jù)(注意響應(yīng)結(jié)果格式就以默認(rèn)的text為準(zhǔn)即可)
①-step2坯辩,確定提取數(shù)據(jù)的左右邊界馁龟,然后把需要提取數(shù)據(jù)用(正則表達(dá))括起來,最后提取出來的正則表達(dá)式是"PPID":(.*),"ClueNo"
接下來②在接口1?HTTP Request 添加Regular Expression Extractor漆魔,并進(jìn)行設(shè)置
然后③給該線程組添加【Debug Sampler】方便在查看結(jié)果樹中觀測:
接下來繼續(xù)看第2個(gè)接口關(guān)聯(lián)第1個(gè)接口提取出來坷檩,這個(gè)劇比較簡單了却音,在上一步已經(jīng)把正則提取出來的數(shù)據(jù)賦值給ppid這個(gè)變量了,所以第2個(gè)接口只需要引用${ppid}即可淌喻;
最后看下對第1僧家、2接口做斷言雀摘,分別2個(gè)【HTTP Request?】下添加【Response Assertion】(注意格式最好用查看結(jié)果樹text下格式中復(fù)制過來裸删,試過json復(fù)制調(diào)用無效)
報(bào)錯不可怕,繼續(xù)排查阵赠,涯塔,,清蚀,反例失敗的原因是在斷言設(shè)置的時(shí)候【Field to Test】里的選項(xiàng)錯誤導(dǎo)致的匕荸。
注意:1、注意空格尤其是復(fù)制url枷邪;2榛搔、如果要復(fù)制查看結(jié)果樹中里面的內(nèi)容注意調(diào)整到默認(rèn)格式;3....其他還有些問題和坑點(diǎn)下次會繼續(xù)更新东揣。