1. 程式人生 > >JMeter效能測試入門-不同型別執行緒組的使用

JMeter效能測試入門-不同型別執行緒組的使用

在上一篇部落格中,我們簡單介紹了JMeter在介面自動化方面的應用,本文主要介紹JMeter效能測試。

在做效能測試之前,我們來了解一下JMeter多個不同執行緒組的應用。首先,JMeter提供了三個基本的執行緒組,分別為:

  • Thread Group
  • setUp Thread Group
  • tearDown Thread Group

其他執行緒組可以通過整合外掛的方式使用,包括:

  • bzm - Arrivals Thread Group
  • bzm - Concurrency Thread Group
  • bzm - Free-Form Arrivals Thread Group
  • [email protected]
    - Stepping Thread Group
  • [email protected] - Ultimate Thread Group

以上,可以通過右鍵測試計劃->新增->Threads(Users),選擇對應的執行緒組進行新增。

1、Thread Group、setUp Thread Group和tearDown Thread Group

(1)Thread Group是我們通常使用的執行緒模擬使用者數,每一個執行緒就相當於一個虛擬的使用者;

(2)setUp Thread Group是一個特殊的執行緒組用於執行測試之前的初始化操作;

(3)tearDown Thread Group是一個特殊的執行緒組,用於執行測試結束之後的回收工作;

以上,setUp Thread Group和tearDown Thread Group分別在測試前後執行;例如,在我們在執行壓力測試前後,我們可以把登入操作放在setUp Thread Group,測試結束後將登出操作放在tearDown Thread Group;

詳細說明如下圖所示:

取樣器執行出錯之後如何處理:

continue:繼續執行

start next thread loop:開始下一個迴圈

stop thread:停止當前執行緒

stop test:等待當前取樣器執行結束後,停止整個測試

stop test now:立即停止所有測試

執行緒屬性:

number of threads:併發執行緒數,模擬多少個虛擬使用者操作

ramp-up period:達到指定執行緒需要的時間,即在該時間範圍內達到設定的執行緒數

loop count:迴圈次數,如果不設定具體的值,就會一直迴圈下去,直到手動停止

排程器設定:

duration:壓測持續時間

startup delay:啟動延遲時間,即點選啟動後在該時間之後才正式開始測試

2、Concurrency Thread Group、Stepping Thread Group

Concurrency Thread Group和Stepping Thread Group都可用於階梯式加壓測試但是由於Stepping Thread Group已經不再被官方推薦使用了,我們對Concurrency Thread Group進行簡單介紹。

target concurrency:目標併發數

ramp up time(min):加速時間

ramp-up steps count:加速步驟計數

hold target rate time(min):保持目標費率時間

thread iterations limit:執行緒迭代次數限制

log threads status into file:將執行緒狀態記錄到檔案

以上,以圖形的方式展示了執行緒加壓的過程。

例如:

100個執行緒組,加速時間為5分鐘,10個加速步驟,保持目標費率10分鐘:

10個加速步驟,每步10個執行緒組;

5分鐘/10步=0.5,每步0.5分鐘;即每0.5分鐘載入十個執行緒組,直到達到100個;

達到100個執行緒組之後,所有這些執行緒組將繼續執行,加壓十分鐘。

3、Ultimate Thread Group

該執行緒組與Concurrency Thread Group相類似,可以設定多個執行緒組的結合,各個時刻的執行結果都是幾個執行緒組的疊加。

start threads count:目標併發數

initial delay:啟動延遲時間

startup time:啟動目標執行緒所需時間

hold load for:以目標執行緒併發持續加壓時間

shutdown time:結束當前執行緒時間

4、Arrivals Thread Group

我們可以通過該執行緒組達到控制請求數的目的。

target rate:目標費率,每秒鐘多少個請求數

ramp up time(sec):達到目標費率需要的時間

ramp-up steps count:達到目標費率需要多少步

hold target rate time(sec):保持目標費率時間

thread iterations limit:執行緒迭代次數限制

log threads status into file:將執行緒狀態記錄到檔案

concurrency limit:最大併發數限制

例如:

