溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

jmeter學(xué)習(xí)指南之詳解jmeter線程組

發(fā)布時間:2020-08-16 16:44:49 來源:網(wǎng)絡(luò) 閱讀:505 作者:小強測試 欄目:軟件技術(shù)

線程組元件是任何一個測試計劃的開始點。在一個測試計劃中的所有元件都必須在某個線程下。所有的任務(wù)都是基于線程組。


一、Threads (Users)線程 用戶
jmeter學(xué)習(xí)指南之詳解jmeter線程組
上圖可以看到,jmeter有三個添加線程組的選項,名字不一樣, 但是創(chuàng)建之后,其界面是完全一樣的。

1、 setup thread group  

一種特殊類型的ThreadGroup,用于在執(zhí)行常規(guī)線程組之前執(zhí)行一些必要的操作。在“setup thread group ”下提到的線程行為與普通線程組完全相同。不同的是執(zhí)行順序---它會在普通線程組執(zhí)行之前被觸發(fā)。

應(yīng)用場景舉例:

A、測試數(shù)據(jù)庫操作功能時,用于執(zhí)行打開數(shù)據(jù)庫連接的操作。

B、測試用戶購物功能時,用于執(zhí)行用戶的注冊、登錄等操作。

2、teardown thread group 

一種特殊類型的ThreadGroup,用于在執(zhí)行常規(guī)線程組完成后執(zhí)行一些必要的操作。在“teardown thread group ”下提到的線程行為與普通線程組完全相同。不同的是執(zhí)行順序---它會在普通線程組執(zhí)行之后被觸發(fā)。

應(yīng)用場景舉例:

A、測試數(shù)據(jù)庫操作功能時,用于執(zhí)行關(guān)閉數(shù)據(jù)庫連接的操作。

B、測試用戶購物功能時,用于執(zhí)行用戶的退出等操作。

tips:

默認(rèn)情況下,如果測試按預(yù)期完成,則TearDown線程組將不會運行。如果你想要運行它,則需要從Test Plan界面中選中復(fù)選框“Run tearDown Thread Groups after shutdown of main threads”。

-----------------------------------------------------------

可能你還是不太理解他們與普通的線程組有什么不同。但是如果你用過junit,想必你應(yīng)該對setup ,teardown這兩個字眼不陌生。

如果你熟悉loadrunner,那你應(yīng)該知道loadrunner的腳本中除了   action里是真正的腳本核心內(nèi)容,還有進行初始化操作的init腳本和測試完畢后對應(yīng)的end腳本塊。那么這里setup thread group 和 teardown  thread group 就是分別指這兩部分。

3、 thread group(線程組)

     這個就是我們通常使用的線程。通俗的講,一個線程組可以看做一個虛擬用戶組,線程組中的每個線程都可以理解為一個虛擬用戶。多個用戶同時去執(zhí)行相同的一批次任務(wù)。每個線程之間都是隔離的,互不影響的。一個線程的執(zhí)行過程中,操作的變量,不會影響其他線程的變量值。


二、線程組基本設(shè)置

在線程組界面中可以設(shè)置以下數(shù)據(jù),進行控制線程組:

1、取樣器錯誤后要執(zhí)行的動作:

繼續(xù):忽略錯誤,繼續(xù)執(zhí)行

Start Next Thread Loop: 忽略錯誤,線程當(dāng)前循環(huán)終止,執(zhí)行下一個循環(huán)。

停止線程:當(dāng)前線程停止執(zhí)行,不影響其他線程正常執(zhí)行。

停止測試:整個測試會在所有當(dāng)前正在執(zhí)行的線程執(zhí)行完畢后停止

Stop test now:整個測試會立即停止執(zhí)行,當(dāng)前正在執(zhí)行的取樣器可能會被中斷。

這幾個配置項控制了“當(dāng)遇到錯誤的時候測試的執(zhí)行策略”是否會繼續(xù)執(zhí)行。

2、設(shè)置線程數(shù):

線程數(shù)也就是并發(fā)數(shù),每個線程將會完全獨立的運行測試計劃,互不干擾。多個線程用于模仿對服務(wù)器的并發(fā)訪問。

3、設(shè)置ramp-up period:

ramp-up period用于設(shè)置啟動所有線程所需要的時間。如果選擇了10個線程,并且ramp-up period是100秒,那么JMeter將使用100秒使10個線程啟動并運行。每個線程將在前一個線程啟動后10(100/10)秒后啟動。

當(dāng)這個值設(shè)置的很小、線程數(shù)又設(shè)置的很大時,在剛開始執(zhí)行時會對服務(wù)器產(chǎn)生很大的負荷。

下圖的線程配置中,5個線程,5秒啟動時間,每個線程執(zhí)行兩次循環(huán)。那么每個線程之間啟動延遲為 1 秒。
jmeter學(xué)習(xí)指南之詳解jmeter線程組

jmeter學(xué)習(xí)指南之詳解jmeter線程組


4、設(shè)置循環(huán)次數(shù):

該項設(shè)置線程組在結(jié)束前每個線程循環(huán)的次數(shù),如果次數(shù)設(shè)置為1,那么JMeter在停止前只執(zhí)行測試計劃一次。

5、Delay Thread creation until needed:

 默認(rèn)情況下,測試開始的時候,所有線程就被創(chuàng)建完了。如果勾選了此選項,那么線程只會在合適的需要用到的時候創(chuàng)建。

三、線程組調(diào)度器設(shè)置

調(diào)度器配置可以更靈活的控制線程組執(zhí)行的時間
jmeter學(xué)習(xí)指南之詳解jmeter線程組
1、持續(xù)時間(秒):

控制測試執(zhí)行的持續(xù)時間,以秒為單位。

2、啟動延遲(秒):

控制測試在多久后啟動執(zhí)行,以秒為單位。

3、啟動時間:

控制測試在某個時間點啟動。但這個配置會被“啟動延遲”配置覆蓋。

4、結(jié)束時間:

控制測試執(zhí)行的結(jié)束時間。但這個配置會被“持續(xù)時間”配置覆蓋。

如果不想立即執(zhí)行執(zhí)行,可以通過調(diào)度器控制測試執(zhí)行的開始時間和結(jié)束時間。

當(dāng)測試開始時,如果設(shè)置了調(diào)度器,JMeter將等待直到到了開始時間。在每個周期結(jié)束,JMeter將會檢查是否到達結(jié)束時間,如果達到,停止運行;否則測試?yán)^續(xù)運行直到達到了重復(fù)限制。


向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI