場(chǎng)景:作為開發(fā)人員經(jīng)常需要進(jìn)行java接口的壓測(cè),比如商品搶購(gòu)、并發(fā)量大的活動(dòng)接口,需要模擬多用戶進(jìn)行并發(fā)壓測(cè),這個(gè)時(shí)候就需要使用到Apache的Jmeter壓測(cè)工具了,本篇講述的是使用Jmeter自定義變量模擬多用戶壓測(cè),通俗點(diǎn)講:就是把參數(shù)都放在一個(gè)文件中,Jmeter調(diào)用接口時(shí)動(dòng)態(tài)的去讀取,比如你壓測(cè)某個(gè)接口,接口入?yún)⑿枰猽sername、pricecode,將這些個(gè)參數(shù)都以下面的格式放在某個(gè)文件中,壓測(cè)接口時(shí)讓接口動(dòng)態(tài)的讀?。?/p>
17802115971_170921m80,1yuangou_h5
15927730423_150968z24,99yuanvip_pc
具體步驟:
1、 如果你還沒(méi)有安裝Jmeter,請(qǐng)移步至http://jmeter.apache.org/download_jmeter.cgi下載對(duì)應(yīng)的版本并安裝;
2、安裝好后打開界面如下

默認(rèn)的語(yǔ)言是English,要是你不習(xí)慣,可往 Options 》Choose Languages 修改為中文,還有主題色,可往 Options 》Look and Feel選項(xiàng)進(jìn)行修改;
3、選中Test plan右擊 》添加 》Threads(Users) 》線程組

4、選中線程組右擊 》添加 》配置元件 》HTTP請(qǐng)求默認(rèn)值

這里配置HTTP請(qǐng)求默認(rèn)值的目的就是為了方便,因?yàn)镠TTP請(qǐng)求默認(rèn)值是Test Plan下公用的,這樣你就不用在HTTP請(qǐng)求項(xiàng)時(shí)一個(gè)個(gè)配置,注意此步驟不是必須的,你可以直接跳到步驟5;
5、選中線程組右擊 》添加 》Sampler 》HTTP請(qǐng)求,這里要注意:接口入?yún)?{username}里的username和第6步驟中username、以及和接口的入?yún)?a target="_blank" rel="nofollow">http://localhost/common/checkjoin?username=××都是一致的。

6、選中線程組右擊 》添加 》配置元件 》CSV數(shù)據(jù)文件設(shè)置

這里的變量名稱必須和步驟5設(shè)置的同請(qǐng)求一同發(fā)送的參數(shù)項(xiàng)要一致,且和你的controller中的參數(shù)名也要一致。
如果接口里包含多個(gè),步驟六中配置的變量名稱就得用你自己指定的符號(hào)分隔開(上圖中的分隔符),要對(duì)應(yīng)你的csv文件中每一列參數(shù)分隔符,且步驟五同請(qǐng)求一起發(fā)送的參數(shù)名字也要對(duì)應(yīng)。
例如我的param.txt文件是這樣子的:只有一列username的取值

如果你的參數(shù)只有一個(gè),但是也設(shè)置了逗號(hào)分隔之類的,也是可以的,不產(chǎn)生影響;
7、選中線程組右擊 》添加 》監(jiān)聽器 》察看結(jié)果樹

察看結(jié)果樹界面可以看到每個(gè)接口的請(qǐng)求、返回值之類的,類似于抓包后的數(shù)據(jù)。在監(jiān)聽器選項(xiàng)里還有其他很多選項(xiàng)可以查看到壓測(cè)情況:

8、啟動(dòng)你的服務(wù)器,我是idea啟動(dòng)的本地服務(wù),實(shí)際壓測(cè)下

9、要及時(shí)的保存測(cè)試計(jì)劃Test Plan,不然關(guān)閉后下次進(jìn)來(lái)就找不到了,同時(shí),壓測(cè)后可以右擊查看結(jié)果樹,清除上一次的測(cè)試接口。
原文可見:Jmeter壓測(cè)java接口、Jmeter自定義變量模擬多用戶壓測(cè)
實(shí)際用例:
高并發(fā)處理之接口限流
高并發(fā)秒殺功能架構(gòu)設(shè)計(jì)