Apache JMeter是Apache的開源壓測工具,支援參數化、斷言等功能。其豐富的開源生態提供了各種協議和控制器的擴充,同時可以通過自訂指令碼編寫參數處理等邏輯。PTS支援JMeter原生引擎的壓測,並在此基礎上,為您提供便捷的橫向擴充能力,同時結合CloudMonitor整合功能持續補強JMeter在高並發和監控定位方面的能力和體驗。本文介紹PTS原生JMeter壓測的優勢和操作步驟。
步驟一:建立JMeter情境
上傳JMeter壓測檔案。
登入PTS控制台,選擇,然後單擊JMeter壓測。
在建立JMeter情境頁面,輸入情境名。
在情境裝配地區,上傳一個YAML格式的JMeter壓測檔案,檔案名稱不包含空白字元,尾碼名為
jmx。JMX壓測檔案上傳後,PTS會自動為您補充缺失的外掛程式,具體詳情請參見JMeter外掛程式自動補全。
單擊上傳檔案,上傳其他檔案,如csv格式的資料檔案,jar格式的外掛程式等。
重要上傳的同名檔案將覆蓋之前上傳的檔案。如需對比檔案,可在該檔案的操作列,擷取MD5值,與您本地檔案的MD5值進行對比,確認檔案是否變更。
使用限制:
JMX指令檔:檔案大小不超過2 MB。您可上傳多個JMX指令檔,但是壓測僅能使用一個JMX指令碼,發起壓測前必須選中一個JMX指令檔。
JAR檔案:檔案大小不超過10 MB。上傳之前,請在本地JMeter環境調試JAR檔案,確保調試通過。
CSV檔案:檔案大小不超過60 MB,超過60MB請使用OSS資料來源功能引入檔案。非JMX檔案總數不超過20個。
重要準備CSV檔案時,請不要直接修改XLSX檔案的尾碼。推薦使用Excel、Numbers等軟體匯出,程式產生可以使用Apache Commons CSV。
如果JMX指令碼中關聯了資料檔案,請務必將CSV Data Set Config中的Filename改為檔案名稱本身,不要帶路徑(如下圖所示)。否則會讀取不到資料檔案。同理,如果使用了__CSVRe函數或者在JAR中有指定檔案,均需使用檔案名稱。

如果您上傳了多個JMX檔案,選中一個JMX檔案作為發起該壓測情境使用的JMeter指令碼。
(可選)為CSV檔案選中切分檔案,可以保證該檔案的資料在每個施壓機不重複。不選中該項,每個施壓機上使用同一份資料。具體操作,請參見Use CSV parameter files in JMeter。
(可選)如果您上傳的指令碼中有分布式適配組件,例如定時器(Timer)、控制器(Controller)等,可以對其進行多施壓IP的分布式適配設定,有利於更精準、有效地進行效能測試。
設定同步定時器。若您上傳的JMeter指令碼中內建定時器(Timer),需要選擇指令碼中的設定值是全域生效或單機生效。
設定常數輸送量定時器。若您上傳的JMeter指令碼中內建控制器(Controller),需要選擇指令碼中的設定值是全域生效或單機生效。具體操作,請參見常數輸送量分布式使用樣本。
選擇是否使用依賴環境。具體操作,請參見JMeter environment management。
若選擇是,則需要選擇環境管理中已建立好的環境。
若選擇否,則需要選擇JMeter版本。目前支援Apache JMeter 5.0和Java 11。
施壓配置。
您可以參考壓力模式與量級配置完成施壓配置。
(可選)進階設定。
進階設定包含日誌採樣率設定、DNS配置和分布式適配組件設定。預設關閉,如果需要配置,請開啟開關。
進階設定關閉的狀態
將會使用預設效果。即日誌採樣率1%;每次迴圈清空DNS緩衝開關不開啟,使用系統DNS解析器,同步定時器和常數輸送量定時器均為單機生效。

