Search code examples
jmeterjsonpath

JSON path for contains


I have the below json

{
"swagger": "2.0",
"info": {
"version": "v2",
"title": "Portfolio"
},
"host": "portfolio.com",
"schemes": [
"https"
],
"paths": {
"/v2/clients/{clientId}/assets": {
"get": {
"tags": [
"assets"

There are multiple paths I want to extract but they all start /v2/clients so what Im looking for is everything that starts with /v2/clients but none of the sub-data that sits the below, just the full paths between the ""

I am using jmeter JSON extractor and if I use $.paths it starts at this point but brings through all the mass amount of sub-data. I've tried looking around stackoverflow but can't find exactly what I am looking for. Any help appreciated


Solution

  • I believe the easiest would be going for JSR223 PostProcessor and Groovy language

    1. Add JSR223 PostProcessor as a child of the request which returns above JSON
    2. Put the following code into "Script" area:

      def index = 1
      new groovy.json.JsonSlurper().parse(prev.getResponseData()).paths.each { path ->
          if (path.getKey().startsWith('/v2')) {
              vars.put('path_' + index, path.getKey())
              index++
          }
      }
      
    3. That's it, you will have JMeter Variables like:

      path_1=/v2/clients/{clientId}/assets
      path_2=/v2/foo/bar
      path_3=/v2/baz/qux
      etc.
      

    More information: