2013-06-24
Posted byyeho
ApacheJMeter是Apache組織開發(fā)的基于Java的壓力測試工具。用于對軟件做壓力測試,它最初被設(shè)計用于Web應(yīng)用測試但后來擴展到其他測試領(lǐng)域。 它可以用于測試靜態(tài)和動態(tài)資源例如靜態(tài)文件、Java小服務(wù)程序、CGI腳本、Java 對象、數(shù)據(jù)庫, FTP服務(wù)器, 等等。JMeter 可以用于對服務(wù)器、網(wǎng)絡(luò)或?qū)ο竽M巨大的負載,來在不同壓力類別下測試它們的強度和分析整體性能。另外,JMeter能夠?qū)?yīng)用程序做功能/回歸測試,通過創(chuàng)建帶有斷言的腳本來驗證你的程序返回了你期望的結(jié)果。為了限度的靈活性,JMeter允許使用正則表達式創(chuàng)建斷言。
1. 下載JMeter官方網(wǎng)站下載最新版本:http://jmeter.apache.org/download_jmeter.cgi,目前最新版是Apache JMeter 2.9
使用JMeter依賴jdk,建議安裝jdk 1.6版本
Linux下安裝jdk參考文章:http://www.linuxeye.com/Linux/Linux-install-JDK.html
Windowns下安裝jdk同Linux下安裝類似,這里就不介紹了。
這里就在win下進行,圖形界面較為方便
在目錄apache-jmeter-2.9bin 下可以見到一個jmeter.bat文件,雙擊此文件,即看到JMeter控制面板。
現(xiàn)在來對LinuxEye進行壓力測試,壓力測試對象為隨機的幾個網(wǎng)頁鏈接,這幾個鏈接是寫在一個文本文件中的,在壓力測試的時候會隨機讀取。
1) 建立一個線程組
為什么要建立線程組?原因很簡單,因為我們要模擬多個線程(用戶)來訪問LinuxEye。
線程屬性部分中,線程數(shù)是啟動多少個線程,我這里填寫的是10,Ramp-Up Period (in seconds)表示線程之間間隔多少時間允許,單位是秒,比如如果填寫10,那么10/10=1表示10個線程間每隔1秒鐘請求網(wǎng)站。
循環(huán)次數(shù):60個線程運行完畢算是一次,循環(huán)次數(shù)就是這樣的一個請求過程運行多少次,我這里測試就填寫的是2.
每次修改一個設(shè)置后,別忘記了保存一下。
2) 設(shè)置請求服務(wù)器、壓力鏈接等信息
接下來很自然的是,我們要測試的網(wǎng)站地址是什么?鏈接是什么?所以現(xiàn)在我們就來設(shè)置這些信息。
右鍵點擊我們剛創(chuàng)建的線程組,在彈出的菜單中,選擇添加->Sampler->Http請求
路徑:
假如你只是對一個鏈接進行壓力測試,直接填寫一個鏈接就ok,比如http://www.linuxeye.com,但是大多數(shù)情況下都不是這樣的,我們這里需要多個鏈接,就如同剛開始講到的那樣,我們要將多個鏈接保存到一個文本文件中,然后隨機讀取進行壓力測試。我們可以這么做,如圖:
在選擇一個功能下拉列表中選擇_StringFromFile,然后在本機新建一個測試文件C:UsersrootDesktopapache-jmeter-2.9test.txt,在第一行(你也可以不在第一行)的值中填寫測試文件的路徑,如下圖:
然后點擊“生成”按鈕,在生成按鈕的左邊文本框中將生成一個字符串如:
${__StringFromFile(C:UsersrootDesktopapache-jmeter-2.9test.txt,,,)}
在test.txt測試文件中,我們每行寫一個URL鏈接,如下格式:
/command/linuxrumen/program/jianzhan/command/cat.html/command/chmod.html/command/lsattr.html
注意,每行前面并沒有http://www.linuxeye.com這樣的信息,因為我們在前面已經(jīng)填寫了服務(wù)器地址為www.linuxeye.com,這里就沒必要再為每個url填寫這個相同前綴了;另外,上面的url格式也只是個例子,表示域名后的部分。
這樣一來,當我們并非請求的時候,就會從test.txt中隨機選擇url來進行壓力測試。
另外值得注意的一個地方是,如果參數(shù)中有中文的情況,運行的時候可能會出現(xiàn)亂碼,這個時候就需要注意你在Jmeter中的編碼設(shè)置與你要請求的網(wǎng)頁編碼是一致的。
路徑文本框下面的選項,可以按默認的就成,Use multipart/form-data for HTTP POST是當請求中有附件的情況,一般情況下都不用選中的。
3) 查看運行結(jié)果
鼠標右鍵點擊線程組,在彈出的菜單中選擇添加->監(jiān)聽器->用表格查詢結(jié)果
當然,在運行前,請把所有修改都保存好
各屬性如下:
Sample:每個請求的序號
Start Time:每個請求開始時間
Thread Name:每個線程的名稱
Label:Http請求名稱
Sample Time:每個請求所花時間,單位毫秒
Status:請求狀態(tài),如果為勾則表示成功,如果為叉表示失敗。
Bytes:請求的字節(jié)數(shù)
如果Status為叉,那很顯然請求是失敗了,但如果是勾,也并不能認為請求就一定完全成功了,因為還得看Bytes的字節(jié)數(shù)是否是所請求網(wǎng)頁的正常大小值,如果不是則說明發(fā)生了丟包現(xiàn)象,也不是完全成功。
在下面還有幾個參數(shù):
樣本數(shù)目:也就是上面所說的請求個數(shù),成功的情況下等于你設(shè)定的并發(fā)數(shù)目乘以循環(huán)次數(shù)。
平均:每個線程請求的平均時間
最新樣本:表示服務(wù)器響應(yīng)最后一個請求的時間
偏離:服務(wù)器響應(yīng)時間變化、離散程度測量值的大小,或者,換句話說,就是數(shù)據(jù)的分布(這個我不是很理解)。
術(shù)語:
1、線程組:測試里每個任務(wù)都要線程去處理,所有我們后來的任務(wù)必須在線程組下面創(chuàng)建。可以在“Test Plan(鼠標右擊) -> 添加 ->Threads(Users) -> 線程組”來建立它,然后在線程組面板里有幾個輸入欄:線程數(shù)、Ramp-Up Period(in seconds)、循環(huán)次數(shù),其中Ramp-Up Period(in seconds)表示在這時間內(nèi)創(chuàng)建完所有的線程。如有8個線程,Ramp-Up = 200秒,那么線程的啟動時間間隔為200/8=25秒,這樣的好處是:一開始不會對服務(wù)器有太大的負載。
2、取樣器(Sampler):可以認為所有的測試任務(wù)都由取樣器承擔,有很多種,如:HTTP請求。
3、斷言:對取樣器返回的請求結(jié)果給出判斷是否正確。
4、monitor:它的功能是對取樣器的請求結(jié)果顯示、統(tǒng)計一些數(shù)據(jù)(吞吐量、KB/S……)等
網(wǎng)頁名稱:jmeter的使用
標題路徑:http://aaarwkj.com/article16/chcigg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制開發(fā)、網(wǎng)站導(dǎo)航、網(wǎng)站內(nèi)鏈、定制網(wǎng)站、自適應(yīng)網(wǎng)站、域名注冊
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)