在jmeter中创建带变量名的字符串列表 - groovy

时间:2017-12-02 12:46:45

标签: java groovy jmeter

我有一个我正在处理的问题,我创建了一个100个测试的框架,应该每晚一起运行。 所有测试都有创建字符串列表的相同步骤。 我希望每个测试都给出一个新的字符串名称(不要手动更改,因为我会复制它多次)。 我创建了一个生成随机名称的函数,并希望将其用作列表名称。 当我宣布它时,我得到了例外 random是一个字符串,它为每个测试生成随机名称。 在这种情况下,随机值= 100545GKFN。 我想创建名称为100545GKFN的列表是否可能? 如果在Jmeter中我会在每个线程组中创建相同的列表名称会发生​​什么? Jmeter可以处理许多具有相同名称的列表(每个列表在不同的线程组中)吗?例如名称为my_list的1000000个列表?每个在不同的线程组中,并根据每个测试添加到每个字符串?

List<String> vars.get("random") = new ArrayList<String>();

3 个答案:

答案 0 :(得分:0)

我可能完全不明白你的问题...... 不过,您可以使用一些不同的数据结构,如下所示:

    Map<String, List<String>> domain = new HashMap<>();
    String name;
    for (int i = 0; i < MAX_LISTS; i++) {
        name = getRandomName(); //you provided this method
        domain.put(name, new ArrayList<>());
    }

答案 1 :(得分:0)

声明语句似乎很奇怪,因为vars.get(&#34; random&#34;)返回一些null或已被实例化的对象。将返回值声明为List&lt;&gt;是问题。尝试

List<String> myRandomList = new ArrayList<String>();
// ...
myRandomList = someFunctionThatReturnsARandomList();
// ...
vars.set("random") = myRandomList;  // Assuming vars is a key-value map type

或将vars.get()返回值转换为List

List<String> myRandomList = (List<String>) vars.get("random");

如果您想直接访问它,可以尝试

之类的语句
((List<String>) vars.get("random")).add(newRandomValue); 

答案 2 :(得分:0)

我通过创建一个随机id来解决它,并将其放在名为ran_id的变量中。 并且每次都使用此命令创建列表

props.put("list_${ran_id}", my_list);