как проверить, является ли временная метка из ответа api последней, используя karate framework

#karate

#karate

Вопрос:

У меня есть ответ от api с использованием karate framework, который выглядит примерно так..

 {
"name": "xyz.json",
"fileSize": "391 B",
"timestamp": "2020-06-22 12:03:00 GMT",
"tag": "abc1"
},
{
"name": "abc.json",
"fileSize": "391 B",
"timestamp": "2020-06-22 12:03:01 GMT",
"tag": "abc2"
},
  

теперь из приведенного выше ответа, как мне проверить поле «временная метка», т.Е. Из 2 значений временной метки, которое является последним, чтобы я мог выбрать соответствующий файл json из поля name.

Ответ №1:

Таким образом, вы можете преобразовать даты в числа:

 * def response =
"""
[
   {
      "name":"xyz.json",
      "fileSize":"391 B",
      "timestamp":"2020-06-22 12:03:00 GMT",
      "tag":"abc1"
   },
   {
      "name":"abc.json",
      "fileSize":"391 B",
      "timestamp":"2020-06-22 12:03:01 GMT",
      "tag":"abc2"
   }
]
"""
* def dateToLong =
"""
function(s) {
  var SimpleDateFormat = Java.type('java.text.SimpleDateFormat');
  var sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss z");
  return sdf.parse(s).time;
} 
"""
* def fun = function(x){ return dateToLong(x.timestamp) }
* def dates = karate.map(response, fun)
* print dates
  

Я оставляю это вам, чтобы выяснить, как получить последнюю версию. Karate не является языком общего назначения, но вы можете смешивать JavaScript или я рекомендую написать утилиту Java, обратитесь к документации о том, как это сделать. А также посмотрите на преобразования JSON: https://github.com/intuit/karate#json-transforms

Комментарии:

1. Спасибо за ответ, Питер, обязательно изучите часть утилиты Java.