背景:
在模拟多线程场景时,使用序号可以标记并追踪当前执行请求的虚拟用户。
方法1:通过添加BeanShell前置处理器获取或BeanShell预处理程序获取线程号
获取函数:${__BeanShell(ctx.getThread().getThreadName())}
Thread.sleep(1000);
//currentThread. Thread.getThread().getThreadName()
String threadinfo="${__BeanShell(ctx.getThread().getThreadName())}"; //此函数输出格式:Thread Name:线程名 1-2
log.info("threadinfo========="+threadinfo);
String []str=threadinfo.split("-"); //"-"后的内容就是当前线程号
vars.put("threadNo",str[1]);
log.info("str[1]========="+str[1]); //保存到jmeter变量threadNo中
方法2:JMeter函数助手获取线程号${__threadNum}
方法3:编写java代码获取JVM线程id号
java代码
long tid = Thread.currentThread().getId(); //JVM线程id
这段代码会返回当前线程的ID,可以在JMeter的JSR223 Sampler、beanshell中使用这段代码来获取线程号。
实现效果