背景
最近工作上被安排針對Web網站進行性能壓測,以評估特定的硬件配置下Web網站可支持的并發(fā)用戶數??紤]到JMeter是流行的Web性能壓測工具,因此趁著這次機會上網查閱了很多關于JMeter的資料,也自己動手進行軟件的配置和調測,從最基本的發(fā)送HTTP請求,到參數化輸入,分布式測試和最后的實時結果展示都折騰了一把?,F將折騰過程進行整理,既作為自己日后參考,也可分享給有需要的人,少踩一些坑。
在折騰的過程中,主要參考JMeter官網,上面有詳細的手冊和教程,同時也參考了其他一些博客和StackOverflow。重新整理的過程也是一個學習提高的過程,復習了相關的概念并找到了一些更易于理解的方法。
接下來按照我做為初學者對性能壓測的疑問,對整個過程進行梳理:
- 如何開始簡單的WEB壓力測試(一):發(fā)起第一個HTTP請求
- 如何開始簡單的WEB壓力測試(二):并發(fā)測試與參數化
- 如何錄制測試計劃
- 如何進行分布式壓力測試
- 如何實時展現測試結果
每個問題都會輔以實際的例子進行解答,并將具體操作的步驟和結果截圖記錄下來。
如何開始簡單的WEB壓力測試
俗話說萬事開頭難,接下來我們以一個最簡單的例子介紹如何從JMeter發(fā)起第一個HTTP請求。后續(xù)在這個例子上進行延伸,了解如何進行并發(fā)測試和參數化。
發(fā)起第一個HTTP請求
1. 安裝JMeter
建議從官網上下載最新版本,以便獲得更多新功能。目前最新的版本是3.3,支持Java8。同時,官網上也有豐富的文檔資源,包括用戶手冊,最佳實踐,組件參考和教程等,值得花時間仔細閱讀。
2. 準備被測網站
被測網站建議使用 PutsReq 。這個網站可以接受HTTP請求并且可以自定義返回結果,過程非常清晰,適合做為HTTP測試使用。
在網站首頁上點擊 “Create a PutsReq" 藍色按鈕,網站會自動幫你創(chuàng)建一個URL,接下來就可以往這個路徑發(fā)送HTTP請求。可以看到是如果普通的GET請求,則會返回"Hello World";如果是POST請求并帶了name參數(假設name參數值為XYZ),則會返回 Hello XYZ

3. 在JMeter中配置測試計劃
首先在Test Plan中增加一個Thread Group。在JMeter中每個Thread相當于一個模擬用戶,在Thread Group中進行進一步的配置可以定義模擬用戶的行為,如發(fā)起各種請求等。

在本例中Thread Group創(chuàng)建后可以先不改參數,接著創(chuàng)建一個Sampler/HTTP Request

并按下圖所示填寫相關的參數,包括協議,服務器名,請求類型和路徑,讓模擬用戶發(fā)送HTTP GET Reqeust到被測網站。

最后增加一個Listener/View Results Tree,查看請求的結果。

如果一切正常,那這個請求應該返回一串字符”Hello World"
4. 通過JMeter執(zhí)行測試計劃并查看結果
配置完成后我們就可以通過JMeter執(zhí)行剛剛配置好的測試計劃,即發(fā)送一個HTTP GET Request到被測網站 PutsReq

在JMeter上查看請求結果,返回是一串字符 "Hello World"

這一小節(jié)先整理到這里。下一小節(jié)我們在這個例子的基礎上進行延伸,介紹如何同時發(fā)起多個請求,并對請求的輸入進行參數化。敬請期待!