我想使用 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)等
我该怎么做?
最佳答案
有关 JMeter 的详细信息:
添加User Defined Variables设置初始日期值的元素,例如
- 日期1=2014/01/01
- 日期2=2014/09/01
添加Beanshell PreProcessor作为您需要这些更新日期的请求的子项。将以下代码放入预处理器的“脚本”中:
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
执行 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}
。
有关 Apache JMeter 中 Beanshell 脚本编写的更多信息,请查看 How to use BeanShell: JMeter's favorite built-in component指南
关于java - JMeter : How to increment dates by +1 within date ranges for every iteration,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25569388/