Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jmeter-如果变量已经存在,则使用Java创建新变量_Java_Jmeter - Fatal编程技术网

Jmeter-如果变量已经存在,则使用Java创建新变量

Jmeter-如果变量已经存在,则使用Java创建新变量,java,jmeter,Java,Jmeter,我正在使用Jmeter,希望使用Java来更新变量 我有一个名为XXVONO的变量,它存储值并在循环中执行时添加一个数字后缀。例如: XXVONO_1 = value1 XXVONO_2 = value2 XXVONO_3 = value3 这些变量包含执行循环时自动存储的值。但是,我正在尝试编写一个代码来检查变量是否为空,如果为true,它将保存新值,如果为false,它将创建一个新变量(XXVONO_4),并在不覆盖现有变量的情况下保存该值 我该怎么做呢?我使用while循环吗 if

我正在使用Jmeter,希望使用Java来更新变量

我有一个名为XXVONO的变量,它存储值并在循环中执行时添加一个数字后缀。例如:

XXVONO_1 = value1

XXVONO_2 = value2

XXVONO_3 = value3
这些变量包含执行循环时自动存储的值。但是,我正在尝试编写一个代码来检查变量是否为空,如果为true,它将保存新值,如果为false,它将创建一个新变量(XXVONO_4),并在不覆盖现有变量的情况下保存该值

我该怎么做呢?我使用while循环吗

if (vars.get("VONO_2") != "") {
    if (vars.get("XXVONO_" + vars.get("aps200_count_3")) == "") {
        vars.put("XXVONO_" + vars.get("aps200_count_3"), vars.get("VONO_2"));
        vars.put("XXJRNO_" + vars.get("aps200_count_3"), vars.get("JRNO_2"));
    } else {
        while (vars.get("XXVONO_" + vars.get("aps200_count_3")) != "") {
            vars.put("new_count", vars.get("aps200_count_3"));
            Integer temp = Integer.parseInt(vars.get("new_count")) + 1;
            vars.put("new_count", temp.toString());         
        }
        vars.put("XXVONO_" + vars.get("new_count"), vars.get("VONO_2"));
        vars.put("XXJRNO_" + vars.get("new_count"), vars.get("JRNO_2"));
    }
}

您可以尝试使用映射,而不是在运行时创建变量

Map<String,Object> map = new HashMap<>();

您可以使用if/else语句:

if (XXVONO_1 == null)
{
  XXYVONO_1 = //Insert data here
}
else if (XXVONO_2 == null)
{
  XXVONO_2 = //Insert data here
}
else  if (XXVONO_3 == null)
{
  XXVONO_3 == //Insert data here
}
else
{
  XXVONO_4 == //Insert data here
}
当然,您可以继续添加变量

如果变量数量没有限制,请尝试以下操作:

HashMap<String, String> XXVONO = new HashMap<String, Integer>();

for (i = 1; i <= /*Number of variables*/; i += 1; i++) {
  if (XXVONO["XXVONO_" + i] == null) {
    XXVONO.put("XXVONO_" + i, /*insert data here*/);
  }
}
HashMap XXVONO=newhashmap();

对于(i=1;i为什么使用jmeter标记?我在jmeter中使用了这个标记?我们可以看到代码吗?主要是如何创建变量.vars.put(“XXVONO_”+vars.get(“tmp_cnt”)、vars.get(“VONO_2”));向那些在我不太清楚的情况下发布答案以提供帮助的人致歉。我不熟悉格式,无法发布代码片段。我刚刚添加了用于JMeter的代码。您在此处添加的解决方案是否适用于JMeter?我希望这样编码,以便每次都自动添加新的数字后缀e我执行脚本并存储VONO_2/JRNO_2中的值应该有多少个变量?如果没有,我建议使用数组/哈希。我添加到了答案中。
HashMap<String, String> XXVONO = new HashMap<String, Integer>();

for (i = 1; i <= /*Number of variables*/; i += 1; i++) {
  if (XXVONO["XXVONO_" + i] == null) {
    XXVONO.put("XXVONO_" + i, /*insert data here*/);
  }
}