Jmeter線程組默認包含三種:線程組、setUp線程組、tearDown線程組。線程組之間的執行順序為:setUp線程組->線程組->tearDown線程組。多數情況都是選用線程組,setUp線程組用于做一些腳本的前置準備,比如:跨線程組設計時,需要先登錄,需要連接數據庫等操作;tearDown線程組用于做一些腳本執行完后回收資源的操作;如:執行完腳本后需要注銷測試數據,關閉數據庫連接等操作。
一:在取樣器錯誤后要執行的動作:
1、繼續:該線程組下如果某個取樣器執行失敗,不會影響該線程組下的其他取樣器的執行。
例子1:
?
執行結果:第二個請求發生錯誤后,不會影響線程組下面的請求繼續執行,如圖:
2、啟動下一進程循環:當某個取樣器執行失敗,則當前循環下的取樣器不再繼續執行,進入下一次循環中執行
例子2:
?
執行結果:第二個請求發生錯誤后,下面的請求就不執行了,進入到下一次循環,總共循環了所設置的3次循環,如圖:
3、停止線程:當某個取樣器執行失敗,停止當前運行的線程,進入下一個線程執行
例子3:
?
執行結果:第二個請求發生錯誤后,正在執行的線程下的所有循環不再執行了,開始執行下一個線程,如圖:
4、停止測試:當某個取樣器執行失敗,會停止當前整個線程組的執行。注意:只是影響當前正在執行的線程組,不會影響不同線程組的執行。
例子4:
?
執行結果:第二個請求發生錯誤后,停止當前運行的線程組不再執行,如圖:
5、立即停止測試:當某個取樣器執行失敗,會立刻終止執行當前的線程組,正在執行的取樣器會被中斷。跟停止測試的結果非常相似,區別在于有些請求可能響應比較慢,該選項會立刻中斷正在執行中請求。
二:線程屬性
1、線程數:該屬性實際上就是模擬了用戶數量,設置了幾個線程數,就相當于模擬了幾個用戶。
2、Ramp-up時間:該屬性用于設定花多少秒時間去啟動所設置的線程數。
3、循環次數:該屬性模擬的是每個線程執行的循環次數。所以實際的取樣器執行數量=線程數*循環次數
4、same user on each iteration:每次迭代的都用同一個線程,如果勾選了,每次迭代所用的數據Cookie都一樣,如果不勾選,則每次迭代去的數據不一樣,保持默認即可
5、調度器-持續時間:控制測試腳本執行的持續時間,以秒為單位
6、調度器-啟動延遲:控制測試腳本延遲多少秒后開始執行
例子:
執行結果:每個請求執行2*3=6次,可以在測試計劃中添加一個【監聽器】->【聚合報告】,查看每個請求的執行情況
?
?