如何使用karate框架验证api响应的时间戳是否是最新的
我有一个来自使用空手道框架的api的响应,它是这样的如何使用karate框架验证api响应的时间戳是否是最新的,karate,Karate,我有一个来自使用空手道框架的api的响应,它是这样的 { "name": "xyz.json", "fileSize": "391 B", "timestamp": "2020-06-22 12:03:00 GMT", "tag": "abc1" }, { "name": "abc.json", &
{
"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"
},
现在,从上面的响应中,我如何验证“timestamp”字段,即最新的2个时间戳值,以便从name字段中提取相应的json文件。您可以通过以下方式将日期转换为数字:
* 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
我让你来决定如何获取最新信息。空手道不是一种通用语言,但您可以混合使用JavaScript,或者我建议您编写一个Java实用程序,请参阅文档了解如何使用。还要看看JSON转换:感谢您的回复,peter肯定会研究java实用程序部分。