如何解决Gatling - 关联 json 响应并在会话中对其进行修改
我执行一个请求并获得响应正文。 我想在下一个请求中使用这个响应体,但在这样做之前需要添加一个 json 节点。 请求 1 => 响应 1:
{
"resourceType": "Parameters","parameter": [
{
"name": "medication","resource": {
"resourceType": "Bundle","id": "08eb0474-23a2-429b-93b2-ba38b96271ec","meta": {
"lastUpdated": "2021-01-18T16:18:22.4474168+00:00","source": "http://base-fhir.qa.forskrivning.no/Patient/$getMedication","profile": [
"http://ehelse.no/fhir/StructureDefinition/sfm-MedicationBundle"
]
},"type": "document","timestamp": "2021-01-18T16:18:22.4473963+00:00","total": 27,"link": [
{
"relation": "self","url": "http://base-fhir.qa.forskrivning.no/Patient/$getMedication"
}
],"entry": [
{
"fullUrl": "urn:uuid:8d3fd453-2933-4f39-9c90-4df868080f40","resource": {
"resourceType": "Composition","id": "a79f08c0-0b3c-4e26-adf4-6fc5d1305b36","meta": {
"profile": [
"http://ehelse.no/fhir/StructureDefinition/sfm-MedicationComposition"
]
},"identifier": {
"use": "official","value": "9f9fdefe-4c5e-456f-b419-4871645ebd01"
},"status": "final","type": {
"coding": [
{
"system": "http://loinc.org","code": "11503-0","display": "Medical records"
}
]
},"subject": {
"reference": "urn:uuid:75ad528e-2db7-47a6-90cd-3677b9c5c7e4","display": "Agnieszka Øvrelid"
},"date": "2021-01-18T16:18:22.4183485+00:00","author": [
{
"reference": "urn:uuid:a01b883a-752c-4b02-8b94-c175ff8602b3","display": "Bengt Fos Minde,HPR: 431002790"
}
],"title": "Medication summary","confidentiality": "N","section": [
{
"title": "Medication","code":
我想在再次调用之前将此元素添加到 json 正文的正确位置:
"relatesTo": [
{
"code": "replaces","targetIdentifier": {
"use": "official","value": "57a9d650-ce21-42b2-a317-7d33a1eb4582"
}
}
]
完成的请求正文应该是这样的:
{
"resourceType": "Parameters","id": "307a7183-06af-465e-b094-8514cdedf9f5","meta": {
"lastUpdated": "2020-11-06T07:44:28.6590617+00:00","timestamp": "2020-11-06T07:44:28.6590219+00:00","total": 24,"entry": [
{
"fullUrl": "urn:uuid:160f33ca-29c6-4ff7-ad9d-366fb17ebe9a","id": "cf61d45e-bae5-44e0-a64e-45f449958c3c","value": "57a9d650-ce21-42b2-a317-7d33a1eb4582"
},"subject": {
"reference": "urn:uuid:09d55df4-b2db-45e2-a8b3-9891feef83ea","date": "2020-11-06T07:44:28.6385246+00:00","author": [
{
"reference": "urn:uuid:a4e51226-ea04-4f41-b6b2-b7a1b287f990","display": "Selma Hadland,HPR: 2037661"
}
],"relatesTo": [
{
"code": "replaces","targetIdentifier": {
"use": "official","value": "57a9d650-ce21-42b2-a317-7d33a1eb4582"
}
}
],"code": {
"coding": [
{
"system": "http://ehelse.no/fhir/CodeSystem/sfm-section-types","code": "sectionMedication","display": "List of Medication statements"
}
]
},
如何获取响应并在会话中动态添加元素?
解决方法
这里有两个想法:
-
使用会话:
exec { callMyService .check(jsonPath("$..*").saveAs("myJson")) }.exec { session => val json = session("myJson").as[Map[String,Any]] val newJson = json.updated("relatesTo",Seq(Map("code" -> "replaces",...))) // do something session }
-
或使用变换:
exec( callMyService .check(jsonPath("$..*").ofType[Map[String,Any]] .transform { json => json.updated("relatesTo",..))) }.saveAs("myJson") ))
但是我无法测试这些想法。特别是你要添加的部分的数据格式 - 我不确定。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。