壓力測試是每一個Web應用程式上線之前都需要做的一個測試,他可以幫助我們發現系統中的瓶頸問題,減少釋出到生產環境後出問題的機率;預估系統的承載能力,使我們能根據其做出一些應對措施。所以壓力測試是一個非常重要的步驟,關於java應用的壓力測試,業界常用工具為Apache Jmeter。(http://jmeter.apache.org)。
Apache JMeter是Apache組織開發的基於Java的壓力測試工具。用於對軟體做壓力測試,它最初被設計用於Web應用測試,但後來擴充套件到其他測試領域。 它可以用於測試靜態和動態資源,例如靜態檔案、Java 小服務程式、CGI 指令碼、Java 物件、資料庫、FTP 伺服器, 等等。JMeter 可以用於對伺服器、網路或物件模擬巨大的負載,來自不同壓力類別下測試它們的強度和分析整體效能。另外,JMeter能夠對應用程式做功能/迴歸測試,通過建立帶有斷言的指令碼來驗證你的程式返回了你期望的結果。為了最大限度的靈活性,JMeter允許使用正規表示式建立斷言。
Apache jmeter 可以用於對靜態的和動態的資源(檔案,Servlet,Perl指令碼,java 物件,資料庫和查詢,FTP伺服器等等)的效能進行測試。它可以用於對伺服器、網路或物件模擬繁重的負載來測試它們的強度或分析不同壓力型別下的整體效能。你可以使用它做效能的圖形分析或在大並行負載測試你的伺服器/指令碼/物件。
本次測試,選擇Jmeter官方最新版本進行。由於只有windows作業系統具備Jmeter的視覺化介面,因此本次選擇windows版本進行安裝,以方便進行壓測設定。
注意該視窗的提示資訊,意思就是:不要使用GUI執行壓力測試,GUI僅用於壓力測試的建立和偵錯;執行壓力測試請不要使用GUI。使用下面的命令來執行測試:
jmeter -n -t [jmx file] -l [results file] -e -o [Path to web report folder]
考慮到目前的使用者量,設定500個執行緒,迴圈1次。
在我們剛剛建立的執行緒組上右鍵 【新增】-->【設定元件】-->【HTTP請求預設值】。設定我們需要進行測試的程式協定、地址和埠。
當所有介面測試存取域名和埠都一樣時,可使用該元件,一旦伺服器地址變更,只需要修改請求預設值。
在「執行緒組」右鍵 【新增-】->【samlper】-->【HTTP 請求】設定我們需要測試的API的請求路徑和資料。Taier登入介面用的form-data,需要在請求頭進行設定。
上一步驟中涉及到的資料請求方式等,都可以在此設定。
在我們剛剛建立的執行緒組上右鍵 【新增】-->【斷言】-->【響應斷言】。根據響應的資料來判斷請求是否正常。我在這裡只判斷的響應程式碼是否為200。還可以設定錯誤資訊
在我們剛剛建立的執行緒組上右鍵 【新增】-->【監聽器】-->【察看結果樹】。直接新增,然後點選執行按鈕就可以看到結果了。
在我們剛剛建立的執行緒組上右鍵 【新增】-->【監聽器】-->【Summary Report】。直接新增,然後點選執行按鈕就可以看到結果了。
前面我們說過,執行測試計劃不能用GUI,需要用命令列來執行。
jmeter -n -t Taier平臺壓力測試.jmx -l result.txt -e -o taierLoginWebReport
在命令列執行以上命令
結束之後會在當前目錄下生成壓測報告、壓測結果和壓測紀錄檔
jmeter.log
result.txt
進入壓測報告資料夾,雙擊開啟index.html即可獲取壓測報告詳情。
總體報告: