背景:需要做一个将包含jmeter函数字符创,自动解析为执行jmeter函数并返回值。
例如:字符串
{"ccccccc":"{\"bbbbbb\":\"18879683642\",\"timestamp\":\"${__time(,)}\"}"}
执行jmeter时间函数${__time(,)} ,为当前时间,结果如下:
{"ccccccc":"{\"bbbbbb\":\"18879683642\",\"timestamp\":\"1663921374456\"}"}
一、引入jmeter自带jar包:
二、maven pom中引入jar包:
<dependency>
<groupId>org.mozilla</groupId>
<artifactId>rhino</artifactId>
<version>1.7.10</version>
</dependency>
三、调用实例如下:
String value="{\"ccccccc\":\"{\\\"bbbbbb\\\":\\\"18879683642\\\",\\\"timestamp\\\":\\\"${__time(,)}\\\"}\"}";
//设置jmeterhome路径,必须设置,jmeter 会拼接为 F:/lib/ext 在此目录放入ApacheJMeter_functions.jar
JMeterUtils.setJMeterHome("F:/");
CompoundVariable paramVariable = new CompoundVariable(value);
//执行jmeter函数,替换jmeter函数对应值
String functionVaule= paramVariable.execute();
System.out.println(functionVaule);
结果如下: