为每个请求调用 JSR223 预处理器

Calling JSR223 Pre processor for each request

我正在使用 JSR223 预处理器在 http header 中生成 UUID。该值将在带有时间戳的日志文件中更新,以便进行跟踪。

我在每次调用中都添加了预处理器,所以每次它都会生成一个唯一的值并更新日志文件。请看下面的代码。

import org.apache.jmeter.services.FileServer;
import java.sql.Timestamp;
import java.util.UUID;

String uuid = UUID.randomUUID().toString();
vars.put("p_x_transaction_id",uuid);
uid= vars.get("p_x_transaction_id");

String Logfile=vars.get("p_logfile");
f = new FileOutputStream(Logfile,true);
p = new PrintStream(f); 
this.interpreter.setOut(p); 

Timestamp timestamp = new Timestamp(System.currentTimeMillis());
p.println(timestamp + " - " + uid);

是否可以将上述代码放在JSR223采样器中,直接调用header中的方法?

我试过了,但它只为每次迭代生成唯一值。

请注意这一点。

无需复制和粘贴 JSR223 PreProcessor and add it to each call, the JSR223 PreProcessor obeys JMeter Scoping Rules so if you put it at the same level as all your Samplers - 它将应用于 所有采样器

如您所见,我只有一个 JSR223 预处理器实例,并且已执行 3 次(在其范围内的每个采样器之前)