Jmeter是一款強(qiáng)大的圖形界面壓力測試工具,完全用Java寫成,關(guān)于Jmeter的介紹,網(wǎng)上其實(shí)有不少的文章,我原本是不想再重復(fù)寫類似文章的,但我發(fā)現(xiàn)有些很關(guān)鍵性的,在我們測試中一定會用到的一些設(shè)置或操作很少見到有文章寫清楚的,比如有這樣的一個常見問題:如何對一個網(wǎng)站的多個鏈接進(jìn)行壓力測試?因?yàn)橥ǔG闆r下,我們要測試的不是一個鏈接,假如我們測試的是某一網(wǎng)站的話,而這些鏈接我們通常都是寫入到一個文本文件中,測試的過程中,會隨機(jī)讀取文件中的鏈接進(jìn)行壓力測試,我們所熟知的一些壓力測試工具,例如Siege可以這樣干。
在我使用Jmeter的過程中,我發(fā)現(xiàn)我周圍有之前使用過Jmeter的同事,但即使如此,他們對如何將多個鏈接寫入到文本文件中并隨機(jī)讀取進(jìn)行壓力測試也不清楚,故我打算還是在有空的時候?qū)懸黄@樣的文章,以方便使用者。
一、 官方網(wǎng)址
http://jakarta.apache.org/jmeter/
二、 運(yùn)行
下載解壓后,在目錄jakarta-jmeter-2.4in下可以見到一個jmeter.bat文件,雙擊此文件,打開初始界面如下圖:
注意的是上面顯示的是中文,如果你想使用其他語言,比如英文,那么通過菜單選項(xiàng)->選擇語言->英文即可,當(dāng)然轉(zhuǎn)為中文也是同樣操作。
三、 運(yùn)行預(yù)準(zhǔn)備
我們現(xiàn)在要對子猴博客來進(jìn)行一番壓力測試,壓力測試對象為隨機(jī)的幾個網(wǎng)頁鏈接,這幾個鏈接是寫在一個文本文件中的,在壓力測試的時候會隨機(jī)讀取。
1、 建立一個線程組,如下圖
為什么要建立線程組?原因很簡單,因?yàn)槲覀円M多個線程(用戶)來訪問網(wǎng)站。
線程組創(chuàng)建界面如下圖:
名稱可以隨意填寫,默認(rèn)選中“繼續(xù)”即可。
線程屬性部分中,線程數(shù)是啟動多少個線程,我這里填寫的是60,Ramp-Up Period (in seconds)表示線程之間間隔多少時間允許,單位是秒,比如如果填寫120,那么120/60=2表示60個線程間每隔2秒鐘請求網(wǎng)站。
循環(huán)次數(shù):60個線程運(yùn)行完畢算是一次,循環(huán)次數(shù)是這樣的一個請求過程運(yùn)行多少次,我這里填寫的是1000.
每次修改一個設(shè)置后,別忘記了保存一下。
2、 設(shè)置請求服務(wù)器、壓力鏈接等信息
接下來很自然的是,我們要測試的網(wǎng)站地址是什么?鏈接是什么?所以現(xiàn)在我們來設(shè)置這些信息。
右鍵點(diǎn)擊我們剛創(chuàng)建的線程組,在彈出的菜單中,選擇添加->Sampler->Http請求,彈出如下圖界面:
名稱:隨意填寫
注釋:可有可無
服務(wù)器名稱或IP:我這里填寫 zihou.me
端口號:我這里填寫80
Timesout部分可以不填
HTTP請求部分的協(xié)議:http,方法我選擇的是GET,Content encoding我填的是UTF-8.
路徑:
這里值得一提的是這個路徑,假如你只是對一個鏈接進(jìn)行壓力測試,那么這里非常簡單了,你直接填寫一個鏈接夠了,比如http://www.zihou.me,但很多情況下都不是這樣的,我們這里需要多個鏈接,如同剛開始講到的那樣,我們要將多個鏈接保存到一個文本文件中,然后隨機(jī)讀取進(jìn)行壓力測試。我們可以這么干,如圖:
打開界面如下圖:
在選擇一個功能下拉列表中選擇_StringFromFile,然后在本機(jī)新建一個測試文件text.txt,在第一行(你也可以不在第一行)的值中填寫測試文件的路徑,如下圖:
然后點(diǎn)擊“生成”按鈕,在生成按鈕的左邊文本框中將生成一個字符串如:
${__StringFromFile(E: est est.txt,,,)}
在測試文件中,我們每行寫一個URL鏈接,如下格式:
2011/03/26/3054
2011/03/26/3052
2011/03/26/3042
2011/03/25/3040
2011/03/25/3034
2011/03/24/3027