我在线程中编写了一个正则表达式(regexpname
),该正则表达式返回数字Ex:10,并且当我尝试通过添加__intSum
函数在BeanShell后处理器中使用正则表达式时添加一个将数字添加到正则表达式输出Ex:将正则表达式输出4加10,并将结果存储到变量Ex:Total中,使用以下函数:
{__intSum(4,${regexpname},Total}
尝试运行测试时,它会立即停止并显示以下消息
“ Jmeter:未捕获的异常:java.lang.NumberFormatException:对于 输入字符串:“ $ {regexpname}” .....”。
请让我知道如何解决此问题:
这是我放入beanshell后处理器中的代码:
import java.text.SimpleDateFormat;
SimpleDateFormat sdf = new SimpleDateFormat("m/dd/yyyy"); // change it according to your Date format
Date originalDate = sdf.parse(vars.get("SigDate"));
Calendar cal = Calendar.getInstance();
cal.setTime(originalDate);
${__intSum(4,${regexpname},Total)};
cal.add(Calendar.DAY_OF_YEAR, Total); // change it if you need to add something else
Date newDate = cal.getTime();
vars.put("newDepdate", sdf.format(newDate));
log.info("Original date: " + vars.get("SigDate"));
log.info("New date: " + vars.get("newDepdate"));
答案 0 :(得分:-1)
在您的beanshell pre processor中使用int Total = Integer.parseInt(vars.get("regexpname"))+4;
代替${__intSum(4,${regexpname},Total)};
我在测试计划中将regexpname
定义为10,因此它增加了14天并在newDepdate
中存储了新日期。
有关beanshell的更多信息,请关注this link
请告诉我是否有帮助。
答案 1 :(得分:-1)
m
代表“小时数”-请使用大写字母M
实际上,您甚至不需要在这里编写任何脚本,因为__timeShift() function自JMeter 3.2可以满足您的需要,相关语法如下: