How to create a JSONPath Property Transfer including a ${Properties#property} ?
In my project I want to use the test step Property Transfer to pass along some values from a REST response with JSON data within it. The JSONPath I want makes use of a property from a Properties Step called TestData.
The (part of the) data looks like this:
{
"model": {
"key": "P394-C0-C0-C0-C0-C0-C0-F0",
"functionalKey": "P394_Melding-Organisatie_1",
"name": "Melding.Organisatie",
"properties": {
},
"questionText": "Organisatie",
"explainText": null,
"dataType": "entity",
"rejectedValue": null,
"readonly": true,
"required": true,
"hasDomain": true,
"multiValued": false,
"refresh": false,
"displayLength": -1,
"domain": [{
"displayValue": "Amsterdam",
"value": "Organisatie|0f7d20b8-ea98-412e-b375-b51b5d2aa131|"
},
{
"displayValue": "Stockholm",
"value": "Organisatie|fdea2088-60f9-4064-81b2-f491bc0d5b58|"
},
{
"displayValue": "Luxembourg",
"value": "Organisatie|fdbf6753-f727-47c5-b5e2-9ed32c99bd2c|"
},
{
"displayValue": "Paris",
"value": "Organisatie|b26c12a1-794a-472c-adec-d8240cd14770|"
}],
"messages": [],
"values": ["Organisatie|b26c12a1-794a-472c-adec-d8240cd14770|"],
"validations": [{
"blocking": true,
"type": "Required",
"message": null,
"parameters": {
}
}],
"type": "field",
"styles": []
}
}The JSONPath string looks like this:
$..model.domain[?(@.displayValue=='${TestData#Gegevens_melder.Organisatie}')].value[0]
When I use this JSONPath within a property transfer, the value of ${TestData#Gegevens_melder.Organisatie} cannot be found properly. I have verified the JSONPath by adding a JSONPath Match assertion to the specific RestRequest step. Within this assertion the JSONPath works fine so I may conclude the path is correct.
How can I create such a Property Transfer?
I don't want to use the ResponseAsXml possibility because of the enormous namespace I have to declare... but using that posibility works fine when I use the XPath
//m:displayValue[text()='${TestData#Gegevens_melder.Organisatie}']/../m:valueThis seems to be a limitation of open-source SoapUI.
As a workaround you could use XPath with a wildcard to avoid namespace declaration problem.
https://developer.marklogic.com/blog/namespace-wildcards-in-xpath