当前位置: 首页 > 知识库问答 >
问题:

如何使用空手道框架验证api响应的时间戳是否是最新的

王长卿
2023-03-14

我有一个来自使用空手道框架的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"
},

现在,从上面的响应中,我如何验证“timestamp”字段,即最新的2个时间戳值中的“timestamp”字段,以便我可以从name字段中获取相应的json文件。

共有1个答案

寿毅庵
2023-03-14

您可以通过以下方式将日期转换为数字:

* 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

 类似资料:
  • 我想要帮助验证API响应使用空手道框架。我有相互“独立”的应用编程接口。当我打那个特定的API得到了不同参数的响应(没有单一的匹配从请求参数和响应参数)。 现在我想验证响应参数值。 示例:请求:“方法”帖子 学校名称:“abcd”注册日期:“1:10:2010” 回复:原则名称:“pqrs”原则电子邮件idpqrs@gmail.com 现在我想验证“主名称”不应该为空 我已经像这样实现了,但它不起

  • 我一直在验证下面的回答。 当我使用空手道发出获取请求时,我会得到以下响应,我想验证它。 我试过: 它说它不是字符串。你能帮我确认一下这个请求吗?

  • 我试图验证非json格式的错误响应体。我尝试了使用模式以及使用包含匹配的关键字。这对我不起作用。 在post调用中观察到多个匹配时从API返回的实际响应: 我的空手道特点: 尝试*匹配实际的[0] == '#(^partSchema)'也从https://gist.github.com/ptrthomas/2a1e30bcb4d782279019b3d5c10b3ed1。不工作

  • 我有以下API响应样本 根据上面的回答,我的测试表明,每当我点击API请求时,第11个ID是SMITH,第10个ID是JAMES 所以我想把它存储在一个表中,并根据实际的响应进行断言 现在我该如何一个接一个地匹配?与first类似,它解析API响应中的第一个ID和第一个名称,并与表first ID和表first name匹配 请分享从空手道做它的任何方便的方式

  • 我正在测试一个点对点应用程序,我可以向它发送网址,然后它应该向该网址发出请求。我可以用空手道模拟服务器模拟响应,但我也想验证请求是否已经发出。 我的一个想法是将每个到mock服务器的请求记录到一个文件中,然后在我的主要场景中(启动mock并将URL发送到应用程序)将其读回以进行验证。 还有更好的方法吗?我可以从创建模拟服务器的场景中访问模拟服务器的状态而不使用文件吗?我可以告诉模拟服务器验证它自己

  • 任何人都可以在空手道API中如何部分下面的响应 这里我想从响应中提取partNumber和productTitle,其中响应中的初始数字是动态的,对于每个get方法,数字都会发生变化。 {"项目":{'41651625424':{itemCore:{部件号:'1234567',产品名称:'空手道API测试'}}}}