概述
我們在進行階梯式壓力測試的時候,聚合報告生成的結果是一個匯總數據。並不會階梯式的統計壓測性能數據。這樣我們就不能去對比不同階梯壓力下的性能數據變化趨勢。
期望
假設現在一共會加載100個線程,我期望聚合報告中分別展示1-20,20-40,40-60,60-80的四個階段的線程並發性能數據,而不是一共總體的統計數據。
實現
jmeter本身不具備這樣的工具,需要通過自定義代碼去實現。
1:添加階梯線程組
測試計划》添加》Threads》jp@gc - Stepping Thread Group (deprecated)
共5個階梯,每次加載20個,最終希望加載100個線程

添加BeahShell腳本
代碼實現了實時獲取活動的線程總數,根據活動線程總數賦值給變量Thread供后續事務調用
import org.apache.jmeter.threads.JMeterContextService;
int num = JMeterContextService.getNumberOfThreads();
System.out.println("當前活動線程數=" +num);
if(num<=20){
System.out.println("線程區間1-20");
vars.put("Thread","線程數1-20");
}
else if (num>20&&num<=40){
System.out.println("線程區間20-40");
vars.put("Thread","線程數20-40");
}
else if(num>40&&num<=60){
System.out.println("線程區間40-60");
vars.put("Thread","線程數40-60");
}
else {
System.out.println("線程區間60-100");
vars.put("Thread","線程數60-100");
}
添加事物控制器和請求
把opms的login請求放到事物控制器下面。事物控制器的名稱是獲取的Thread變量。中間也可以添加一些監聽器


執行壓測腳本,觀察聚合報告


