空手道API,我该如何匹配2个不同的响应 [英] Karate API, How do I match 2 different responses

查看:80
本文介绍了空手道API,我该如何匹配2个不同的响应的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

根据端点的状态,我会从端点收到2个不同的响应,它们之一都可以.

I get 2 different responses from an endpoint depending on it's state and either one of them is fine.

第一反应:

{"available":'#boolean',"collection":'#boolean'}

第二次响应:

{"code": "#string","message": "#string"}

我正在尝试以下操作,但不起作用:

I'm trying the following but it's not working:

  • def firstSchema = {"available":'#boolean',"collection":'#boolean'}
  • def secondSchema = {"code": "#string","message": "#string"}
  • def firstSchema = {"available":'#boolean',"collection":'#boolean'}
  • def secondSchema = {"code": "#string","message": "#string"}

匹配响应包含任何(firstSchema, secondSchema)

有什么想法可以最好地使此工作正常进行,以便任何一种响应都可以吗?

Any ideas how to best get this working so either response is fine?

谢谢

推荐答案

尝试一下:

* def first = { available: true, collection: true }
* def second = { code: 'foo', message: 'bar' }

* def response = second
* def expected = response.code ? { code: '#string', 'message': '#string' } : { available: '#boolean', collection: '#boolean' }
* match response == expected

另请参阅有关条件逻辑"的文档.您可以使用JsonPath来检查"响应的形状,然后定义期望的结果.

Also refer to the documentation on "Conditional Logic". You can use JsonPath to "check" what shape the response is and then define expected results.

这篇关于空手道API,我该如何匹配2个不同的响应的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