1.吞吐率(Requestspersecond)apache
服務器併發處理能力的量化描述,單位是reqs/s,指的是某個併發用戶數下單位時間內處理的請求數。某個併發用戶數下單位時間內能處理的最大請求數,稱之爲最大吞吐率。計算公式:總請求數/處理完成這些請求數所花費的時間,即Requestpersecond=Completerequests/Timetakenfortests服務器
2.併發鏈接數(Thenumberofconcurrentconnections)併發
某個時刻服務器所接受的請求數目,簡單的講,就是一個會話。分佈式
3.併發用戶數(Thenumberofconcurrentusers,ConcurrencyLevel)工具
注意區分這個概念和併發鏈接數之間的區別,一個用戶可能同時會產生多個會話,即鏈接數。oop
4.用戶平均請求等待時間(Timeperrequest)性能
計算公式:處理完成全部請求數所花費的時間/(總請求數/併發用戶數),即Timeperrequest=Timetakenfortests/(Completerequests/ConcurrencyLevel)測試
5.服務器平均請求等待時間(Timeperrequest:acrossallconcurrentrequests)google
計算公式:處理完成全部請求數所花費的時間/總請求數,即Timetakenfor/testsCompleterequests能夠看到,它是吞吐率的倒數。同時,它也=用戶平均請求等待時間/併發用戶數,即 Timeperrequest/ConcurrencyLevelspa
地址:http://jmeter.apache.org/download_jmeter.cgi
1】運行安裝目錄中的bin/jmeter.bat
2】新建testplan
3】添加 thread group
Number of Threads (Users) 線程數:發送請求的總次數
Ramp-up Period(in seconds):Jmeter達到指定最大線程數的時間
Loop Count :循環次數,Forever,線程組中的線程將不間斷的連續測試系統
調度器:主要用來指定該測試的一些時間信息,好比從幾點到幾點運行測試,若是到了指定時間測試沒有進行完成,測試也會被中止。
4】添加請求:sampler——》HTTP request
填寫:服務器IP、port、接口URL、請求方法、請求參數(POST請求參數只支持Body Data,不支持Parameters)
5】添加HTTP Header Manager:config element——》HTTP Header Manager
1)config element 配置單元:和Sample組件一塊兒工做,主要用來配置Sample如何來發起請求訪問服務器,特色是能夠把一些Sample的共同配置放在一個元素裏面方便管理,配置單元是有做用域的。做用域和樹的那個關係同樣越是上級節點的做用域越大,越是接近葉子節點的做用域就越小,能夠複寫上級做用域的配置。
2)填寫請求頭信息:儘可能使用fiddler抓包 獲取
3)Accept (Accept填寫不正確,會報錯406)
X-Requested-With
Content-Type 等
6】添加監聽
例如:
Summary Report:listener——》Summary Report
View Results Tree:listener——》View Results Tree
經常使用監聽:
1)斷言結果
2)查看結果樹
3)聚合報告
4)用表格查看結果
5)圖形結果
6)aggregate graph
7】JMeter安裝PerfMon插件
PerfMon用來監控Server的CPU、I/O、Memory等狀況。
1) 插件下載地址:http://code.google.com/p/jmeter-plugins/wiki/PerfMon
2)把JMeterPlugins.jar放到jmeter客戶端的jmeter/lib/ext下。
3)啓動jmeter,添加Listener時你就看到PerfMon Metrics Collectors了。
4)另外還須要把下載下來的PerfMon解壓後放到全部的被測試的服務器上,並運JMeterPlugins/serverAgent/startAgent.sh,默認工做在4444端口。
5) 使用PerfMon截圖:
在非GUI模式下運行Jmeter時指定把result保存到一個文件,很是必要
JMeter是由Java開發的,比較耗內存、佔CPU,因此在大併發下仍是須要分佈式
應用進場景:用一臺機器 Controller(稱爲JMeter客戶端)上的jmeter同時啓動另外幾臺機器 Agent(稱爲JMeter遠程服務器)上的jmeter。
1)保證jmeter客戶端和jmeter遠程服務器採用相同版本的jmeter和JDK,並配置環境變量。
2)jmeter客戶端和jmeter遠程服務器最好在同一個網段內。
3)在jmeter遠程服務器上運行JMETER_HOME/bin/jmeter-server (Linux/UNIX)或者JMETER_HOME/bin/jmeter-server.bat(Windows);在console上能夠看到對應機器的IP以及port;
4)在jmeter客戶端上修改/bin/jmeter.properties文件,找到屬性"remote_hosts",使用JMeter遠程服務器的IP地址做爲其屬性值。能夠添加多個服務器的IP地址,以逗號做爲分隔;port有可能會不一樣,但通常狀況下是相同的
若是配置了Controller的IP那麼會將controller機器也做爲一臺壓力機
#remote_hosts=127.0.0.1 remote_hosts=9.115.210.2:1099,9.115.210.3:1099,9.115.210.4:1099 # RMI port to be used by the server (must start rmiregistry with same port) server_port=1099
5) 在jmeter客戶端上啓動jmeter:
啓動controller的JMeter,進入JMeter GUI頁面,選擇菜單「運行」——》「遠程啓動」,分別啓動agent,也能夠直接選擇「遠程所有啓動」啓動全部agent的JMeter
1.儘可能關閉防火牆
2.肯定在controller機器上安裝jdk,版本和JMeter一致(兼容行)
3.Agent機器啓動 JMeter_server時,後臺提示:"could not find ApacheJmeter_core.jar"
解決辦法:添加環境變量JMETER_HOME,路徑爲bin目錄的上一級
4.JMeter分佈式控制過程當中,各個Agent啓動的線程數等於線程組中的配置
JMeter中,結果須要存放在.jtl文件。在下圖紅色區域填寫你須要要保存的位置以及文件名稱,例如: D:/testReuslt.jtl
.jtl文件能夠提供多中格式的編寫,通常咱們都是將其以CSV文件格式記錄。
進入JMeter後,選擇某個監聽器,點擊頁面中的configure按鈕。設置界面,能夠勾選Save Field Names(CSV),Save Assertion Failure Message等等
一、壓力測試概要
測試環境:
測試時間:
服務端配置:
客戶端配置:
測試工具:JMeter
二、測試說明
(1)名詞定義(時間單位ms)
Sample:本次測試場景共運行多少線程;
Average:平均響應時間;
Median:統計意義上的響應時間中值;
90% line:全部線程中90%的線程響應時間都小於xx的值;
Min:響應最小時間;
Max:響應最大時間;
Error:出錯率;
Throughput - 吞吐量以「requests/second、requests /minute、 requests /hour」來衡量。 時間單位已經被選取爲second,因此,顯示速率至少是1.0,即每秒1個請求。 當吞吐量被保存到CVS文件時,採用的是requests/second,因此30.0 requests/second 在CVS中被保存爲0.5Kb/sec - 以Kilobytes/seond來衡量的吞吐量
(2)描述測試數據,例如:
分別對以上頁面進行壓力測試 分別測試10,50,100,500,1000個線程,來模擬這麼多用戶併發訪問系統,每一個用戶循環訪問一次
三、測試結果分析(列出表格,主要是聚合報告各數據對比)
四、給出典型聚合報告(聚合報告名詞解釋如上二、(1)所述)
五、給出典型圖形結果
名詞解釋:
樣本數目是總共發送到服務器的請求數。
最新樣本是表明時間的數字,是服務器響應最後一個請求的時間。
吞吐量是服務器每分鐘處理的請求數。
平均值是總運行時間除以發送到服務器的請求數。
中間值是表明時間的數字,有一半的服務器響應時間低於該值而另外一半高於該值。
偏離表示服務器響應時間變化、離散程度測量值的大小,或者,換句話說,就是數據的分佈。
六、根據以上結果分析,給出總結,得出結論,說明調優勢
具體方法:先在GUI模式下建立TestPlan,保存爲jmx文件
命令行啓動jmeter:./ApacheJMeter -n -t testplan.jmx (選項-n表示non-GUI,-t指定TestPlan文件)
運行結束後Aggregate Report和PerfMon Metrics Collector就會保存在你指定的文件中
保存PerfMon Metrics Collector的文件拖到Jmerter GUI中就能夠看到CUP等使用情況拆線圖了