0

I'm trying to set Jmeter variables extracted from Jmeter properties inside JSR223 Groovy Assertion.

Jmeter properties in which I'm interested looks like:

...
created_blob_A_6= fde65de0-3e32-11e8-a5b4-3906549016d8
created_blob_A_8= fef92d70-3e32-11e8-a5b4-3906549016d8
created_blob_A_9= ff775e20-3e32-11e8-bac3-e51250ffea15
created_blob_B_1= fd7302a0-3e32-11e8-a5b4-3906549016d8
created_blob_B_10= 00141350-3e33-11e8-bac3-e51250ffea15
...

In order to extract values from Jmeter properties, I've created JSR223 Groovy the following Assertion script:

def readParamPrefix = 'created_blob'
def writeParamPrefix = 'blob_to_delete'
def chucnkTypes = 'A'..'E'
def newBlobCounter = 1

chucnkTypes.each{ chunkLetter ->
    (1..10).each{ streamNumber ->
        String readParamName = readParamPrefix + '_' + chunkLetter + '_' + streamNumber
        log.info('Read param name: ' + readParamName)
        String writeParamName = writeParamPrefix + '_' + newBlobCounter
        log.info('Write param name: ' + writeParamName)
        String blob_id_to_delete = props.get(readParamName).toString().trim()
        log.info('' + readParamName + ' => ' + writeParamName + ' (' + blob_id_to_delete + ')')
        vars.put(writeParamName.toString(), blob_id_to_delete.toString())
        newBlobCounter++
    }
}

The script doesn't work for JMeter variables, but works fine for JMeter properties. Here is how JMeter properies look like:

JMeterProperties:
...
blob_to_delete_1=9b1c4f40-3e36-11e8-a5b4-3906549016d8
blob_to_delete_10=9da5e050-3e36-11e8-bac3-e51250ffea15
blob_to_delete_11=9b235420-3e36-11e8-bac3-e51250ffea15
blob_to_delete_50=9b656630-3e36-11e8-bac3-e51250ffea15

Could you tell me, how I can fix my code for setting up JMeter variables correctly?

Eugene
  • 5,353
  • 6
  • 27
  • 37

2 Answers2

0

Don't use ${varName} in scripts, Notice JSR223 Best Practices:

ensure the script does not use any variable using ${varName} as caching would take only first value of ${varName}. Instead use : vars.get("varName") You can also pass them as Parameters to the script and use them this way.

After you change it, look for errors in logs if it still doesn't works

Ori Marko
  • 56,308
  • 23
  • 131
  • 233
  • I removed all dollar signs ($) before variable names, it didn't help. Also, there are no errors in JMeter logs – Eugene Apr 12 '18 at 11:39
  • @Eugene you should not remove $ sign, it should be converted to `vars.get("varName")` – Ori Marko Apr 12 '18 at 11:41
0

I don't see any problem with your code:

JMeter Groovy Variables

So I would recommend:

JMeter Debug Variables

Dmitri T
  • 159,985
  • 5
  • 83
  • 133