Переменная кажется потерянной при установке свойства в 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