The JSON data source parses the input JSON expression by using JSONPath and populates the specified properties with the parsed values.
In this topic, we focus on how to configure the JSON data source. We assume you are already familiar with data-driven testing and how to configure a data-driven loop. Otherwise, please read Basic Concepts of Data-Driven Testing, or complete some of our tutorials before you continue. |
You can use data sources of the JSON type in the Data Source test step in functional tests. They are not available in virtual services.
Configuration
Source Step
Specifies a test step that contains the JSON property to read from. For example, another data source or REST Request test step.
Source Property
Specifies the property that contains JSON data.
Row Path
The JSONPath expression that returns an array element. The data source will iterate through the elements of this array and obtain the data. You can specify the expression manually or click and select the desired element with the Select Row Path dialog. See an example below.
Column Paths
JSONPath expressions that return the desired property values. ReadyAPI applies these expressions to the JSON structure returned by the JSONPath expression specified in the Row Path.
The data source assigns data to the properties in the order they are listed in the Properties panel.
Make sure the number of properties is the same as the number of JSONPath expressions. |
To add a new expression, click Add.
To change the selected expression manually, click Edit. Also, you can click and select the desired element with the Select Column Path dialog.
To remove the selected expression, click Remove.
To learn how to specify Column Paths, see the example below.
Example
The following example demonstrates how to configure a JSON data source:
1. Specify the source property
In the Source Step drop-down list, specify a test step whose property contains JSON data. Specify this property in the Source Property drop down list.
For example, you can specify a REST Request test step, the response to which contains JSON data:
2. Select data to iterate through
In the Row Path, specify the JSONPath expression that returns an array object with the desired data.
Assume you have the following JSON data:
JSON
{
"store" : {
"book" : [
{
"category" : "reference",
"author" : "Nigel Rees",
"title" : "Sayings of the Century",
"price" : {
"usd" : 8.95,
"euro" : 8.95,
"pound" : 7.95
}
},
{
"category" : "fiction",
"author" : "Evelyn Waugh",
"title" : "Sword of Honour",
"price" : {
"usd" : 12.99,
"euro" : 12.99,
"pound" : 11.99
}
},
{
"category" : "fiction",
"author" : "Herman Melville",
"title" : "Moby Dick",
"isbn" : "0-553-21311-3",
"price" : {
"usd" : 8.99,
"euro" : 8.99,
"pound" : 7.99
}
},
{
"category" : "fiction",
"author" : "J. R. R. Tolkien",
"title" : "The Lord of the Rings",
"isbn" : "0-395-19395-8",
"price" : {
"usd" : 22.99,
"euro" : 22.99,
"pound" : 20.99
}
}
],
"bicycle" : {
"color" : "red",
"price" : {
"usd" : 19.95,
"euro" : 19.95,
"pound" : 17.95
}
}
}
}
To get a list of books, specify the following JSONPath expression:
You can specify the expression manually, or click and select the needed element by using the Select Row Path dialog:
3. Specify properties to obtain
-
Click to add a new property.
ReadyAPI will add a new column path to the list.
-
If the name of the added property is the same as the name of the desired JSON object in the returned array, most likely, there is no need to customize the added JSONPath. Otherwise, perform the following steps to modify the JSONPath:
-
Select the added column path in the list.
-
Specify the JSONPath expression that returns the desired property. Note that ReadyAPI will apply this expression to the object returned by the Row Path JSONPath expression. For example, to get the price/usd property from the JSON data above, specify the following JSONPath expression:
['price']['usd']To specify the JSONPath expression, click to specify the expression by using the Select Column Path dialog:
You can also click Edit and specify the expression manually.
-
-
Repeat the first two steps to add other properties.
-
Click to test the data source:
See Also
Data Source Test Step
Data Source Loop Test Step
Groovy Data Source
Data Source Types