Java JMeter:如何按+;1在每次迭代的日期范围内

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

我想在每次迭代中使用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, offsetDay);
    }
    
  • 5次迭代的示例(从2014/01/01开始):


    希望它能帮助您。

    就像Groovy的优点一样简单:

    Date end= new Date() + 5 // from now till +5 days
    
    for( Date curr = new Date(); curr < end; curr++ ){
      println curr.format( 'dd.MM' )
    }
    
    有关JMeter的详细信息:

  • 添加元素以设置初始日期值,如

    • 日期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

    • 就这样

    1/添加元素以设置初始日期值,如下所示:

    - 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是您的最佳选择,请阅读以下内容:


    欢迎来到StackOverflow。我知道你尽了最大的努力让每个人都知道这个问题,但理解它仍然有问题,至少对我来说是这样。你能再详细说明一下你拥有什么和你需要什么吗?
    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));