目標費率為100,加速時間為10秒鐘,5個加速步驟,保持目標費率10秒鐘:

5個加速步驟,每步20增加個費率;

10s/5步=2,每步2秒鐘;即每2秒鐘載入20個費率,直到達到100;

達到100個費率之後,按照這個標準進行加壓10秒鐘;

以上,前十秒鐘按照設定不斷增加費率,請求數為(20+40+60+80+100)*2=600個;後十秒鐘,按照每秒100個費率計算,請求數為100*10=1000個;共計1600個請求數。

5、Free-Form Arrivals Thread Group

該執行緒組與Arrivals Thread Group類似,不過是通過設定起始值、終止值和持續時間來達到壓測目的。而且可以設定多個執行緒的集合。

相關推薦

JMeter效能測試入門-不同型別執行的使用

在上一篇部落格中,我們簡單介紹了JMeter在介面自動化方面的應用,本文主要介紹JMeter效能測試。 在做效能測試之前,我們來了解一下JMeter多個不同執行緒組的應用。首先,JMeter提供了三個基本的執行緒組,分別為: Thread Group setUp Thr

jmeter 傳送加密請求 beanshell斷言 執行間傳遞引數 jmeter bean shell斷言加密的響應資訊(加密介面測試二) jmeter 執行之間的引數傳遞(加密介面測試三)

    原文地址https://www.cnblogs.com/wnfindbug/p/5817038.html 最近在做http加密介面,請求頭的uid引數及body的請求json引數都經過加密再發送請求,加密方式為:ase256。所以,jmeter傳送請求前也需要對uid及jso

JMeter效能測試入門篇,超詳細

原文轉自:https://blog.csdn.net/lovesoo/article/details/78579547 1. Jmeter簡介 Apache JMeter是一款純java編寫負載功能測試和效能測試開源工具軟體。相比Loadrunner而言,JMeter小巧輕便且免費,逐漸成為了主流的效能測

效能測試:深入理解執行數,併發量,TPS,看這一篇就夠了

併發數,執行緒數,吞吐量,每秒事務數(TPS)都是效能測試領域非常關鍵的資料和指標。 那麼他們之間究竟是怎樣的一個對應關係和內在聯絡? 測試時,我們經常容易將執行緒數等同於表述為併發數,這一表述正確嗎? 本文就將對效能領域的這些關鍵概念做一次探討。 文章可能會比較長,希望您保持耐心看完。   1.

壓測JMeter---3、JMeter的元件---》3.2執行

壓測JMeter---3、JMeter的元件 3.2Threads Users(執行緒組)       Threads Users(執行緒組):效能測試需要模擬大量使用者的訪問,執行緒組就是用來完成該工作的,一個執行緒組可以看做一個虛擬的

Jmeter之Bean shell使用(三)——執行之間的引數傳遞

場景測試中,一次登入後做多個介面的操作,然後登入後的uid需要關聯傳遞給其他介面傳送請求的時候使用。 1、在登入介面響應資訊中提取uid欄位值   1>login請求 -->新增 -->後置處理器--> bean shell postprocessor   2>

JMeter命令模式下動態設定執行和持續時間等動態傳參

背景: 1.當通過JMeter的影象化介面執行效能壓測或者場景時候,JMeter介面很容易導致介面卡死或者無響應的情況(20個執行緒數就會卡死) 現象如下: 解決方案: jmeter -n -t D:\apache-jmeter-3.0\bin\log.j

2、《Jmeter基礎篇》 Thread Group(執行)到底怎麼用

