BeanShell Processor_使用Java处理脚本
Posted 天使未必在场
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了BeanShell Processor_使用Java处理脚本相关的知识,希望对你有一定的参考价值。
版权声明:本文为博主原创文章,未经博主允许不得转载。
【try-catch】
建议使用Try----Catch块,这样Java语句出现问题时,日志更清晰;
try { //java代码 } catch (Throwable ex) { log.error("something wrong in BeanShell PostProcessor", ex); throw ex; }
【获取当前年月日时分秒毫秒】
如下示例:获取当前年月日时分秒毫秒并构造成形如“2017-08-16T15:35:28.456Z”的形式;
import java.text.SimpleDateFormat; import java.util.Date; import java.util.Calendar; Calendar cal = Calendar.getInstance(); int YY = cal.get(Calendar.YEAR); int MM = cal.get(Calendar.MONTH) + 1; int DD = cal.get(Calendar.DATE); int HH = cal.get(Calendar.HOUR_OF_DAY); int MM = cal.get(Calendar.MINUTE); int SS = cal.get(Calendar.SECOND); int MI = cal.get(Calendar.MILLISECOND); vars.put("NowDate",DD+"T"+HH+":"+MM+":"+SS+"."+MI); //构造成请求中所需的时间格式
【对参数值进行数学运算】
如下示例:是一个对话脚本的片段,IF条件控制器使用“${__javascript("${MessageNum}">0)}”作为条件,每发送一条消息,MessageNum -1,共发送10次后结束,下面使用BeanShell 后置处理器,在发送消息的请求后使用BeanShell 后置处理器MessageNum进行处理;
使用到的Java语句:
int tmpMessageNum = Integer.parseInt(StringValue); //string到int
String MessageNum = Integer.toString(tmpMessageNum); //int到string
try { String tmp = vars.get("MessageNum"); //获取当前MessageNum值 int tmpMessageNum = Integer.parseInt(tmp); //string到int //如右语句在Jmeter中使用报错,未解---Integer.valueOf(tmp).intValue(); tmpMessageNum = tmpMessageNum - 1; //处理完一条则剩余处理的条数少一条 String MessageNum = Integer.toString(tmpMessageNum); //int到string //log.info(MessageNum); vars.put("MessageNum",MessageNum); } catch (Throwable ex) { log.error("something wrong", ex); throw ex; }
以上是关于BeanShell Processor_使用Java处理脚本的主要内容,如果未能解决你的问题,请参考以下文章
Jmeter 常用函数(19)- 详解 __BeanShell