Jmeter效能測試實戰

TestingGDR發表於2018-10-25

測試需求:測試20個使用者訪問https://www.baidu.com在負載達到30QPS時的平均響應時間。

QPS:QueryperSecond,每秒查詢率。一臺查詢伺服器每秒能夠處理的查詢次數.在因特網上,作為域名系統伺服器的效能經常用每秒查詢率來衡量。

測試步驟:

第一步:新增執行緒組

  執行緒組主要包括三個引數:執行緒數、準備時長(Ramp-UpPeriod(nseconds))、迴圈次數。

  • 執行緒數:虛擬使用者數。一個虛擬使用者佔用一個跡程或執行緒、設定多少虛擬使用者數在這裡也就是設定多少個執行緒數;
  • 準備時長(單位為s):設定的虛擬使用者數需要多長時間全部啟動、如果執行緒數為20準備時長為10,那麼需要10秒鐘啟動20個執行緒、也就是每秒鐘啟動2個執行緒;
  • 迴圈次數:每個執行緒傳送請求的次數。如果執行緒數為20,迴圈次數為5,那麼每個執行緒傳送5次請求。總請求數為2045=100。如果勾選了“永遠“,那麼所有執行緒會一直髮送請求,一到選擇停止執行指令碼

第二步:增添HTTP請求

  一個HTTP請求有著許多的配置引數,下面將詳細介紹:

  • 名稱:本屬性用於標識一個取樣器,建議使用一個有意義的名稱。
  • 註釋:對於測試沒有任何作用,僅使用者記錄使用者可讀的註釋資訊。
  • 伺服器名稱或IP:HTTP請求傳送的目標伺服器名稱或IP地址。
  • 埠號:目標伺服器的埠號,關認值為80。
  • 方法:傳送HTTP請求的方法,可用方法包括GET、POST、HEAD、PUT、OPTIONS、TRACE、DELETE等。
  • Content encoding:內容的編碼方式,預設值為iso8859
  • 路徑:目標URL路徑(不包括伺服器地址和埠)
  • 自動重定向:如果選中該選項,當傳送HTTP請求後得到的響應是302/301時,JMeter自動重定向到新的頁面。
  • Use keep Alive:當該選項被選中時,Jmeter和目標伺服器之間使用Keep-Alive方式(又稱持久連線、連線重用)進行HTTP通訊,預設選中。
  • Usemultipart/from-datafor HTTP POST:當傳送HTTPPOST請求時,使用Use multipart/from-data方法傳送,預設不選中。
  • 同請求一起傳送引數:在請求中傳送URL引數,對於帶引數的URL,Jmeter提供了一個簡單的對引數化的方法。使用者可以將URL中所有引數設定在本表中,表中的每一行是一個引數值對(對應RUL中的名稱1=值1)。
  • 同請求一起傳送檔案:在請求中傳送檔案,通常HTTP檔案上傳行為可以通過這種方式模擬。
  • 從HTML檔案獲取所有有內含的資源:當該選項被選中時,Jmeter在發出HTTP請求並獲得響應的HTML檔案內容後,還對該HTML進行分析並獲取HTML中包括的所有資源(圖片、flash等),預設不選中,如果使用者只希望獲取頁面中的特定資源,可以在下方的Embedded URLsmustmatch文字框中填入需要下載的特定資源表示式,這樣,只有能匹配指定正規表示式的URL指向資源會被下載。
  • 用作監視器:此取樣器被當成監視器,在Monitor Results Listener中可以直接看到基於該取樣器的圖形化統計資訊。預設為不選中。
  • Save response as MD5 hash?:選中在執行時僅記錄服務端響應資料的MD5值,而不記錄完整的響應資料。在需要進行資料量非常大的測試時,建議選中該項以減少取樣器記錄響應資料的開銷。

  Tips預設時間單位是毫秒,報告輸出檔案字尾.jtl。

在此向大家推薦一個學習交流群:175317069

第三步:設定OPS限制

  Jmeter提供了一個非常有用的定時器,稱為Constant Throughput Timer(常數吞吐量定時器),該定時器可以方便地控制給定的取樣器傳送請求的吞吐量。

  Constant Throughput Timer的主要屬性介紹:

Target throughput(insamplesperminute):目標吞吐量。注意這裡是每分鐘傳送的請求數,實際填的數值為:60*QPS其次Calculate Throughput based on:有5個選項,分別是:

  • This thread only:控制每個執行緒的吞吐量,選擇這種模式時,總的吞吐量為設定的target Throughput乘以該執行緒的數量。
  • All active threads:設定的target Throughput將分配在每個活躍執行緒上,每個活躍執行緒在上一次執行結束後等待合理的時間後再次執行。活躍執行緒指同一時刻同時執行的執行緒。
  • All active threads(shared):與All active threads的選項基本相同,唯一的區別是,每個活躍執行緒都會在所有活躍執行緒上一次執行結束後等待合理的時間後再次執行。
  • All active threads in current thread group:設定的target Throughput將分配在當前執行緒組的每一個活躍執行緒上,當測試計劃中只有一個執行緒絕時,該選項和All active threads選項的效果完全相同。
  • All cative threads in current thread group(shared):與All active threads in current thread group基本相同,唯一的區別是,每個活躍執行緒都會在所有活躍執行緒的上一次執行結束後等待合理的時間後再次執行。

第四步:新增監視器

指令碼的主要部分設定完成後,需要通過某種方式獲得效能測試中的測試結果,在本例中,我們關心的是請求的響應時間。

Jmeter中使用監聽器元件收集取樣器記錄的資料並以視覺化方式來呈現。Jmeter有各種不同的監聽器型別,因為上HTTP請求,我們可在新增聚合報告,更為直觀的檢視測試結果。

新增聚合報告,右鍵點選執行緒組,在選單(新增--->監聽器--->聚合報告)中選擇聚合報告。

新增檢視結果樹(新增--->監聽器--->檢視結果樹)

第五步:執行指令碼

第六步:聚合報告分析

結語 

對測試技術感興趣的同學,歡迎加QQ群175317069,一起學習,相互討論。

群內已經有小夥伴將知識體系整理好(原始碼,筆記,PPT,學習視訊),歡迎加群免費領取

加QQ群175317069,免費領取資料

相關文章