【问题标题】:Loop through the array - Jmeter循环遍历数组 - Jmeter
【发布时间】:2019-10-07 11:33:57
【问题描述】:

我尝试循环场景 2 次从数组中获取数据。

我的用例是:我想为多个国家/地区创建用户,所以我不想处理这种情况,而是想实现循环逻辑。

到目前为止,尝试过,但没有成功:

  1. 我想从这里获取数据

//JSR223 预处理器

String[] varArray = {"US", "UK"};
idx = Integer.parseInt(vars.get("loopCounter"))-1;
vars.put("myVariable", varArray[idx]);

  1. 计数器逻辑:

  2. 整个脚本,它是多个 API 调用链,我想使用获取数据,只有一个调用。

结果: 如果我尝试使用 fetch 变量,我得到了null

Script37.groovy: 1: unexpected token: US @ line 1, column 22.
   String[] varArray = {"US", "UK"};

【问题讨论】:

  • 只需编辑我的帖子,获取的变量为空。

标签: groovy jmeter jsr223


【解决方案1】:
  1. 通过User Defined Variables 定义countries 变量,例如:

  2. Loop Controller中可以通过__groovy()函数动态获取数组长度:

    ${__groovy(vars.get('countries').split().size(),)}
    

  3. 您可以在循环控制器中的任何位置引用给定循环的“当前”国家/地区:

    ${__groovy(vars.get('countries').split()[vars.get('__jm__Loop Controller__idx') as int],)}
    

【讨论】:

    【解决方案2】:

    java数组使用Apache Groovy时需要使用方括号:

    String[] varArray = ["US", "UK"];
    

    如果您使用的是 Beanshell/Java 脚本语言,您的代码将可以工作

    String[] varArray = {"US", "UK"};
    

    【讨论】:

    • 好的,错误消失了。只是测试没有运行两次(基于两个获取的变量)循环控制器变量字段应该使用什么?
    • @vlatko606 ${loopCounter} 在循环计数中
    • @vlatko606 我的回答没有帮助吗?在您的情况下,循环计数可以是数字 2
    • 不,我仍然没有设法告诉“循环控制器”运行多少次。如果我使用 ${loopCounter},我的“循环控制器”根本没有运行。如果我在“循环控制器”ex:2 中使用静态数字,它会运行 2 次。我做错了什么?
    • vars.put("myVariable", String.valueOf( varArray.length));
    猜你喜欢
    • 2014-06-04
    • 1970-01-01
    • 2019-07-10
    • 1970-01-01
    • 2018-04-01
    • 2013-12-16
    • 2011-01-25
    相关资源
    最近更新 更多