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; }