2013-11-20 57 views
4

我试图在JMeter中使用JavaScript的BSF断言。JMeter BSF声明 - 比较日期变量

在JMeter的调试采样我有这两个变量: 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."); 
} 

断言结果: 断言错误:错误 断言失败:真 断言失败消息:ERROR: db_created_date值(2013-11-11 16:22:53.863187)NaN和dateTime(2013-11-11 16:22:53.863187)NaN之间的区别太大了。

回答

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 
}