尝试对 SSE 类型内容类型执行断言


Scenario: Test
* def contentType = 'text/event-stream'
* def response =
"""
<data contentLength="5930" contentType="text/event-stream;charset=UTF-8"><![CDATA[
data:
}
}

这工作并正确断言,但这是包含的,我需要事先知道值

匹配jsonresponse.data._包含"0000000000000000000000abc">

这工作并正确失败,但这是包含的,我需要事先知道值

匹配jsonresponse.data._包含"123456789"

有没有办法让我从这个 json 中获取 groundNumber 和其他属性的值。

提前致谢

您需要将该内容转换为有效的 JSON。参考类型转换:https://github.com/intuit/karate#type-conversion

对于给定的响应,这会将多行转换为单个 JSON 数组。

* def data = /data
* print data
* def data = data.replaceAll('data:', '').replaceAll('}', '},')
* json data = '[' + data + ']'
* print data

现在您可以执行正常的 JsonPath 处理。

* def numbers = $data[*].groundNumber
* match numbers == ['00000000000000000000123', '00000000000000000000456', '00000000000000000000789', '00000000000000000000000']

最新更新