java - JMeter Beanshell 整数错误

标签 java loops integer jmeter beanshell

我在 JMeter Beanshell 采样器/前/后处理器中遇到整数问题。我有一些值数组,我想使用该数组的每个值来设置 JMeterProperty 以供下次使用。

GOAL> 查询中有 N 行。例如 UPSTREAM 列有差异值,我需要它保存它们以供下次使用。因为我将使用它们作为“OS Processes Sampler”的参数来调用 CMD.exe。

So, if UPSTREAM_1=XXX, UPSTREAM_2=AAA, 
CMD.EXE will looks like: CMD.EXE -upstream_1 -upstream_2, etc.
<小时/>

从 SQL 我得到了值数组

COUNT=31
UPSTREAM_#=31
UPSTREAM_1=XXX
UPSTREAM_2=AAA
....

在后处理器中我设置:

${__setProperty(COUNT, ${COUNT_1})};

我正在尝试这个脚本:

import java.util.*;
import java.text.*; 
import java.io.*;

int max = Integer.parseInt(vars.get(${COUNT_1})); //--COUNT=31, Integer doesnt work
int n = vars.get(${COUNT_1}); //--COUNT=31, this also doesnt work

for (int i=1;i<=n;i++)
{
   ${__setProperty(UPSTREAM_i, ${UPSTREAM_i})};
}

但是 JMeter 日志说它不知道“INT”

2016/10/03 14:52:13 ERROR - jmeter.util.BeanShellInterpreter: Error invoking bsh method: eval   Sourced file: inline evaluation of: `` import java.util.*; import java.text.*;  import java.io.*;  int max = Integer.p . . . '' : Typed variable declaration : Error in method invocation: Method get( int ) not found in class'org.apache.jmeter.threads.JMeterVariables' 
2016/10/03 14:52:13 WARN  - jmeter.protocol.java.sampler.BeanShellSampler: org.apache.jorphan.util.JMeterException: Error invoking bsh method: eval Sourced file: inline evaluation of: `` import java.util.*; import java.text.*;  import java.io.*;  int max = Integer.p . . . '' : Typed variable declaration : Error in method invocation: Method get( int ) not found in class'org.apache.jmeter.threads.JMeterVariables' 

有人可以帮助我吗?也许我错过了一些库或其他东西。我有 JRE/JDK。

<小时/>

UPDATE_1

所有用户变量:

COUNT   ${__property(COUNT)}    Count of Rows from SQL Query

测试计划:

enter image description here

后处理器日志:

SamplerProperties:
variableNames=DATE,DOWNSTREAM,UPSTREAM,COUNT,etc.

JMeterVariables:
COUNT=31
COUNT_#=31
COUNT_1=31
COUNT_2=31
.....
DATE_#=31
DATE_1=04.10.2016
DATE_2=04.10.2016
.....
DOWNSTREAM_#=31
DOWNSTREAM_1=DDD11
DOWNSTREAM_2=DDD11
.....
UPSTREAM_#=31
UPSTREAM_1=XXX
UPSTREAM_2=AAA
....
JMeterProperties:
COUNT= 31
DATE= 04.10.2016
DOWNSTREAM= DDD11
TEST= 1

调试循环日志:

SamplerProperties:
BeanShellSampler.query=import java.util.*;
 import java.text.*; 
 import java.io.*;
 int n = Integer.parseInt(vars.get("COUNT")); 
 for (int i=1;i<=n;i++)
 {
      props.setProperty("UPSTREAM_"+i, vars.get("UPSTREAM_i"));
 }
    JMeterVariables:
    COUNT=31
    COUNT_#=31
    COUNT_1=31
    COUNT_2=31
    .....
    DATE_#=31
    DATE_1=04.10.2016
    DATE_2=04.10.2016
    .....
    DOWNSTREAM_#=31
    DOWNSTREAM_1=DDD11
    DOWNSTREAM_2=DDD11
    .....
    UPSTREAM_#=31
    UPSTREAM_1=XXX
    UPSTREAM_2=AAA
    ....
    JMeterProperties:
    COUNT= 31
    DATE= 04.10.2016
    DOWNSTREAM= DDD11
    TEST= 1

这现在在 Jmeter 日志中:

2016/10/03 17:12:24 ERROR - jmeter.util.BeanShellInterpreter: Error invoking bsh method: eval   Sourced file: inline evaluation of: ``import java.util.*;  import java.text.*;   import java.io.*;  int n = Integer.pa . . . '' : Method Invocation props.setProperty 
2016/10/03 17:12:24 WARN  - jmeter.protocol.java.sampler.BeanShellSampler: org.apache.jorphan.util.JMeterException: Error invoking bsh method: eval Sourced file: inline evaluation of: ``import java.util.*;  import java.text.*;   import java.io.*;  int n = Integer.pa . . . '' : Method Invocation props.setProperty 
<小时/>

UPDATE_2

UBIK LOAD PACK 的解决方案有效:),目标已更新。

最佳答案

您的 Beanshell 脚本有很多错误:

 import java.util.*;
 import java.text.*; 
 import java.io.*;
 int n = Integer.parseInt(vars.get("COUNT")); 
 for (int i=1;i<=n;i++)
 {
      props.setProperty("UPSTREAM_"+i, vars.get("UPSTREAM_"+i));
 }

请注意,您正在做的是在 props (全局)中设置从 vars (特定于每个用户)获得的内容,因此这可能是错误的。

阅读:

关于java - JMeter Beanshell 整数错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39832202/

相关文章:

java - 非常简单的 2D 游戏中的 libgdx 像素碰撞

java.lang.NoSuchFieldError : PUBLIC_ONLY while using Box api in android in signed build 错误

java - java.lang 的正式规范在哪里?

python - 如何使用用户输入附加列表

java - 比较两个整数字符串并打印出匹配项

java - 用于故障排除的指标模式分析

php - 如何在 mysql php 中立即获取所有可用行

css - 带有 $count 的 Div 类名;在 wordpress 循环中

c - 非常数除数的矢量化整数除法最快方法

python - 为什么 math.modf 返回 float ?