進階設定開啟的狀態
日誌採樣率設定
可自訂採樣日誌的採樣率,預設採樣率為1%。 若需降低採樣率,請填寫
(0,1]區間的值;若需提升採樣率,請填寫(1,50]區間內可被10整除的數,例如20。重要當指定大於1%的採樣率時,會額外收取rate%的費用。例如採樣率為20%會額外收取20%*VUM的費用。詳情請參見Pay-as-you-go。
DNS緩衝設定
可選擇每次訪問請求是否清空DNS緩衝,若需要清空DNS緩衝,可選擇使用系統DNS解析器或者自訂DNS解析器。
可能需要使用自訂DNS解析器的情況:
公網環境中的壓測
當壓測業務請求需要通過公網訪問,為了不影響線上業務,您可以使用測試環境的IP地址與公網網域名稱綁定,實現壓測流量和線上流量的隔離。
阿里雲VPC內網環境中的壓測
阿里雲VPC內網壓測是指壓測使用者位於阿里雲VPC內網中的服務。為了壓測時不用修改壓測介面的網域名稱,您可以在情境中為任意一個網域名稱綁定阿里雲VPC內網IP地址,實現在阿里雲內網壓測的目的。更多資訊,請參見阿里雲VPC內網壓測。
分布式適配組件設定
如果您上傳的指令碼中有分布式適配組件,例如定時器(Timer)、控制器(Controller)等,可以對其進行多施壓IP地址的分布式適配設定,有利於更精準、有效地進行效能測試。
設定同步定時器。若您上傳的JMeter指令碼中內建定時器(Timer),需要選擇指令碼中的設定值是全域生效或單機生效。

全域生效:指令碼中設定值為叢集整體閾值,會根據使用到的IP數來拆分到單機集合閾值上(即單施壓機閾值為指令碼中值/IP數)。假設共使用到2個施壓IP,指令碼配置集合閾值為1000,單機閾值即為500。
單機生效:指令碼中設定值為單台施壓機的閾值,不會替換指令碼內容,此時需要注意並發量與配置值是否匹配。假設共使用到2個施壓IP,指令碼配置集合閾值為1000,單機閾值即為1000,施壓叢集整體為2000。
設定常數輸送量定時器。若您上傳的JMeter指令碼中內建控制器(Controller),需要選擇指令碼中的設定值是全域生效或單機生效。

