簡體   English   中英

JMeter BSF斷言 - 比較日期變量

[英]JMeter BSF Assertion - comparing date variables

我在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.");
}

斷言結果:斷言錯誤:false斷言失敗:true斷言失敗消息:錯誤:db_created_date值之間的差異(2013-11-11 16:22:53.863187)NaN和dateTime(2013-11-11 16:22:53.863187) )NaN太棒了。

我不確定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
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM