Вызов предварительного процессора JSR223 для каждого запроса

#jmeter #jsr223

#jmeter #jsr223

Вопрос:

Я использую предварительный процессор JSR223 для генерации UUID в заголовке http. Значение будет обновлено в файле журнала с отметкой времени для целей отслеживания.

Я добавил предварительный процессор в каждый вызов, поэтому каждый раз он генерирует уникальное значение и обновляет файл журнала. Пожалуйста, взгляните на приведенный ниже код.

 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:

Нет необходимости копировать и вставлять препроцессор JSR223 и добавлять его к каждому вызову, препроцессор JSR223 подчиняется правилам определения области видимости JMeter, поэтому, если вы разместите его на том же уровне, что и все ваши сэмплеры — он будет применен ко всем сэмплерам

введите описание изображения здесь

Как вы можете видеть, у меня есть только один экземпляр предварительного процессора JSR223, и он был выполнен 3 раза (перед каждым сэмплером в своей области)

Комментарии:

1. БОЖЕ, я думал сложным образом .. Дмитрий, ты только что дал простое решение. Спасибо..