jmeter之BeanShll预处理程序自动获取阶段线程数

import org.apache.jmeter.threads.JMeterContextService:

int num= JMeterContextService.getNumberOfThreads()://获取当前活动的线程数

int total= JMeterConextService.getTotalThreads()://获取设置的线程总数

//.......................................................设置参数......................................................

int stepCount= 5//设置梯度次数

int start =0;

//计算每个梯度的开发数

int step = (total +stepCount-1)/ stepCount;

int Multiple = (num-start)/step;    //设置的总线程数是步数的多少倍

int rem =(num-start)%step;        //取余数运算

//.......................开始计算.......................

/**

*1.thread参数,事务控制器 (Transaction Controller)名称引用 ${ thread}

*
*这里主要对当前正在运行的线程数进行统计,将其结果记录到对应的阶段

*例如,设置10个线程为一步,当前正在运行的线程数量为25,则其结果放置在“线程数30”个层级下

*/

if(Multiple==0 && num<=start){

vars.put("thread",start+"并发");

}

else if (num>start && num<=(total-start)/step*step+start){

             if(rem==0){

vars.put("thread",(Multiple*step+start)+"并发")

      }

else{

vars.put("thread",((Multiple+1)*step+start)+"并发");

}

}

else in(num>((total-start)/step)*step+start){

vars.put("thread",total+"并发");

}


(附上图片对照,ps:主要是怕自己忘记)

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容