如何在jmeter中关联日期?

时间:2017-05-18 08:59:25

标签: jmeter jmeter-plugins

我在jmeter中有一个场景如下:

Jmeter脚本包含航班预订作为第一个用户书籍票。如果第一次用户在 2017年1月1日上预订,则第二用户必须在 2017年1月2日上预订并且下一个用户遵循相同的模式。

我的查询是如何使用jmeter实现上述场景。

1 个答案:

答案 0 :(得分:0)

在您的主题组从0开始增加1 参考名称计数器

下添加一个计数器

然后在请求下添加一个beanshell预处理器并添加以下代码:

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

int Counter = Integer.parseInt(vars.get("Counter"));

SimpleDateFormat sdf = new SimpleDateFormat("d-MMMM-yyyy"); 

if(Counter == 0){
Date date1 = sdf.parse(vars.get("DepDATE1"));// DepDATE1 = Jmeter variable that holds the first departure date
Date date2 = sdf.parse(vars.get("ArrDATE1"));// ArrDATE1 = Jmeter variable that holds the first arrival date


Calendar cal = Calendar.getInstance();

cal.setTime(date1);
cal.add(Calendar.DAY_OF_YEAR,1);
date1 = cal.getTime();
props.put(("NextDep"), sdf.format(date1));

cal.setTime(date2);
cal.add(Calendar.DAY_OF_YEAR,1);
date2 = cal.getTime();
props.put(("NextArr"), sdf.format(date2));
}

if(Counter > 0){
datex = sdf.parse(props.get("NextDep"));
datey = sdf.parse(props.get("NextArr"));
Calendar cal = Calendar.getInstance();

cal.setTime(datex);
cal.add(Calendar.DAY_OF_YEAR,1);
datex = cal.getTime();
props.put(("NextDep"), sdf.format(datex));

cal.setTime(datey);
cal.add(Calendar.DAY_OF_YEAR,1);
datey = cal.getTime();
props.put(("NextArr"), sdf.format(datey));

}

现在使用$ {__ P(NextDep)}而不是保存出发日期的变量和$ {__ P(NextArr)}而不是保留到达日期的变量。

我认为你可以把它做得更小,但它确实是这个想法。

希望它有所帮助。