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

空手道对验证管道分离响应和avro格式的支持

祁建业
2023-03-14

我们有webservice,通过postman以二进制(avro格式)的形式发送请求体,并有一个管道分离的响应。我们能够使用karate发送此请求并获得有效的响应,但注意到默认情况下karate将内容类型设置为'application/octect-stream',而我们期望的内容类型是application/json。空手道为avro格式使用application/octect-stream是有原因的吗?

同样,对于管道分离响应,karate是否支持类似于JSON/XML验证的默认验证?

对于例如:如果样本响应类似于

|PDT|! PRODUCT!|Item1|!SKUID!|sku123a|!DETAILS!|Itemname|itemnumber|price|!FINISH!|

共有1个答案

壤驷凯
2023-03-14

Karate尝试猜测内容类型,但这里显然需要帮助,请参阅header关键字的文档,您可以轻松设置(覆盖)它:https://github.com/intuit/Karate#header

对于第二个问题,我建议您编写一个简单的实用程序将响应转换为JSON,然后您就可以用空手道进行各种出色的验证。这个示例应该是不言自明的:dogs.feature

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

  • 我正在使用空手道验证GET请求的整个json响应。 下面是来自请求的json响应示例(我只为items显示了两个元素) 以下是我试图验证的方式: 但是,我得到了一个断言错误:

  • Karate对验证给出json响应的rest API非常有帮助。现在我们有了以avro格式给出响应的API。可能还需要以avro格式发送有效载荷。如何使用空手道测试以AVRO格式给出响应的restendpoint?有没有什么简单的方法我可以调整一下然后完成它。谢谢!

  • 我试图为下面的响应编写JSON模式。响应是动态的它可以是细节或细节。如果响应中的是,那么响应将包含人对象(组织对象将不可用)。如果是,组织详细信息将包含在响应中(人对象将不可用)。下面给出了两种不同的预期反应 我试图使用下面给出的模式使上述条件有效 我目前面临的问题是,如果响应中的是,它会抛出以下错误 是否有任何方法可以在模式中指定,如果person对象可用,则organization对象将不可用

  • 我只是想知道如何进行条件模式验证。API响应是基于键的动态响应。如果是,那么,人的详细信息将被包括,如果是组织的详细信息将被包括在JSON响应中。所以响应可以是以下任何一种形式 我为验证上述2个场景而创建的架构如下 但是架构与实际响应不匹配。我应该对架构进行哪些更改才能使其工作?

  • 我试图用空手道验证响应模式,但数组存在问题。附加响应和功能以及my schema.json。 回应- } responseSchema.json {"页面":"#编号","per_page":"#编号","总计":"#编号","total_pages":"#编号","数据": "#[] #对象","支持":"#对象"}