karate - 如何使用空手道框架验证来自 api 响应的时间戳是否是最新的
问题描述
我有一个使用空手道框架的api的响应,就像这样..
{
"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 文件。
解决方案
您可以通过这种方式将日期转换为数字:
* 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 转换:https ://github.com/intuit/karate#json-transforms
推荐阅读
- c# - 右键对话框结果
- python - 没有名为“tensorflow.python.tools”的模块;“tensorflow.python”不是一个包
- amazon-web-services - AWS IoT Core 使用单个 API 删除多个事物
- python - Python 到 Arduino UDP 通信
- css - 如何使用 css 提高背景图像和文本之间的对比度?
- r - 在 R 中生成以下矩阵的最短代码是什么?
- python-3.x - BicGStab 产生意外故障标志
- nestjs - 将多个实体添加到 TypeOrmModule 时出错
- laravel - 让未定义的属性在 Laravel 中为空值
- android - 安卓SIM卡热插拔