1、錄制測試計劃
1)打開jmeter,建立測試計劃(線程組-sampler(HTTP請求-監聽器(檢視結果樹、聚合報告)))
2)伺服器參數端口做了個參數化管理:
3)對于請求資料也做一個參數化管理:
4)最後運用參數化思想傳參,HTTP請求,填寫IP,端口,請求方法,路徑,參數名稱和值
5)檢視結果樹和聚合報告是用來檢視執行計劃是否成功以及各項名額的。
我增加了斷言,是以可以在聚合報告中清晰的看到壓測的結果:
聚合報告參數詳解:
Label:每個 JMeter 的 element(例如 HTTP Request)都有一個 Name 屬性,這裡顯示的就是 Name 屬性的值
#Samples:請求數——表示這次測試中一共發出了多少個請求,如果模拟10個使用者,每個使用者疊代10次,那麼這裡顯示100
Average:平均響應時間——預設情況下是單個 Request 的平均響應時間,當使用了 Transaction Controller 時,以Transaction 為機關顯示平均響應時間
Median:中位數,也就是 50% 使用者的響應時間
90% Line:90% 使用者的響應時間
Min:最小響應時間
Max:最大響應時間
Error%:錯誤率——錯誤請求數/請求總數
Throughput:吞吐量——預設情況下表示每秒完成的請求數(Request per Second),當使用了 Transaction Controller 時,也可以表示類似 LoadRunner 的 Transaction per Second 數
KB/Sec:每秒從伺服器端接收到的資料量,相當于LoadRunner中的Throughput/Sec
一般而言,性能測試中我們需要重點關注的資料有: #Samples 請求數,Average 平均響應時間,Min 最小響應時間,Max 最大響應時間,Error% 錯誤率及Throughput 吞吐量。
2、在linux環境執行測試計劃(打壓)
把腳本上傳到 linxu環境,可以在腳本裡面直接修改參數(并發數、運作時間、參數檔案的位置)
在 jmeter 的bin目錄下執行測試計劃,執行指令如下:
$ jmeter -n -t user-login.jmx -l login-result.jtl -e -o ResultReport
#user-login.jmx是腳本名字,login-result.jtl 是生成的日志檔案,ResultReport是生成的報告目錄
· -h 幫助 -> 列印出有用的資訊并退出
· -n 非 GUI 模式 -> 在非 GUI 模式下運作 JMeter
· -t 測試檔案 -> 要運作的 JMeter 測試腳本檔案
· -l 日志檔案 -> 記錄結果的檔案
· -r 遠端執行 -> 啟動遠端服務
· -H 代理主機 -> 設定 JMeter 使用的代理主機
· -P 代理端口 -> 設定 JMeter 使用的代理主機的端口号
執行指令後還需要觀察打壓過程是否有報錯,監控linux伺服器的cpu 、記憶體、負載等
3、html報告展示:
1)Dashboard:
2)overtime:
3) Response Time Percentiles Over Time (successful responses)
4)Active Threads Over Time
5)Bytes Throughput Over Time
6)Latencies Over Time
7)Connect Time Over Time
4、jemter如何做到監控伺服器的性能
1)如圖需要先下載下傳的jmeter插件。下載下傳連結:Download :: JMeter-Plugins.org
2)解壓壓縮包,找到解壓包中的JAR檔案,并拷貝到jmeter的lib/ext目錄下
3) 如上圖,把的兩個jar包放到JMeter的 lib/ext目錄下,重新開機jmeter,出現如下新增的元件,則說明啟動成功
4)常用元件介紹
jp@gc - Bytes Throughput Over Time:不同時間吞吐量展示(圖表) 聚合報告裡,Throughput是按請求個數來展示的,比如說1.9/sec,就是每s發送1.9個請求;而這裡的展示是按位元組Bytes來展示的圖表
jp@gc - Composite Graph: 混合圖表 在它的Graphs裡面可以設定多少個圖表一起展示,它可以同時展示多個圖表
jp@gc - Hits per Second:每秒點選量
jp@gc - PerfMon Metrics Collector:伺服器性能監測控件,包括CPU,Memory,Network,I/O等等
jp@gc - Reponse Latencies Over Time:記錄用戶端發送請求完成後,伺服器端傳回請求之前這段時間
jp@gc - Reponse Times Distribution: 顯示測試的響應時間分布,X軸顯示由時間間隔分組的響應時間,Y軸包含每個區間的樣本數
jp@gc - Transactions per Second: 每秒事務數,伺服器每秒處理的事務數
5)将serveragent-2.2.1.zip解壓,下載下傳連結:百度網盤 請輸入提取碼 密碼:2evc
liunx:運作指令*./startAgent.sh* 或 sh startAgent.sh 即可啟動ServerAgent服務
windows:運作 startAgent.bat
預設端口444
$ sh startAgent.sh
INFO 2020-08-28 15:43:45.254 [kg.apc.p] (): Binding UDP to 4444
INFO 2020-08-28 15:43:45.313 [kg.apc.p] (): Binding TCP to 4444
INFO 2020-08-28 15:43:45.316 [kg.apc.p] (): JP@GC Agent v2.2.0 started
這邊可能會遇到版本問題的錯誤:
java.lang.NoSuchMethodError: org.apache.jmeter.samplers.SampleSaveConfiguration.setFormatter(Ljava/t
6)如下圖完美的監控了CPU的性能:
5、關于jmeter性能測試标準
公式=使用者數* 使用者活躍數/ 伺服器數量/ 打壓時間/60秒=承受壓力的TPS
80%是活躍使用者數,這個也是行業統計,一般這麼認為。業務分散在幾台伺服器上,用使用者數➗伺服器數量 得到單台伺服器承受的使用者數,然後根據打壓時間 20分鐘,算出每秒的支援量。如果算出的數字比你打出來的tps大,說明目前系統承受的壓力滿足不了現網業務,如果結果比打壓的tps小,則滿足。
web性能測試各項通過名額: