在我的应用程序中,DOB字段具有特定间隔的限制。我想捕捉1950年1月1日到2000年12月31日之间的随机日期。请建议。提前感谢您的宝贵建议。
答案 0 :(得分:0)
您可以使用 bean shell脚本采样器来调用java apis并使用Joda time - java库,您可以生成两个特定日期之间的日期,如下所示(参考:Java Generate all dates between x and y)和随机选择列表项目日期, 请参考jmeter中的this link for using Beanshell。
import java.util.ArrayList;
import java.util.List;
import org.joda.time.DateTime;
public class DateQuestion {
public static List<DateTime> getDateRange(DateTime start, DateTime end) {
List<DateTime> ret = new ArrayList<DateTime>();
DateTime tmp = start;
while(tmp.isBefore(end) || tmp.equals(end)) {
ret.add(tmp);
tmp = tmp.plusDays(1);
}
return ret;
}
public static void main(String[] args) {
DateTime start = DateTime.parse("2012-1-1");
System.out.println("Start: " + start);
DateTime end = DateTime.parse("2012-12-31");
System.out.println("End: " + end);
List<DateTime> between = getDateRange(start, end);
for (DateTime d : between) {
System.out.println(" " + d);
}
}
}
答案 1 :(得分:0)
您可以使用Beanshell预处理器获取随机DOB。 只需复制&amp;粘贴以下代码。它应该工作。
我将随机日期存储在'dob'变量中。所以,只需在出生日期使用$ {dob}。
import java.util.GregorianCalendar;
import java.text.SimpleDateFormat;
dateFormat1 = new SimpleDateFormat("d-M-yyyy");
dateFormat2 = new SimpleDateFormat("dd-MMM-yyyy");
int randBetween(int start, int end) {
return start + (int)Math.round(Math.random() * (end - start));
}
gc = new GregorianCalendar();
year = randBetween(1950, 2000);
gc.set(gc.YEAR, year);
dayOfYear = randBetween(1, gc.getActualMaximum(gc.DAY_OF_YEAR));
gc.set(gc.DAY_OF_YEAR, dayOfYear);
vars.put("dob", (dateFormat2.format(dateFormat1.parse(gc.get(gc.DAY_OF_MONTH) + "-" + (gc.get(Calendar.MONTH)+1) + "-" + gc.get(Calendar.YEAR)))));