MySQL Binlog 解析工具 Maxwell 詳解
使用jmeter進行壓力測試
前言:
軟體壓力測試是軟體質量保證的一項基本行為,是每個重要軟體測試工作的一部分。軟體壓力測試是指對系統不斷施加壓力的情況下,根據系統各項指標的變化情況來判斷:1、系統可能存在的瓶頸 2、系統負載能力 3、 系統正常執行情況下的執行效率
關於JMeter:
Apache JMeter是Apache組織開發的基於Java的壓力測試工具。用於對軟體做壓力測試,它最初被設計用於Web應用測試,但後來擴充套件到其他測試領域。 它可以用於測試靜態和動態資源,例如靜態檔案、Java 小服務程式、CGI 指令碼、Java 物件、資料庫、FTP 伺服器, 等等。JMeter 可以用於對伺服器、網路或物件模擬巨大的負載,來自不同壓力類別下測試它們的強度和分析整體效能。另外,JMeter能夠對應用程式做功能/迴歸測試,通過建立帶有斷言的指令碼來驗證你的程式返回了你期望的結果。為了最大限度的靈活性,JMeter允許使用正則表示式建立斷言。 Apache jmeter 可以用於對靜態的和動態的資源(檔案,Servlet,Perl指令碼,java 物件,資料庫和查詢,FTP伺服器等等)的效能進行測試。它可以用於對伺服器、網路或物件模擬繁重的負載來測試它們的強度或分析不同壓力型別下的整體效能。你可以使用它做效能的圖形分析或在大併發負載測試你的伺服器/指令碼/物件。
官網:http://jmeter.apache.org/download_jmeter.cgi
前期準備:
解壓下載的二進位制包,進入bin目錄,使用jmeter.bat
啟動程式。
啟動之後會有兩個視窗,一個cmd視窗,一個JMeter的 GUI。前面「不要忽略」CMD視窗的提示資訊:
jmeter:
CMD視窗的提示資訊
Don'tuseGUImodeforloadtesting!,onlyforTestcreationandTestdebugging.
Forloadtesting,useCLIMode(wasNONGUI):
jmeter-n-t[jmxfile]-l[resultsfile]-e-o[Pathtowebreportfolder]
&increaseJavaHeaptomeetyourtestrequirements:
ModifycurrentenvvariableHEAP="-Xms1g-Xmx1g-XX:MaxMetaspaceSize=256m"inthejmeterbatchfile
Check:https://jmeter.apache.org/usermanual/best-practices.html
上面的意思就是:不要使用GUI執行壓力測試,GUI僅用於壓力測試的建立和除錯;執行壓力測試請不要使用GUI。使用下面的命令來執行測試:
jmeter-n-t[jmxfile]-l[resultsfile]-e-o[Pathtowebreportfolder]
並且修改JMeter批處理檔案的環境變數:HEAP="-Xms1g -Xmx1g -XX:MaxMetaspaceSize=256m"
建立測試指令碼:
1.建立執行緒組:
在“測試計劃”上右鍵 【新增】-->【Threads(Users)】-->【執行緒組】。
設定執行緒數和迴圈次數。我這裡設定執行緒數為100,迴圈一次。
2.配置元件
在我們剛剛建立的執行緒組上右鍵 【新增】-->【配置元件】-->【HTTP請求預設值】。
配置我們需要進行測試的程式協議、地址和埠
當所有的介面測試的訪問域名和埠都一樣時,可以使用該元件,一旦伺服器地址變更,只需要修改請求預設值即可。
構造HTTP請求
在“執行緒組”右鍵 【新增-】->【samlper】-->【HTTP 請求】設定我們需要測試的API的請求路徑和資料。
新增HTTP請求頭
在我們剛剛建立的執行緒組上右鍵 【新增】-->【配置元件】-->【HTTP資訊頭管理器】。
因為我要傳輸的資料為json,所以設定一個 Content-Type:application/json
新增斷言
在我們剛剛建立的執行緒組上右鍵 【新增】-->【斷言】-->【響應斷言】。
根據響應的資料來判斷請求是否正常。
新增察看結果樹
在我們剛剛建立的執行緒組上右鍵 【新增】-->【監聽器】-->【察看結果樹】。
直接新增,然後點選執行
按鈕就可以看到結果了。
新增聚合報告
在我們剛剛建立的執行緒組上右鍵 【新增】-->【監聽器】-->【Summary Report】。
直接新增,然後點選執行
按鈕就可以看到結果了。
測試任務建立完成儲存即可
執行測試
執行測試計劃不能用GUI,需要用命令列來執行。
執行指令:
jmeter-n-ttetsplan\test.jmx-lresult\result.txt-e-owebreport
說明:
testplan/RedisLock.jmx為測試計劃檔案路徑
testplan/result/result.txt為測試結果檔案路徑
testplan/webreport為web報告儲存路徑。
web報告如下:
分析結果——主要看三個地方,請求數,響應時間,tps。