首页 > 解决方案 > 空手道 API,我如何匹配 2 个不同的响应

问题描述

根据端点的状态,我从端点获得 2 个不同的响应,其中任何一个都可以。

第一反应:

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

第二个回应:

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

我正在尝试以下方法,但它不起作用:

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

任何想法如何最好地让这个工作,所以任何一个反应都很好?

谢谢

标签: karate

解决方案


尝试这个:

* 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 来“检查”响应的形状,然后定义预期结果。


推荐阅读