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

时间:2019-03-18 16:08:57

标签: jmeter jsr223

我正在使用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采样器中并直接在标头中调用该方法?

我已经尝试过了,但是它只为每次迭代生成唯一的值。

请对此点灯。

1 个答案:

答案 0 :(得分:1)

JSR223预处理器无需复制JSR223 PreProcessor并将其粘贴到每个调用中,而是将其添加到每个调用中,因此,如果将其与所有JMeter Scoping Rules放在同一级别-它将应用于所有采样器

Samplers

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