jmeter學習指南之詳解jmeter執行緒組
執行緒組元件是任何一個測試計劃的開始點。在一個測試計劃中的所有元件都必須在某個執行緒下。所有的任務都是基於執行緒組。
一、Threads (Users)執行緒 使用者
上圖可以看到,jmeter有三個新增執行緒組的選項,名字不一樣, 但是建立之後,其介面是完全一樣的。
1、 setup thread group
一種特殊型別的ThreadGroup,用於在執行常規執行緒組之前執行一些必要的操作。在“setup thread group ”下提到的執行緒行為與普通執行緒組完全相同。不同的是執行順序---它會在普通執行緒組執行之前被觸發。
應用場景舉例:
A、測試資料庫操作功能時,用於執行開啟資料庫連線的操作。
B、測試使用者購物功能時,用於執行使用者的註冊、登入等操作。
2、teardown thread group
一種特殊型別的ThreadGroup,用於在執行常規執行緒組完成後執行一些必要的操作。在“teardown thread group ”下提到的執行緒行為與普通執行緒組完全相同。不同的是執行順序---它會在普通執行緒組執行之後被觸發。
應用場景舉例:
A、測試資料庫操作功能時,用於執行關閉資料庫連線的操作。
B、測試使用者購物功能時,用於執行使用者的退出等操作。
tips:
預設情況下,如果測試按預期完成,則TearDown執行緒組將不會執行。如果你想要執行它,則需要從Test Plan介面中選中核取方塊“Run tearDown Thread Groups after shutdown of main threads”。
-----------------------------------------------------------
可能你還是不太理解他們與普通的執行緒組有什麼不同。但是如果你用過junit,想必你應該對setup ,teardown這兩個字眼不陌生。
如果你熟悉loadrunner,那你應該知道loadrunner的指令碼中除了 action裡是真正的指令碼核心內容,還有進行初始化操作的init指令碼和測試完畢後對應的end指令碼塊。那麼這裡setup thread group 和 teardown thread group 就是分別指這兩部分。
3、 thread group(執行緒組)
這個就是我們通常使用的執行緒。通俗的講,一個執行緒組可以看做一個虛擬使用者組,執行緒組中的每個執行緒都可以理解為一個虛擬使用者。多個使用者同時去執行相同的一批次任務。每個執行緒之間都是隔離的,互不影響的。一個執行緒的執行過程中,操作的變數,不會影響其他執行緒的變數值。
二、執行緒組基本設定
線上程組介面中可以設定以下資料,進行控制執行緒組:
1、取樣器錯誤後要執行的動作:
繼續:忽略錯誤,繼續執行
Start Next Thread Loop: 忽略錯誤,執行緒當前迴圈終止,執行下一個迴圈。
停止執行緒:當前執行緒停止執行,不影響其他執行緒正常執行。
停止測試:整個測試會在所有當前正在執行的執行緒執行完畢後停止
Stop test now:整個測試會立即停止執行,當前正在執行的取樣器可能會被中斷。
這幾個配置項控制了“當遇到錯誤的時候測試的執行策略”是否會繼續執行。
2、設定執行緒數:
執行緒數也就是併發數,每個執行緒將會完全獨立的執行測試計劃,互不干擾。多個執行緒用於模仿對伺服器的併發訪問。
3、設定ramp-up period:
ramp-up period用於設定啟動所有執行緒所需要的時間。如果選擇了10個執行緒,並且ramp-up period是100秒,那麼JMeter將使用100秒使10個執行緒啟動並執行。每個執行緒將在前一個執行緒啟動後10(100/10)秒後啟動。
當這個值設定的很小、執行緒數又設定的很大時,在剛開始執行時會對伺服器產生很大的負荷。
下圖的執行緒配置中,5個執行緒,5秒啟動時間,每個執行緒執行兩次迴圈。那麼每個執行緒之間啟動延遲為 1 秒。
4、設定迴圈次數:
該項設定執行緒組在結束前每個執行緒迴圈的次數,如果次數設定為1,那麼JMeter在停止前只執行測試計劃一次。
5、Delay Thread creation until needed:
預設情況下,測試開始的時候,所有執行緒就被建立完了。如果勾選了此選項,那麼執行緒只會在合適的需要用到的時候建立。
三、執行緒組排程器設定
排程器配置可以更靈活的控制執行緒組執行的時間
1、持續時間(秒):
控制測試執行的持續時間,以秒為單位。
2、啟動延遲(秒):
控制測試在多久後啟動執行,以秒為單位。
3、啟動時間:
控制測試在某個時間點啟動。但這個配置會被“啟動延遲”配置覆蓋。
4、結束時間:
控制測試執行的結束時間。但這個配置會被“持續時間”配置覆蓋。
如果不想立即執行執行,可以透過排程器控制測試執行的開始時間和結束時間。
當測試開始時,如果設定了排程器,JMeter將等待直到到了開始時間。在每個週期結束,JMeter將會檢查是否到達結束時間,如果達到,停止執行;否則測試繼續執行直到達到了重複限制。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69942496/viewspace-2654040/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- jmeter學習指南之非GUI命令列執行詳解JMeterGUI命令列
- Jmeter-執行緒組下篇JMeter執行緒
- Jmeter系列(45)- 詳解 Jmeter 跨執行緒組取引數值的方法,免程式碼!JMeter執行緒
- 執行緒組之間的JMeter傳遞變數執行緒JMeter變數
- jmeter學習指南之管理CookiesJMeterCookie
- jmeter學習指南之關聯JMeter
- Jmeter(五十二) - 從入門到精通高階篇 - jmeter之跨執行緒組傳遞引數(詳解教程)JMeter執行緒
- JMeter學習筆記--詳解JMeter定時器JMeter筆記定時器
- JMeter執行緒組編輯區揭祕JMeter執行緒
- jmeter學習指南之聚合報告JMeter
- jmeter學習指南之Beanshell Sampler 常用方法JMeterBean
- 『動善時』JMeter基礎 — 38、JMeter中實現跨執行緒組關聯JMeter執行緒
- Jmeter-全域性變數跨執行緒組使用JMeter變數執行緒
- Jmeter 跨執行緒組引數傳遞的方法JMeter執行緒
- jmeter學習指南之常用函式的使用JMeter函式
- jmeter學習指南之操作 mysql 資料庫JMeterMySql資料庫
- jmeter之GUI執行原理JMeterGUI
- jmeter學習指南之OOM和監聽器使用JMeterOOM
- Jmeter系列(40)- 詳解 Jmeter CLI 模式JMeter模式
- jmeter學習指南之結果分析-圖形圖表JMeter
- jmeter學習指南之16個邏輯控制器JMeter
- jmeter學習指南之響應斷言和beanshell斷言JMeterBean
- JMeter:Linux上安裝&執行JMeterJMeterLinux
- jmeter學習指南之深入分析跨域傳遞cookieJMeter跨域Cookie
- jmeter學習指南之原始碼匯入 IntelliJ IDEAJMeter原始碼IntelliJIdea
- JMeter學習筆記——認識JMeter(1)JMeter筆記
- jmeter學習指南之最佳化指令碼JMeter指令碼
- jmeter學習指南之引數化CSV Data Set ConfigJMeter
- jmeter學習指南之Boundary Extractor和正規表示式提取器JMeter
- jmeter學習指南之Beanshell 呼叫 java 程式碼的三種方式JMeterBeanJava
- Jmeter關聯詳解JMeter
- JMeter學習資料JMeter
- Jmeter(四十四) - 從入門到精通高階篇 - Jmeter遠端啟動(本地執行+遠端執行)(詳解教程)JMeter
- jmeter學習指南之察看結果樹,你知道都有哪些功能嗎JMeter
- 關於Jmeter執行緒組的設定,看這一篇就夠了JMeter執行緒
- Jmeter系列(43)- 詳解 Jmeter 圖形化 HTML 壓測報告之 Charts 模組JMeterHTML
- Jmeter JDBC Request 使用詳解JMeterJDBC
- 壓測工具之JMeter之環境配置及執行JMeter