我如何使用空手道测试其余端点以AVRO格式给出响应?

时间:2018-08-08 16:27:20

标签: karate

空手道对于验证提供json响应的rest api很有帮助。现在,我们有了api,可以以avro格式提供响应。可能还需要以avro格式发送有效负载。我如何使用空手道测试其余端点以AVRO格式给出响应?有什么简单的方法可以调整并完成它。谢谢!

1 个答案:

答案 0 :(得分:0)

这是我的建议,我认为这会很好地工作。

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

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

否则,您甚至可能不使用空手道HTTP DSL,例如methodrequest等。您必须再编写一个Java辅助程序,该辅助程序将使用您的JSON(或AVRO)并进行调用。服务器(特定于您的项目)并返回响应,并转换回JSON。例如:

* 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只是Karate可以为您提供的功能的10%。