Forum Discussion
nmrao thanks for the note.
Consider the JSON snippet Below.
"Name": "ABC",
"Item_Id": "<EmployeeId>",
"Status_Id": "Received",
"Points": 5,
An assertion with the below path will yield value as "Received"
[?(@.Item_Id=='${#prop_EmployeeId}')].Status_Id.
However in my case the value which goes in the property <prop_EmployeeId> is captured from a response and this is got at run time .
I want to use this property prop_EmployeeId which is filled at run time and place it in the JSON path in the assertion so that i can validate the value "Received".
Please let me now if you need more information
- HKosova8 years agoSmartBear Alumni (Retired)
You need to prefix the property name with the corresponding scope, such as ${#Project#EmployeeId} if it's a project property or ${#TestCase#EmployeeId} if it's a test case property.
- Sriraj8 years agoContributor
HKosova Right. i was concentrating on the problem statement thus did not add the testcase name etc..
- HKosova8 years agoSmartBear Alumni (Retired)
Given the exact JSON
{ "Name": "ABC", "Item_Id": "<EmployeeId>", "Status_Id": "Received", "Points": 5 }
your JSONPath should work fine, provided that the property name, scope and value are correct:
[?(@.Item_Id=='${#TestCase#EmployeeId}')].Status_Id
If the object you are testing is nested inside another object, such as:
{ "something": { "Name": "ABC", "Item_Id": "<EmployeeId>", "Status_Id": "Received", "Points": 5 } }
you need to specify the path from the root object, e.g.:
$..[?(@.Item_Id=='${#TestCase#EmployeeId}')].Status_Id
If you post the exact JSON, we could give a more precise answer.
Related Content
- 3 months agoarmygrad
- 9 months agoalinabond
- 3 years agoaeswaramoorthy