【问题标题】:Random variable Logic随机变量逻辑
【发布时间】:2015-10-06 06:41:20
【问题描述】:

我想通过 JMeter 测试一个具有随机变量逻辑的应用程序。这是投票申请。

流程:250 个用户的登录-投票-重新投票-注销

问题:我必须在 3 名成员中投票给 1 人,然后我必须再次投票给另一个人。我在用户定义的变量中定义了投票成员 id,所以首先我使用 bean shell 代码进行第一次投票。这是代码。(Beanshell1)

import java.util.Random;

String[] categories = (vars.get("categories")).split(",");

int idx = new Random().nextInt(categories.length);
String category = (categories[idx]);

vars.put("rnd_cat",category);

为了重新投票,我想排除之前的投票成员ID,所以我使用了下面的代码(Beanshell2)

while(category==rnd_cat)
{
     String[] categories = (vars.get("categories")).split(",");

     int idx2 = new Random().nextInt(categories.length);
     category = (categories[idx2]);
}

但我的回复无效。

【问题讨论】:

    标签: variables random logic jmeter


    【解决方案1】:

    Beanshell 对rnd_cat 是什么一无所知。通过== 运算符比较字符串也不是一个好主意。修改你的“Beanshell2”如下:

    while(category.equals(vars.get("rnd_cat"))
    {
         String[] categories = (vars.get("categories")).split(",");
    
         int idx2 = new Random().nextInt(categories.length);
         String category = (categories[idx2]);
    }
    

    并考虑切换到 JSR223 Test Elementsgroovy 语言,因为这是强烈推荐的在 JMeter 中编写脚本的方法,Beanshell vs JSR223 vs Java JMeter Scripting: The Performance-Off You've Been Waiting For! 文章证明了这一点。

    另一个完全不需要脚本的好选择是__chooseRandom() 函数,可通过JMeter Plugins 获得

    【讨论】:

    • 我得到非法字符执行..我们可以将变量从 beanshell1 传递给 beanshell2 吗?
    • 如果它们在同一个线程组中 - vars.put()vars.get()。如果在单独的 - props.put()props.get() 中。如果没有看到您的测试计划的屏幕截图和完整的 Beanshell 代码,就不可能说出任何明显的话
    猜你喜欢
    • 2023-03-11
    • 2014-01-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-12
    相关资源
    最近更新 更多