如何通过Gatling JsonPath提取FHIR响应中的fullUrl值?
正确提取FHIR Bundle中fullUrl的JsonPath表达式
常见场景与对应表达式
首先明确FHIR Bundle的典型简化结构:
{ "resourceType": "Bundle", "entry": [ { "fullUrl": "urn:uuid:fbb2bd18-a1c3-4f95-8384-d520fba283a5", "resource": {} } ] }
根据你的场景,分两种情况调整表达式:
- 响应根节点就是Bundle
直接定位entry数组下的所有fullUrl:
.check(jsonPath("$.entry[*].fullUrl").saveAs("fullUrl"))
如果只需要提取第一个entry的fullUrl,把[*]换成索引[0]即可:
.check(jsonPath("$.entry[0].fullUrl").saveAs("fullUrl"))
- Bundle存在于嵌套结构中(需要过滤匹配)
注意引号转义问题,推荐外层用单引号避免转义:
.check(jsonPath('$..[?(@.resourceType=="Bundle")].entry[*].fullUrl').saveAs("fullUrl"))
若外层必须用双引号,内层双引号需转义:
.check(jsonPath("$..[?(@.resourceType==\"Bundle\")].entry[*].fullUrl").saveAs("fullUrl"))
排查要点
- 确认JSON响应中确实存在
resourceType: "Bundle"的节点,且该节点下有entry数组,每个entry包含fullUrl字段。 - 不同环境(如Gatling、Java)对引号的处理规则不同,优先用单引号包裹JsonPath表达式可避免转义错误。
内容的提问来源于stack exchange,提问作者Magnus Jensen
相关产品推荐
相关产品推荐

