2013-11-20 2 views
4

Я пытаюсь утвердить BSF с помощью javascript в JMeter.JMeter BSF Assertion - сравнение переменных даты

В 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 возвращает целое значение, представляющее число миллисекунд между полуночью, 1 января 1970 года и датой, указанной в 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."); 
} 

Результат Assertion: ошибка Assertion: ложная неудача утверждение: верно Assertion сообщение об ошибке: ОШИБКА: Разница между значением 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 
} 
Смежные вопросы