創建JMeter場景并導入本地JMeter腳本,即可發起一次壓測。本文為您介紹如何通過簡單配置,快速發起一次Web頁面壓測。
前提條件
已開通PTS服務。
本示例使用
Apache JMeter 5.6.3
來創建腳本,PTS支持JMeter 5.0 和 5.6.3。
方案概覽
若需使用JMeter壓測功能,首先需要在本地使用Apache JMeter創建一個壓測腳本。下面分兩個步驟,為您演示如何創建JMeter腳本并上傳到JMeter場景開啟壓測。
步驟一:使用Apache JMeter創建腳本
配置HTTP請求的屬性,包括服務器名稱或IP地址、端口號、HTTP方法等。
Basic頁簽配置項說明:
Protocol:示例選擇
http
。Server name or IP:接口域名,例如
www.example.com
。Port Number:服務端口號,例如
80
。Method:選擇
GET
。
運行測試計劃,并在View Results Tree中查看結果,返回以下信息表示上傳成功。
調試成功后,導出測試計劃文件,此處命名為
HTTP_Request.jmx
。
步驟二:創建JMeter場景并啟動壓測
登錄PTS控制臺,選擇 ,然后單擊JMeter壓測。
場景編排
重要配置項說明如下:
場景名:輸入
test-jmx
。上傳腳本文件:在場景裝配頁簽下,添加JMeter腳本文件
HTTP_Request.jmx
。JMeter 版本:選擇
5.6.3
。注意與創建腳本使用的Apache JMeter版本保持一致,否則可能會出錯。施壓配置
最大虛擬用戶數配置為
10
,壓測時長和遞增時長配置2
分鐘。其他配置保持默認即可。發起壓測涉及費用問題,建議您合理選擇施壓量級,如需了解更多信息,請參見計費概述、壓力模式與量級配置。場景調試
調試場景可驗證配置是否合理,避免壓測失敗,建議您先調試場景。如下所示即為請求成功,如果響應狀態不是
200
,請檢查API是否可以正常訪問。單擊保存去壓測,在溫馨提示頁面,選擇立即執行并勾選確認本次壓測已獲得準許并遵守當地法律,然后單擊啟動壓測。
分析壓測結果
壓測結束后,系統會自動獲取壓測數據,例如壓測場景指標、業務詳情數據、監控詳情數據和API采樣日志等,生成壓測報告。您可在壓測報告頁面查看。更多信息,請參見查看JMeter壓測報告。
常見問題
JMeter壓測失敗可能是因為PTS控制臺的JMeter和本地JMeter版本不匹配、jar包插件沒有上傳完全、腳本中配置了本地路徑的文件或JMeter壓測的壓力分配問題。相關解決方法如下所示:
雖然一般高版本JMeter能兼容低版本的,但不能保證有沒有隱藏問題,盡量保證PTS控制臺的JMeter和本地JMeter版本一致,本地調通后上云壓測。并且不支持JMeter4.x。
本地調試用到的jar包插件和數據文件要隨著腳本一起上傳到JMeter場景中,不能遺漏。
腳本中用到文件時,本地調試時寫的本地文件路徑要統統刪掉,只保留文件名,這是因為PTS施壓機和本地文件系統不一樣,不去掉會出錯。
為了使壓力達到控制臺上設定的目標,PTS會在壓測時對腳本進行改寫(不會覆蓋原來的腳本)。改寫方法為:
PTS控制臺上配置的并發數,除去setUp Thread Group和tearDown Thread Group中的線程數(我們不會改寫這兩種線程組的配置, 只會改寫普通的Thread Group),剩下的線程數(如果小于0則為0)會在普通線程組中進行分配。此時假如腳本中配置了三個普通線程組,線程數比例為a:b:c。場景中配置500并發,并且沒有setup thread group和tear down thread group,那么500并發將會按照a:b:c的比例分配到這些線程組上。 基于以上信息,請在壓測前明確腳本中的線程組類型。如果您的腳本中只有一個線程組,腳本中的線程組配置的線程數寫1即可。如果有多個線程組且希望線程組的壓力均等,則將每個線程組的線程數配置為相同的數字。如果希望每個線程組的壓力成比例分配,就將每個線程組的線程數成比例配置。