全域生效:指令碼中設定值為叢集整體閾值,會根據使用到的施壓IP數來拆分到單機輸送量目標值上(即單施壓機閾值為指令碼中值/IP數),假設使用到2台施壓IP地址,並發為100,指令碼上僅1個線程組,其輸送量目標為每分鐘100,計算模式為當前線程,此時情境的總目標每分鐘輸送量為2×(100並發/2 )×(100/2)=5000。
單機生效:指令碼中設定值為單台施壓機的目標值,不會替換指令碼內容,需要注意並發量級與配置值是否匹配。假設使用到2台施壓IP,並發為100,指令碼上僅1個線程組,其輸送量目標為每分鐘100,計算模式為當前線程,此時情境的總目標每分鐘輸送量為2×(100並發/2)×100=10000。
(可選)添加雲資源監控。
通過添加監控的方式,您可以在壓測過程和壓測報告中快速查看相應的監控資料。預設關閉,如需要配置,請開啟開關。
(可選)添加其他資訊。
您可在此添加壓測負責人和備忘資訊。預設關閉,如需配置請開啟開關。
步驟二:開始壓測
調試情境可提前檢查網路連通、外掛程式完整性、指令碼配置的正確性等問題,避免壓測啟動失敗。調試情境可驗證配置是否合理,避免壓測失敗。若需進行情境調試,單擊調試情境即可進入情境調試頁面。更多資訊,請參見調試情境。
單擊儲存去壓測,在溫馨提示頁面,選擇立即執行並勾選確認本次壓測已獲得准許並遵守當地法律,然後單擊啟動壓測。
(可選)壓測過程中,您可以監控壓測資料,進行情境調速等操作。
資料資訊
資料資訊
說明
即時VUM
本次壓測消耗的資源總數,單位是VUM(每虛擬使用者每分鐘)。
請求成功率(%)
所有Agent統計周期內全情境請求成功率。
平均RT(成功/失敗)
成功RT Avg(ms):所有成功請求的平均RT。
失敗RT Avg(ms):所有失敗請求的平均RT。
TPS
所有Agent統計周期內的總請求數除以時間(單位:秒(s))所得。
異常數
請求異常的數量。導致請求異常的可能原因較多,常見的例如連線逾時、請求逾時等。
流量(請求/響應)/s
施壓機發送請求的流量和接收響應的流量。
並發(當前/最大)
施壓的並發值。若在壓測過程中設定了情境調速,會分別顯示當前並發值和配置最大並發值。如果在預熱階段則未達到配置並發,預熱結束後即為配置的並發值。
單擊調速,並輸入需要並發的數字,可在壓測過程中進行情境並發的調整。
總請求數
整個情境在壓測過程中發出去的總請求數。
說明監控資料的來源基於Backend Listener進行了簡單的彙總計算。施壓Agent的統計採樣周期是15s,資料匯總計算的周期也是15s,故可能會有資料延遲的情況。
配置資訊
配置資訊頁羅列了情境配置中的基本資料,包括壓力來源、配置時間長度、流量模型、指定IP數等資訊。
壓測資訊
在壓測詳情頁簽下,單擊單個鏈路的右側查看圖表,查看其TPS、成功率、回應時間、流量等即時資料。
單擊施壓機效能頁簽,顯示了壓測過程中所有施壓機的CPU使用率、Load5、記憶體利用率、網路流量的時序曲線等資訊。您還可以篩選查看特定施壓機的效能資訊。
若您添加了ECS監控、SLB監控、RDS監控和ARMS監控等,可以單擊雲資源監控頁簽,查看相關監控資訊。
採樣日誌詳情
選擇採樣日誌頁簽,可根據壓測Sampler、響應狀態、RT範圍等篩選日誌,查看日誌詳情。
根據壓測Sampler、響應狀態等篩選日誌。單擊對應的日誌操作列的單擊查看詳情。
在日誌詳情對話方塊的General 頁簽下,查看日誌欄位和欄位值。在對話方塊右上方切換顯示格式:通用或HTTP協議樣式。
如果JMeter指令碼中配置了從HTML檔案嵌入資源(Embedded Resources from HTML Files),日誌詳情中會出現子請求詳情頁簽。
通過選擇特定的子請求,可篩選出對應的請求日誌。
Timing瀑布流頁簽,顯示總請求和每一個子請求的耗時情況。
調用鏈視圖頁簽展示了被壓測介面上下遊的調用鏈路詳情。
步驟三:查看壓測報告
在壓測停止之後,系統會自動收集壓測過程中的資料,形成壓測報告,展現JMeter壓測情境和具體指令的壓測動態資訊。
登入PTS控制台,選擇。
在報告列表頁面,選擇JMeter情境類型。在目標報告的操作列,單擊查看報告。具體操作,請參見查看JMeter壓測報告。
說明趨勢圖中,每個點資料的統計採樣周期是15s,最終資料報告上可能初期會有資料延遲的情況。壓測報告資料保留30天,如有需要可匯出報告本地儲存。
(可選)步驟四:匯出壓測報告
如您需要,可以將當前壓測報告匯出至本地。
在報告詳情頁面,單擊報告匯出。
選擇有浮水印版本或無浮水印版本,可將壓測報告(PDF)下載至本地。
JMeter壓測的情境樣本
JMeter壓測適用於以下幾種情境:
需要高並發分布式壓測。
需要壓測時觀測即時秒級監控,壓測後自動產生壓測報告。
需要統一管理JMeter指令碼、JMeter環境依賴。
具體使用情境樣本,請參見使用JMeter壓測類比上傳。