背景
最近需要做一個(gè)壓力測(cè)試,針對(duì)公司服務(wù)的一個(gè)api進(jìn)行麦到。
準(zhǔn)備了700w的數(shù)據(jù),數(shù)據(jù)是json格式欠肾,存在txt文件里,每個(gè)txt文件10w數(shù)據(jù)刺桃,總共70個(gè)txt文件粹淋。
jmeter的參數(shù)化有幾種方式,這里就介紹其中一種
本次api是http形式瑟慈,所以只需要把發(fā)送的數(shù)據(jù)放到body中就可以了
測(cè)試概覽
測(cè)試計(jì)劃如下圖
在HTTP請(qǐng)求中桃移,需要配置相關(guān)信息,比如需要發(fā)送的服務(wù)器地址葛碧,端口號(hào)借杰,以及http方法,是get還是post等等吹埠。
最重要的是在body data中,這里就是我們參數(shù)化后放置變量的地方。
CSV DATA配置
這里我們引入CSV DATA配置
- filename:這里需要填寫你文件的絕對(duì)路徑
- Variable Names: 這里是你參數(shù)化的名字缘琅,可以隨便起粘都,也就是后面需要填在body data中的名字
- Delimiter :這里填寫你文件中的分隔符,視情況而定刷袍,由于我的文件是用換行符分割兩條數(shù)據(jù)的翩隧,所以這里填寫"\n"
- Recycle on EOF:遇到文件結(jié)束符時(shí),是否從頭開(kāi)始循環(huán)讀入
- Stop Thread on EOF: 當(dāng)Recycle on EOF為False并且Stop Thread on EOF為True,則讀完csv文件中的記錄后,停止運(yùn)行
響應(yīng)斷言
當(dāng)返回值中出現(xiàn)signature:""時(shí)呻纹,可以認(rèn)為請(qǐng)求成功堆生,所以就以此作為斷言。
如下圖添加響應(yīng)斷言
HTTP請(qǐng)求設(shè)置
BODY DATA設(shè)置中就是放入?yún)?shù)化的請(qǐng)求
由于txt文件有70個(gè)雷酪,所以當(dāng)每次發(fā)送完一個(gè)txt文件中的請(qǐng)求后淑仆,需要自動(dòng)讀取下一個(gè)文件,獲取其中的數(shù)據(jù)并發(fā)送哥力。
這里用到一個(gè)函數(shù)${_StringFromFile(文件名)}蔗怠。
我的文件命名為data1,data2……data70,函數(shù)這樣寫
${_StringFromFile(/home/file/dfp/data_test/file/data#.txt,,1,70)}
這里"#"用來(lái)占位吩跋。
1,70表示從第一個(gè)讀到第70個(gè)文件寞射,這里按照需求進(jìn)行變化。
這里需要注意的是锌钮,在body data中桥温,函數(shù)后面需要緊跟參數(shù)化的名字,不能分在兩行寫梁丘,不然文件無(wú)法循環(huán)讀取侵浸。
PS:由于初次學(xué)習(xí),壓力一直上不去兰吟,每次請(qǐng)求的量都很小通惫,還未解決,期待有人分享