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

如何使用空手道测试以AVRO格式给出响应的restendpoint?

史昊焱
2023-03-14

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

共有1个答案

斜俊
2023-03-14

这是我的建议,在我看来这会很管用。

编写一个简单的Java实用程序,也许是一个可以接受JSON并将其转换为AVRO(反之亦然)的静态方法

现在,您可以将所有请求数据定义为JSON-但就在您向服务器发出请求之前,将其转换为Avro。我不确定服务器调用是否是HTTP。如果它是HTTP-那么你知道在空手道中做什么,只需发送二进制作为请求体等。

* def Utils = Java.type('com.myco.avro.Utils')
* def json = { hello: 'world' }
* def req = Utils.toAvro(json)
* def res = Utils.send(req)
# you can combine this with the above
* def response = Utils.fromAvro(res)
* match response == { success: true }

是的,你可能使用空手道主要是为了匹配,报告,环境等,这仍然是有价值的!很多人没有意识到HTTP只是空手道所能为你做的10%。

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

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

  • 我用空手道0.9。5.我正在测试一个返回125MB json响应的endpoint(我知道,不应该在json上这样做——但我现在还停留在这里)。我怎样才能禁止空手道解析响应json,而只是将其视为纯文本?响应需要几毫秒才能完成,但空手道只是挂起尝试解析响应。我不需要验证响应,只需检查200 OK。 谢谢

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

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

  • 有没有一种方法可以像使用Maven调试Java应用程序那样调试测试?例如,如果我在步骤的实现中设置了断点,然后用CL: 我得到了下一个错误: 我试图运行下一个,它的工作: 怎么了?环境: 谢谢你的回答!