JSONPath RegEx Match Assertion

The JSONPath RegEx Match assertion uses a JSONPath expression to select content from the target property and compare the result to a regular expression you have specified.

This assertion returns a Boolean value. To compare a value with some specific content, use the JSONPath Match assertion.

Important

This assertion applies only to requests and responses, bodies of which contain JSON data.

To learn more about the JSONPath syntax, see JSONPath Reference.

Availability

This assertion is available in multiple ReadyAPI applications. Depending on the application, it validates the following data:

In...

Checks...

To learn more...

Functional tests

The request or response body.

See Working With Assertions in Functional Tests.

Security tests

The response body.

See Security Assertions.

Virtual services

The request body.

See Assertions in Virtual Services.

Create an assertion

Setting up properties

  1. In the JSONPath Expression edit box, specify the JSONPath expression to point at the element you want to compare the regular expression with, or use the toolbar controls to create the expression automatically.

    Important

    To use the toolbar controls, run the request you want to validate at least once.

    ReadyAPI: Configuring the JSONPath Match assertion

    Click Declare button to call the Select JSON dialog. Use it to select a node from the last request or response and create a JSON path expression for this node.

  2. In the Regular Expression edit box, specify the regular expression you want to use for the comparison.

  3. In the Expected Result edit box, specify the value you are expecting to get.

    Use these commands to visually select the value from the existing request or response:

    Option

    Description

    Select Content

    Add a property expansion in the result.

    Select from Current

    Get a value from the last response you have received (or the last request the virtual service has received).

  4. To command the assertion to use an asterisk wildcard (*) for varying parts of the value, select Allow Wildcards.

    Note

    If you do not select this option, the assertion will fail on dynamic values.

  5. To test your assertion on the last response you have received (or the last request the virtual service has received), click Test.

Tips

  • To avoid typing the desired JSONPath expression manually, click select-xpath.png and select the desired JSON element or attribute in the subsequent dialog.

    ReadyAPI: Selecting an element for JSONPath expression

    ReadyAPI will form the JSONPath expression that refers the selected item and will set the result from the last request or response as the expected result.

  • ASP.NET-based services enclose the JSON response payload into the d root element for security reasons. By default, ReadyAPI does not strip the d element out, but there is an option to automatically remove it. If you turn this option on, JSON-related assertions created from the JSON response will not take the root element into account, which can cause the assertion to fail unexpectedly.

Examples

  • The following JSONPath expression gets all text subelements in the widget element:

    $.widget.text
  • The following JSONPath expression gets all subelements in the widget element:

    $.widget.*
  • The following JSONPath expression gets all text subelements of the header type in the widget element:

    $.widget.text[?(@.type=='header')]

Other assertions with JSONPath

Add more assertions that use JSONPath expressions:

See Also

Publication date: