Java Jmeter-未来时间戳
我试图在Jmeter中创建一个参数,给出当前时间戳+5分钟。有人知道怎么做吗?为了生成当前的时间戳,我有这样一个:${uuu time(HH:mm:ss,timestamp)}我担心该函数没有提供足够的灵活性。您需要通过以下方式计算此日期值: 相关的Beanshell代码如下所示Java Jmeter-未来时间戳,java,jmeter,Java,Jmeter,我试图在Jmeter中创建一个参数,给出当前时间戳+5分钟。有人知道怎么做吗?为了生成当前的时间戳,我有这样一个:${uuu time(HH:mm:ss,timestamp)}我担心该函数没有提供足够的灵活性。您需要通过以下方式计算此日期值: 相关的Beanshell代码如下所示 import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; Date now = new Date();
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}
- ${uuu V(mydate)}
希望这有帮助 必须使用,但对于未来日期,以天为单位:
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);
上面的代码块应该放入Beanshell预处理器中:
在适当的地方调用可变日期-
${myFutureDate}
您可以使用_javaScript命令作为参数。这将为您提供自epoch以来的时间戳(以秒为单位)
${uu javaScript(Math.floor((Date.now()+(5*60*1000))/1000))}
的示例我建议以下是一个单线解决方案:
${__groovy(use(groovy.time.TimeCategory) { (new Date() + 5.minutes).format('yyyyMMddHHmmssSSS') })}
时间偏移量基于Groovy的TimeCategory
,非常易于阅读和使用(例如,您可以将5.minutes
替换为1.day
左右)
与Dmitri和Eugene的答案相比,上面的解决方案要短得多,不需要定义任何额外的配置,并且每次都进行评估(因此可以在JMeter脚本中多次使用)
不建议在JMeter中使用Richard答案中的JavaScript:
Groovy在日期操作(由于TimeCategory
)和日期格式方面也更好
在JMeter 3.2上测试您可以使用该功能进行此测试
${__timeShift(HH:mm:ss,,P5M,,)}
有两种简单的方法
使用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);
第二种方式是:“${uu timeShift(yyy-MM-dd'HH:MM:ss.SSS'Z',PT393M,,)”第二种方式是:“${uu timeShift(yyy-MM-dd'HH:MM:ss.SSS'Z',PT393M,,)”,请将第二种方式编辑到您的答案中。