我正在JMeter中使用javascript尝试BSF断言。
在JMeter Debug Sampler中,我有以下两个变量: insert_date = 2013-11-11 16:22:33.000343 db_created_date_1 = 2013-11-11 16:22:53.863187
我希望比较它们,看看它们是否发生在彼此正负10秒的特定时间范围内 - 或者如果时差超过20秒。
最好的方法是什么?
我不知道是否应该使用Date.parse(dateVal) Date.parse函数返回一个整数值,表示1970年1月1日午夜和dateVal中提供的日期之间的毫秒数。
我一直在尝试使用BSF断言 - javascript,但它不起作用:
if ((vars.put("my1",Date.parse(vars.get("db_created_date_1"))) - vars.put("my2",vars.get("insert_date"))) != 0) {
AssertionResult.setFailure(true);
AssertionResult.setFailureMessage("ERROR: The difference between db_created_date value (${db_created_date_1}) ${my1} and the dateTime (${insert_date}) ${my2} is too great.");
}
断言结果: 断言错误:错误 断言失败:是的 断言失败消息:错误:db_created_date值(2013-11-11 16:22:53.863187)之间的区别NaN和dateTime(2013-11-11 16:22:53.863187)NaN太大了。
答案 0 :(得分:0)
我不确定Javascript,但你的NaN看起来很奇怪。以下Beanshell代码适用于我:
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-DD HH:mm:ss");
long created = sdf.parse(vars.get("db_created_date_1")).getTime();
long insert = sdf.parse(vars.get("insert_date")).getTime();
long delta = Math.abs((created - insert));
if (delta > 20){
//ka-boom
}