#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.