0
votes

I just want to know how to pass an array from a JSR223 sampler to another JSR223 sampler. Note that the two JSR223 are just in the same thread. I had been searching and I cannot find the exact solution. I'm just a newbie in Jmeter, just searching for java codes etc. So here is the code:

import groovy.json.JsonSlurper;

String response = prev.getResponseDataAsString();

def jsonSlurper = new JsonSlurper();
def json = jsonSlurper.parseText(response);

int size = json.records.size;
vars.put("intDashboardMeetingsCount", size);

def strMeetingsArray = new String[size];

if (size > 0) {
    for (int i=0;i<size;i++) {
        strMeetingsArray[i] = json.records.get(i).id;
    }
}

I already got the number of records in intDashboardMeetingsCount, and I just need to know how will I able to get the data of strMeetingsArray[]

Thanks in advance!

2

2 Answers

1
votes

Just use vars shorthand, it stands for JMeterVariables class instance so you should be able to use vars.putObject() function in order to add your strMeetingsArray to JMeter Variables and vars.getObject() to retrieve it.

So in 1st JSR223 Sampler:

vars.putObject('somevar', strMeetingsArray)

in 2nd JSR223 Sampler:

def strMeetingsArray = vars.getObject('somevar')

More information: The Groovy Templates Cheat Sheet for JMeter

0
votes

you can use variables (vars) for a single thread. When you do a multi-thread test, you can use the properties (props).

Sample Variable Used Javascript Code:

vars.put("myString","mysamplestring");
var getString= vars.get("myString");

var array = ['bilal','demir'];
vars.putObject("myArray",array);
var getArray = vars.getObject("myArray");

log.info( "*getString : {} *getArray :{} *firstItem: {} *length : {}" , getString, getArray, getArray.length, getArray[0]);
//output: *getString : mysamplestring *getArray :{0=bilal, 1=demir} *firstItem: bilal *length : 2

Sample Properties Used Javascript Code:

var array = ['bilal','demir'];
props.put("myArray",array);
var getArray = props.get("myArray");

log.info( "getArray :{}  length : {}" , getArray, getArray.length);
//output: getArray :{0=bilal, 1=demir}  length : 2

For groovy change define variable code var to def