Java JMeter:如何按+;1在每次迭代的日期范围内
我想在每次迭代中使用Jmeter增加1天2个日期,即Java JMeter:如何按+;1在每次迭代的日期范围内,java,date,groovy,jmeter,Java,Date,Groovy,Jmeter,我想在每次迭代中使用Jmeter增加1天2个日期,即 日期1:2014/01/01(迭代1=2014/01/02)(迭代1=2014/01/03)等 日期2:2014/09/01(迭代1=2014/09/02)(迭代1=2014/01/03)等 我该怎么做呢?下面是一个例子: 用于向日历添加天数的函数: void addDay(Calendar calendar, int offsetDay) { calendar.add(Calendar.DAY_OF_YEAR, offsetD
- 日期1:2014/01/01(迭代1=2014/01/02)(迭代1=2014/01/03)等
- 日期2:2014/09/01(迭代1=2014/09/02)(迭代1=2014/01/03)等
- 用于向
:日历添加天数的函数
void addDay(Calendar calendar, int offsetDay) { calendar.add(Calendar.DAY_OF_YEAR, offsetDay); }
- 5次迭代的示例(从2014/01/01开始):
希望它能帮助您。就像Groovy的优点一样简单:
有关JMeter的详细信息:Date end= new Date() + 5 // from now till +5 days for( Date curr = new Date(); curr < end; curr++ ){ println curr.format( 'dd.MM' ) }
- 添加元素以设置初始日期值,如
- 日期1=2014/01/01
- 日期2=2014/09/01
- 在需要这些更新日期的请求子级中添加。将以下代码放入预处理器的“脚本”中: 执行3次后,它提供以下输出:
2014/08/30 10:11:13 INFO - jmeter.util.BeanShellTestElement: DATE1=2014/01/02
2014/08/30 10:11:13 INFO - jmeter.util.BeanShellTestElement: DATE2=2014/09/02
2014/08/30 10:11:13 INFO - jmeter.util.BeanShellTestElement: DATE1=2014/01/03
2014/08/30 10:11:13 INFO - jmeter.util.BeanShellTestElement: DATE2=2014/09/03
2014/08/30 10:11:13 INFO - jmeter.util.BeanShellTestElement: DATE1=2014/01/04
2014/08/30 10:11:13 INFO - jmeter.util.BeanShellTestElement: DATE2=2014/09/04
${DATE1}
和${DATE2}
李>
有关ApacheJMeter中Beanshell脚本的更多信息,请查看JMeter中的指南:
0/首次安装:
- 从下载,目前的版本是2.3.6
- 解压文件并找到文件夹embeddedable,然后将groovy-all-2.3.6.jar复制到jmeter/lib文件夹中
- 重新启动JMeter
- 就这样
- DATE1=2014/01/01
- DATE2=2014/09/01
2/对于减少的语法、性能和语言能力,建议使用+,如下配置:
3/将此代码粘贴到JSR 223预处理器中:
final String DATE_PATTERN = "yyyy/MM/dd";
def d1Plus1 = Date.parse(DATE_PATTERN, vars["DATE1"] ) + 1;
def d2Plus1 = Date.parse(DATE_PATTERN, vars["DATE2"] ) + 1;
vars.put("DATE1", d1Plus1.format(DATE_PATTERN));
vars.put("DATE2", d2Plus1.format(DATE_PATTERN));
4/将变量称为${DATE1}
和${DATE2}
5/运行此计划显示以下结果:
要了解为什么Groovy是您的最佳选择,请阅读以下内容:
import java.text.SimpleDateFormat; // necessary
import java.util.Calendar; // imports
import java.util.Date;
SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd"); // define date format
Date date1 = sdf.parse(vars.get("DATE1")); // get DATE1 from User Defined variables
Date date2 = sdf.parse(vars.get("DATE2")); // get DATE2 from UDV
Calendar cal = Calendar.getInstance(); // get Calendar instance
cal.setTime(date1); // set Calendar's time to be DATE1
cal.add(Calendar.DAY_OF_YEAR,1); // add 1 day to DATE1
date1 = cal.getTime(); // set the new value for date1
vars.put("DATE1",sdf.format(date1)); // update DATE1 JMeter variable
cal.setTime(date2); // set Calendar time to DATE2
cal.add(Calendar.DAY_OF_YEAR,1); // add 1 day
date2 = cal.getTime(); // set the new value for date2
vars.put("DATE2",sdf.format(date2)); // update DATE2 JMeter variable
log.info("DATE1=" + vars.get("DATE1")); // print value of DATE1 to jmeter.log
log.info("DATE2=" + vars.get("DATE2")); // print value of DATE2 to jmeter.log
2014/08/30 10:11:13 INFO - jmeter.util.BeanShellTestElement: DATE1=2014/01/02
2014/08/30 10:11:13 INFO - jmeter.util.BeanShellTestElement: DATE2=2014/09/02
2014/08/30 10:11:13 INFO - jmeter.util.BeanShellTestElement: DATE1=2014/01/03
2014/08/30 10:11:13 INFO - jmeter.util.BeanShellTestElement: DATE2=2014/09/03
2014/08/30 10:11:13 INFO - jmeter.util.BeanShellTestElement: DATE1=2014/01/04
2014/08/30 10:11:13 INFO - jmeter.util.BeanShellTestElement: DATE2=2014/09/04
- DATE1=2014/01/01
- DATE2=2014/09/01
final String DATE_PATTERN = "yyyy/MM/dd";
def d1Plus1 = Date.parse(DATE_PATTERN, vars["DATE1"] ) + 1;
def d2Plus1 = Date.parse(DATE_PATTERN, vars["DATE2"] ) + 1;
vars.put("DATE1", d1Plus1.format(DATE_PATTERN));
vars.put("DATE2", d2Plus1.format(DATE_PATTERN));