我试图在Jmeter中创建一个参数,给出当前时间戳+5分钟。有谁知道如何做到这一点?要生成当前时间戳,我有:$ {__ time(HH:mm:ss,TIMESTAMP)}
答案 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
值称为
在您需要提供更新日期的地方。
希望这会有所帮助。
答案 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 :
在适当的地方调用变量日期 -
${myFutureDate}
答案 2 :(得分:4)
您可以使用__javaScript命令作为参数http://jmeter.apache.org/usermanual/functions.html#__javaScript。这将为您提供自纪元以来的秒数时间戳。
${__javaScript( Math.floor( ( Date.now() + ( 5 * 60 * 1000 ) ) / 1000 ) )}
的示例
答案 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,,)}”