【问题标题】:jdbc sampler with while controller带有while控制器的jdbc采样器
【发布时间】:2015-07-15 11:41:53
【问题描述】:

我想发布一些群发消息。系统需要一些时间来处理它们,所以我不想进行第二次迭代。我的设置是这样的 而控制器->jdbc 请求->beanshell 后处理器

在 While 控制器中,条件是 ${__java script("${check_1}" != "0")} check 是作为数据库采样器一部分的变量名称,它检查是否所有消息都已处理。它是一个计数,如果它是 0,我们必须停止循环。 作为 Bean Shell 后处理器的一部分,我添加了一个条件,如果计数不等于 0,则等待。

if(${check_1} != 0) {
    out("check Count not zero, waiting for 5 sec " + ${check_1});
    Thread.sleep(5000);
}else
    out("check Count is zero " + ${check_1});

发生了什么,结果是这样的 如果 check_1 > 0 ,则等待 5 秒,一旦为 0,则通过多次执行采样器进入无限循环

条件有问题吗。如果您有任何其他解决方案,请提出建议。

【问题讨论】:

    标签: while-loop jmeter post-processor


    【解决方案1】:
    1. __javaScript()函数和定义条件的正确用法是:

      ${__javaScript(${check_1} != 0,)}
      
    2. correct way of accessing JMeter Variables from Beanshell 是:

      if(vars.get("check_1").equals("0"))
      

    希望这会有所帮助。

    【讨论】:

    • 如果我保留 ${__javaScript(${check_1}!=0,)} 我得到以下错误 - 错误 - jmeter.functions.JavaScript: 错误处理 Javascript: [${check_1}!= 0] org.mozilla.javascript.EvaluatorException:缺失; before 语句 (#1) 如果我放置 ${__javaScript("${check_1}"!=0,)} - 即使 check_1=0 也会调用采样器。如果 check_1>0,则调用采样器,但一旦 check_1=0,它就会进入无限循环。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-26
    • 2021-05-01
    相关资源
    最近更新 更多