我正在使用JSR223预处理器在http标头中生成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采样器中并直接在标头中调用该方法?
我已经尝试过了,但是它只为每次迭代生成唯一的值。
请对此点灯。
答案 0 :(得分:1)
JSR223预处理器无需复制JSR223 PreProcessor并将其粘贴到每个调用中,而是将其添加到每个调用中,因此,如果将其与所有JMeter Scoping Rules放在同一级别-它将应用于所有采样器
如您所见,我只有一个JSR223预处理器实例,并且已执行3次(在其范围内的每个Sampler之前)