how to replace variables in a string in jmeter?

42 views Asked by At

I am working on a Beanshell preprocessor and I need to replace the values ​​into my "String" to assign the parameter values (json format), I have this

String textToSign = 
"{ \"origin\": \"${origin_encrypted}\"," +
"  \"destiny\": \"${destiny_encrypted}\"," +
"  \"subject\": \"${subject_encrypted}\"," +
"  \"amount\": \"${amount_encrypted}\"," +
"  \"softToken\": \"${softToken_encrypted}\" }";
log.info("Text To Sign: " + textToSign);

but i get Text To Sign: { "origin": "${origin_encrypted}", "destiny": "${destiny_encrypted}", "subject": "${subject_encrypted}", "amount": "${amount_encrypted}", "softToken": "${softToken_encrypted}" } please help me :(

1

There are 1 answers

0
Dmitri T On

First of all you should reconsider using Beanshell, since JMeter 3.1 it's recommended to use JSR223 Test Elements and Groovy language for scripting.

Also Groovy provides more handy way to build JSON than string concatenation.

def payload = [:]

payload.put('origin', vars.get('origin_encrypted'))
payload.put('destiny', vars.get('destiny_encrypted'))
payload.put('subject', vars.get('subject_encrypted'))
payload.put('amount', vars.get('amount_encrypted'))
payload.put('softToken', vars.get('softToken_encrypted'))

String textToSign = new groovy.json.JsonBuilder(payload).toPrettyString()

log.info("Text To Sign: " + textToSign)

More information on Groovy scripting in JMeter: Apache Groovy: What Is Groovy Used For?