java - JMeter : How to increment dates by +1 within date ranges for every iteration

标签 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)等

我该怎么做?

最佳答案

有关 JMeter 的详细信息:

  1. 添加User Defined Variables设置初始日期值的元素,例如

    • 日期1=2014/01/01
    • 日期2=2014/09/01
  2. 添加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 
  1. 根据需要将变量引用为 ${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/

相关文章:

java - 单向@OnetoMany 映射删除所有关系并重新添加剩余关系而不是删除特定关系

java - 使用 aspose 在 XML 中设置数据

php - 修复旧的 MySQL 日期字段错误

javascript - AngularJS 如何处理 Bootstrap 日期选择器日期以将其发送给 REST 后端

grails - 在单元测试中,如何替换域对象上的接口(interface)方法?

java - 将Hibernate 4与Grails 3.2.4结合使用时,启动时会出现NullPointerException

java - Hibernate多对多关系查询

java - ScrollView滚动不流畅

java - 在 Java 中获取当前周

groovy - Groovy 中的真正组合