Jmeter - 未来时间戳

时间:2014-02-18 07:24:37

标签: java jmeter

我试图在Jmeter中创建一个参数,给出当前时间戳+5分钟。有谁知道如何做到这一点?要生成当前时间戳,我有:$ {__ time(HH:mm:ss,TIMESTAMP)}

6 个答案:

答案 0 :(得分:10)

我担心__time()功能无法提供足够的灵活性。您需要通过Beanshell Sampler or Beanshell Pre Processor

计算此日期值

相关的Beanshell代码看起来像

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

Date now = new Date(); // get current time
Calendar c = Calendar.getInstance(); // get Java Calendar instance
c.setTime(now); // set Calendar time to now
c.add(Calendar.MINUTE, 5); // add 5 minutes to current time
Date now_plus_5_minutes = c.getTime(); // get Date value for amended time
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss"); // create a formatter for date       
String mydate = sdf.format(now_plus_5_minutes); // format date as string
vars.put("mydate",mydate); // save date to JMeter variable named "mydate"

您可以将mydate值称为

  • $ {数值指明MyDate}
  • $ {__ V(数值指明MyDate)}

在您需要提供更新日期的地方。

希望这会有所帮助。

答案 1 :(得分:5)

必须使用但以日期为单位的未来日期:

    import java.text.SimpleDateFormat; 
    import java.util.Date; 

    Date date = new Date(); 
    date.setDate(date.getDate()+5); 
    SimpleDateFormat df = new SimpleDateFormat("dd/MM/yyyy"); 
    // or: SimpleDateFormat df = new SimpleDateFormat("MM-dd-yyyy"); 
    String formattedDate = df.format(date); 
    vars.put("myFutureDate",formattedDate); 

上面的代码块应该放入 BeanShellPreprocessor enter image description here

在适当的地方调用变量日期 -

${myFutureDate} 

答案 2 :(得分:4)

您可以使用__javaScript命令作为参数http://jmeter.apache.org/usermanual/functions.html#__javaScript。这将为您提供自纪元以来的秒数时间戳。

${__javaScript( Math.floor( ( Date.now() + ( 5 * 60 * 1000 ) ) / 1000 ) )}

Using __javaScript as parameter

JMeter Test with JMX File

的示例

答案 3 :(得分:1)

我建议这是一个单行解决方案:

${__groovy(use(groovy.time.TimeCategory) { (new Date() + 5.minutes).format('yyyyMMddHHmmssSSS') })}

时间偏移基于Groovy的TimeCategory http://docs.groovy-lang.org/latest/html/api/groovy/time/TimeCategory.html,并且非常易于阅读和使用(例如,您可以将5.minutes替换为1.day左右。)

与Dmitri和Eugene的答案相比,上面的解决方案要短得多,不需要定义任何额外的配置并且每次都要进行评估(因此可以在JMeter脚本中多次使用)。

建议不要在JMeter中使用Richard的答案中的JavaScript: http://jmeter.apache.org/usermanual/functions.html#__javaScript

Groovy在日期操作方面也更好(感谢TimeCategory)和日期格式化。

在JMeter 3.2上测试

答案 4 :(得分:0)

您可以为此使用__timeShift功能

${__timeShift(HH:mm:ss,,P5M,,)}

答案 5 :(得分:0)

有两种简单的方法 使用 Bean shell 预处理器:

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
int AddSeconds= 00; //this variable needs to be customized as per your need
int AddMinutes= 32; //this variable needs to be customized as per your need
int AddHours= 06; //this variable needs to be customized as per your need
 Date now         = new Date();
Calendar c       = Calendar.getInstance();
c.setTime(now);
c.add(Calendar.SECOND, AddSeconds);
c.add(Calendar.MINUTE, AddMinutes);
c.add(Calendar.HOUR,   AddHours);
Date NewTime        = c.getTime();
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'");
String mytime       = df.format(NewTime);

vars.put("NewTime",mytime);

第二种方式是这样的:“${__timeShift(yyyy-MM-dd'T'HH:mm:ss.SSS'Z',,PT393M,,)}”