我只想知道如何将数组从JSR223采样器传递到另一个JSR223采样器。请注意,两个JSR223处于同一线程中。我一直在搜索,但找不到确切的解决方案。我只是Jmeter的新手,只是在搜索Java代码等。所以这是代码:
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;
}
}
我已经获得了intDashboardMeetingsCount
中的记录数,我只需要知道如何获取strMeetingsArray[]
的数据
谢谢!
答案 0 :(得分:0)
只需使用简写vars
,它代表JMeterVariables类实例,因此您应该能够使用vars.putObject()
函数,以便将strMeetingsArray
添加到JMeter Variables和{ {3}}进行检索。
因此在第一个JSR223采样器中:
vars.putObject('somevar', strMeetingsArray)
在第二个JSR223采样器中:
def strMeetingsArray = vars.getObject('somevar')
更多信息:vars.getObject()
答案 1 :(得分:0)
您可以为单个线程使用变量(vars)。在执行多线程测试时,可以使用属性(属性)。
示例变量使用的Javascript代码:
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
使用的示例属性的Javascript代码:
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
对于常规更改,请将变量代码var
更改为def