使用JMeter進行HTTP負載測試
以前我寫過一篇文章: high availability load balancing with HAProxy and CARP on FreeBSD ,其中我使用了 JMeter 作為測試工具。在本文中,我將介紹一些如何用 JMeter 來進行 HTTP 負載測試的基礎(chǔ)知識。JMeter 是一個java應(yīng)用程序,用于模擬產(chǎn)生一個 高負載到一個服務(wù)器上,以測試這個服務(wù)器的承載強度,或用于分析在不同的負載下的服務(wù)器的性能。完整的 JMeter 情況,請到其官方網(wǎng)站上了解: 這里。
你要明白的一件事是,這個工具并不是一個瀏覽器。這意味著 JMeter 并不會執(zhí)行提供給瀏覽器執(zhí)行的所有功能,它也無法運行 JavaScript 或 Flash。它只是一個能運行在 windows 上或其它操作系統(tǒng)上的一個桌面應(yīng)用程序。因此,請首先到這里 把它下載下來。如果你使用的是 windows 操作系統(tǒng),解壓后你就可以運行“bin/jmeter.bat”命令來啟動它。你將看到下面的顯示:
在本文中,我將介紹如果在 JMeter 中設(shè)置一個最基本的負載測試計劃。一般來說,你想通過負載測試來獲得以下兩個問題的答案:
- 你的應(yīng)用程序能夠承載多大的用戶量?
- 在什么樣的負載下,你的應(yīng)用會崩潰?
因此,一開始,首先你要添加一個線程組(用戶數(shù)):
然后,開始設(shè)置這個線程組:
- 用戶數(shù)
- 過渡期 (用戶組發(fā)出請求的間隔時間)
- 循環(huán)次數(shù) (這個線程的運行次數(shù))
其次,你需要增加一個例程(HTTP 請求)到這個組中:
一旦你增加了一個 HTTP 請求例程后,你將看到大量的選項。你需要注意的是:
- 服務(wù)器名(Server Name) 或 IP
- 路徑(Path)
定義完這個后,測試就準(zhǔn)備好了,但我們通常需要一些測試報告。在 JMeter 中,我們稱這種組件為監(jiān)聽器。因此,在這個測試計劃中,加上一個監(jiān)聽器:
你的全部的請求響應(yīng)結(jié)果都將會顯示在這里。按:Ctrl + R 開始運行這個測試。如果打開結(jié)果視圖窗口(View Results Tree),你可以看到實時的運行狀態(tài)。運行完后,你可以再按: Ctrl + E 來清除舊的結(jié)果,并重新按 Ctrl + R 來重新啟動一次新的測試。***,你可以看到類似以下的結(jié)果:
正如我在一開始說的那樣,這是一個最基本的 HTTP 負載測試計劃。但 JMeter 提供的功能卻遠非如此簡單,它能夠通過建立大量的、你需要學(xué)習(xí)的各種選項來完成各種測試案例。我強烈推薦大家使用這個工具來進行各類測試。當(dāng)然,這個工具用自定義插件來擴展也很簡單。
AtlantBH 開發(fā)了一套 JMeter 的擴展插件,包括:
- OAuth Sampler
- REST Sampler
- JMS Tools (Java Request Sampler)
- JSON 到 XML 轉(zhuǎn)換器
- XML Format Post-processor
- HDFS Operations Sampler
- HBase Scan Sampler
- HBase RowKey Sampler
- Hadoop Job Tracker Sampler
- HBase CRUD Sampler
- JSON utils (JSON Path Assertion, JSON Path Extractor, JSON Formatter)
英文原文:HTTP Load testing with JMeter
譯文鏈接:http://www.oschina.net/translate/http-load-testing-with-jmeter