【问题标题】:how to validate whether the timestamp from an api response is the latest using karate framework如何使用空手道框架验证来自 api 响应的时间戳是否是最新的
【发布时间】:2020-11-12 00:49:51
【问题描述】:

我有一个使用空手道框架的 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 文件。

【问题讨论】:

    标签: karate


    【解决方案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
    

    我留给你弄清楚如何获得最新的。空手道不是通用语言,但您可以混合使用 JavaScript,或者我建议编写一个 Java 实用程序,请参阅文档了解如何操作。并查看 JSON 转换:https://github.com/intuit/karate#json-transforms

    【讨论】:

    • 感谢 peter 的回复,一定会查看 java 实用程序部分。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-13
    • 1970-01-01
    • 2022-01-22
    • 1970-01-01
    • 2019-12-19
    相关资源
    最近更新 更多