Переменная кажется потерянной при установке свойства в jmeter

Я хочу создать свойство из переменной. Переменные были созданы путем вызова переменной из извлечения xpath, а затем с использованием подстроки, чтобы затем получить последние 4 символа. Значение строки подстроки сохраняется в переменной, а затем устанавливается в свойство.

Когда я запускаю скрипт, log.info(vars.get("lastcard")); возвращает значение переменной. Однако в этом случае его не удается сохранить в свойстве, потому что при вызове этого свойства (${__property(lastNum)} будет отображено - ${lastcard}

      import org.apache.jmeter.util.JMeterUtils;
      import org.apache.commons.lang3;


      String tesTe = vars.get("card");
      String last4 = tesTe.substring(tesTe.length()-4,tesTe.length());
      vars.put("lastcard", String.valueOf(last4));
      log.info(vars.get("lastcard"));

     ${__setProperty(lastNum,${lastcard})};

Любые идеи относительно того, что происходит

2 ответа

Решение

Вы должны прочитать руководство пользователя по написанию скриптов:

убедитесь, что скрипт не использует переменную, использующую ${varName}

Вы должны использовать переменные JSR223 vars а также props обрабатывать переменные и свойства. В вашем случае измените последнюю строку на:

 props.put("lastNum",  vars.get("lastcard"));

Также вы можете установить переменную более коротким способом:

  vars.put("lastcard", vars.get("card").substring(tesTe.length()-4));

Для решения проблем необходимо внести 2 изменения.

  import org.apache.jmeter.util.JMeterUtils;
  import org.apache.commons.lang3;


  String tesTe = vars.get("card");
  String last4 = tesTe.substring(tesTe.length()-4,tesTe.length());
  vars.put("lastcard", last4);   //Already string therefore no need to use String.valueOf()
  log.info(vars.get("lastcard"));

 props.put("lastNum",vars.get("lastcard"));  //Setup to use props.put instead of set property
Другие вопросы по тегам