全部產品
Search
文件中心

Performance Testing Service:JMeter壓測快速入門

更新時間:Feb 16, 2025

建立JMeter情境並匯入本地JMeter指令碼,即可發起一次壓測。本文為您介紹如何通過簡單配置,快速發起一次Web頁面壓測。

前提條件

  • 開通PTS服務

  • 本樣本使用Apache JMeter 5.6.3來建立指令碼,PTS支援JMeter 5.0 和 5.6.3。

方案概覽

若需使用JMeter壓測功能,首先需要在本地使用Apache JMeter建立一個壓測指令碼。下面分兩個步驟,為您示範如何建立JMeter指令碼並上傳到JMeter情境開啟壓測。

步驟一:使用Apache JMeter建立指令碼

  1. 配置HTTP請求的屬性,包括伺服器名稱或IP地址、連接埠號碼、HTTP方法等。image

    Basic頁簽配置項說明:

    • Protocol:樣本選擇http

    • Server name or IP:介面網域名稱,例如www.example.com

    • Port Number:服務連接埠號碼,例如80

    • Method:選擇GET

  2. 運行測試計劃,並在View Results Tree中查看結果,返回以下資訊表示上傳成功。image

  3. 調試成功後,匯出測試計劃檔案,此處命名為HTTP_Request.jmx

步驟二:建立JMeter情境並啟動壓測

  1. 登入PTS控制台,選擇效能測試 > 建立情境,然後單擊JMeter壓測

  2. 情境編排image

    重要配置項說明如下:

    情境名:輸入test-jmx

    上傳指令檔:在情境裝配頁簽下,添加JMeter指令檔HTTP_Request.jmx

    JMeter 版本:選擇5.6.3。注意與建立指令碼使用的Apache JMeter版本保持一致,否則可能會出錯。

  3. 施壓配置

    最大虛擬使用者數配置為10,壓測時間長度和遞增時間長度配置2分鐘。其他配置保持預設即可。發起壓測涉及費用問題,建議您合理選擇施壓量級,如需瞭解更多資訊,請參見計費概述壓力模式與量級配置image

  4. 情境調試

    調試情境可驗證配置是否合理,避免壓測失敗,建議您先調試情境。如下所示即為請求成功,如果響應狀態不是200,請檢查API是否可以正常訪問。image

  5. 單擊儲存去壓測,在溫馨提示頁面,選擇立即執行並勾選確認本次壓測已獲得准許並遵守當地法律,然後單擊啟動壓測

分析壓測結果

壓測結束後,系統會自動擷取壓測資料,例如壓測情境指標、業務詳情資料、監控詳情資料和API採樣日誌等,產生壓測報告。您可在壓測報告頁面查看。更多資訊,請參見查看JMeter壓測報告image

常見問題

JMeter壓測失敗可能是因為PTS控制台的JMeter和本地JMeter版本不匹配、jar包外掛程式沒有上傳完全、指令碼中配置了本地路徑的檔案或JMeter壓測的壓力分配問題。相關解決方案如下所示:

  1. 雖然一般高版本JMeter能相容低版本的,但不能保證有沒有隱藏問題,盡量保證PTS控制台的JMeter和本地JMeter版本一致,本地調通後上雲壓測。並且不支援JMeter4.x。

  2. 本地調試用到的jar包外掛程式和資料檔案要隨著指令碼一起上傳到JMeter情境中,不能遺漏。

  3. 指令碼中用到檔案時,本地調試時寫的本地檔案路徑要統統刪掉,只保留檔案名稱,這是因為PTS施壓機和本地檔案系統不一樣,不去掉會出錯。

  4. 為了使壓力達到控制台上設定的目標,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即可。如果有多個線程組且希望線程組的壓力均等,則將每個線程組的線程數配置為相同的數字。如果希望每個線程組的壓力成比例分配,就將每個線程組的線程數成比例配置。

相關文檔