【问题标题】:How to Pass an Array from a JSR223 Sampler to Another JSR223 Sampler?如何将数组从 JSR223 采样器传递到另一个 JSR223 采样器?
【发布时间】:2018-07-25 09:05:57
【问题描述】:

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

提前致谢!

【问题讨论】:

    标签: jmeter


    【解决方案1】:

    只需使用vars 简写,它代表JMeterVariables 类实例,因此您应该能够使用vars.putObject() 函数将strMeetingsArray 添加到JMeter 变量和vars.getObject() 以检索它。

    所以在第一个 JSR223 采样器中:

    vars.putObject('somevar', strMeetingsArray)
    

    在第二个 JSR223 采样器中:

    def strMeetingsArray = vars.getObject('somevar')
    

    更多信息:The Groovy Templates Cheat Sheet for JMeter

    【讨论】:

    • 谢谢,成功了!反正vars.put("intDashboardMeetingsCount", size)有错误,因为vars.put()只能输入String数据类型,所以我只是转换了一下。
    【解决方案2】:

    您可以将变量 (vars) 用于单个线程。做多线程测试时,可以使用属性(props)。

    使用的示例变量 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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-05
      相关资源
      最近更新 更多