如何将数组从JSR223采样器传递到另一个JSR223采样器?

时间:2018-07-25 09:05:57

标签: jmeter

我只想知道如何将数组从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[]的数据

谢谢!

2 个答案:

答案 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