故事背景 在 1、《Jmeter基礎篇》完成你的第一個jmeter自動化指令碼中,已經完成了我們的第一個指令碼。這一篇,我們先詳細解釋一下上篇我們提到的一個元件Thread Group(執行緒組),裡面的配置到底是什麼含義。 Thread Group(執

Jmeter——如何使得token在各執行間引用的遊刃有餘

在以前的博文中,有介紹過,jmeter基本的關聯,關聯就是將引數在各介面中動態傳參,使得介面指令碼變得靈活使用,非一次性指令碼。今天再來介紹一種jmeter全域性變數的設定與使用,可以讓指令碼運用更豐富,場景覆蓋更廣。 應用場景 在做效能測試或多業務場景測試時,將多個業務寫在多個執行緒組中,但都是一個正常的流

Jmeter系列(7)- 基礎執行Thread Group

如果你想從頭學習Jmeter,可以看看這個系列的文章哦 htTPS://www.cnblogs.com/poloyy/category/1746599.html   Thread Group基礎執行緒組介紹   Thread Group的簡單理解 執行緒組是一個測試計劃的開始點 在一

Jmeter系列(11)- 併發執行Concurrency Thread Group詳解

如果你想從頭學習Jmeter,可以看看這個系列的文章哦 https://www.cnblogs.com/poloyy/category/1746599.html   Concurrency Thread Group的介紹 Concurrency Thread Group提供了用於配置多個執行緒計劃

JMeter效能測試,完整入門篇(自己做測試了)

原文轉自:https://blog.csdn.net/lovesoo/article/details/78579547 Apache JMeter是一款純java編寫負載功能測試和效能測試開源工具軟體。相比Loadrunner而言,JMeter小巧輕便且免費,逐漸成為了主流的效能測試工具,是每個

jmeter 不同執行之間傳遞變數2

第一個指令碼: HTTP Request_新建出差申請單_登入,關聯出引數token、companyId、userId、userName 1.新增後置處理器:BeanShell PostProcessor   2.引數parameters:${token} 指令碼scripts: $

jmeter 不同執行之間傳遞變數

jemter編寫指令碼要點: 1.切記:BeanShell PostProcessor寫在關聯函式 Regular Expression Extractor的後面 2.header  HTTP Header Manager 和 BeanShell PreProcessor前置

Jmeter 測試計劃和執行 的簡單認識

1、頁面簡單介紹 我這裡選擇簡體中文   2、測試計劃(Test  Plan) 測試計劃描述了JMeter在執行時將執行的一系列步驟。完整的測試計劃將包含一個或多個執行緒組,邏輯控制器,樣本生成控制器,監聽器,定時器,斷言和配置元素。 備註:

JMeter壓力測試(流程骨架/搶紅包舉例實戰/多場景多執行混合併發/HTTPS請求)

效能測試裡面包含三個測試:基準測試、負載測試、壓力測試。基準測試就是用一個虛擬使用者(UV)進行一個對被測系統/物件的操作負載測試就是慢慢不斷地加UV壓力測試就是長時間連續執行系統給系統性能造成的影響,一直到測出問題為止一、JMeter進行HTTP協議介面的壓力測試1.新增執

JMeter效能測試,完整入門

1. Jmeter簡介 Apache JMeter是一款純java編寫負載功能測試和效能測試開源工具軟體。相比Loadrunner而言,JMeter小巧輕便且免費,逐漸成為了主流的效能測試工具,是每個測試人員都必須要掌握的工具之一。 本文為JMeter效能測

JMeter效能測試-安裝與入門

到Apache JMeter官網下載最新版本的JMeter Source壓縮包,解壓到指定目錄下即可。之後進入bin目錄,點選ApacheJMeter.jar檔案即可開啟Apache JMeter的圖形介面。 如果是在Mac系統下,可能會出現下圖所示錯誤,因為

Jmeter使用筆記(本文偏"介面測試工具")【GET/POST的HTTP請求、請求頭、響應斷言、正則表示式提取器、CSV讀取引數、跨執行傳遞變數】

一、執行一個HTTP請求自從畢業從事軟體測試行業,大多數時間都在跟各種API打交道,使用過的介面測試工具也有許多,本文記錄下各工具的使用心得,以及重點介紹我在工作中是如何使用Jmeter做測試的,都是在windows作業系統下進行。最開始使用postman,該工具的優點是可以

效能特性測試系列4——QT執行與std::thread(下)之QThread

 其實用法早就總結了,但是因為自身事務原因,一直沒有比較他們間的效率,甚至各種互斥量,條件變數之間的效率,更多是集中看了下他們各自的api和特點,所以估計以後還需要補充或者是另開一篇來講= =。 序  QThread的執行緒用法上與std::thr