- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我在 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
测试计划:
后处理器日志:
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/
我想运行从不同 beanshell 文件导入的类。但我不知道如何从主 beanshell 文件实例化类。这可能吗? 我导入的类: class HelloW { public void run(){
我的 Beanshell 后处理器中有这段代码 String line; String[] words; line = SampleResult.getResponseMessage(); log.i
我正在使用 beanshell bsh-2.0b4.jar 文件。我有构建路径并在 java 程序中使用它。我已经设法从控制台获取打印语句。但是如果是返回一个值,如何获取返回值。 import
我正在尝试弄清楚如何将参数传递给从初始脚本调用的第二个脚本。 Beanshell 文档对此只字不提。有谁知道如何做到这一点? // Start.bsh import bsh.Interpreter;
我需要读取一次文件并在采样器中进一步处理其结果。我的策略是ThreadGroup--> BeanShell Preprocessor + BeanShell Sampler 我的预处理器应该为整个线程
只是试图将整数转换为字符串。 vars.put("test", i); 我想将值放在变量“test”中,但它不起作用,我想我必须将 int 转换为字符串。 但我不知道该怎么做。 我刚刚发现了如何在 B
我正在 JMeter BeanShell 中尝试以下代码 我需要比较 OldT 的值与 ${so_tid_1}这是一个精确的字符串而不是一个变量 String OldT = vars.get("Old
我正在使用 beanshell 采样器打印 csv 文件中的响应,但完成后它并没有停止。 如何才能让它在打印后停止。下面是我使用的示例代码,acctId 用于其他线程组的预处理器中。 import j
我正在学习 Jmeter。 我有一个 BeanShell 断言,它应该会使测试失败(失败被硬编码到断言中)。但所有测试都通过了。我做错了什么? 我的理解是,如果 BSA 设置 Faliure = tr
这段代码: print(" - Start"); int[] num = new int[] {1,2,3,4,5,6,7,8,9,10}; for(int i : num) { print(
我有以下 JSON: [ { "": "", "substituted_restday": "2020-02-01", "original_re
什么是 beanshell 中的 if not equal 语句?如果这相等: if ("myVarValue".equals(vars.get("MY_VARIABLE"))) 最佳答案 使用 !
我想使用我的java代码作为beanshell脚本,但是beanshell抛出异常,说在命名空间中找不到类。 beanshell中没有内部类还是有其他用途? 我的脚本如下所示: ....... ...
我正在尝试测试 BeanShell 的命令行解释器如何在我的机器上处理基本的 Java 命令和语法,并查看是否可以以任何方式自定义其行为。我已在运行 OS X 10.10.1 的计算机上安装了版本 2
如何将 iterate the directory contents and put each file 放入 List 或其他集合中? thufir@dur:~/beanshell$ thufir@
我有一个 Bean shell 预处理器,它最终根据用户传递的值设置一些全局变量,例如主机名和路径。 bean shell 设置的变量将被所有线程组使用。 目前,我已将 BS 预处理器放置在线程之外,
是否可以停止线程,或者在 BeanShell 预处理器中强制失败?我尝试从 ThreadGroup 类和其他一些类访问 "stop()" 函数/方法,但我不确定我做得是否正确,或者是否正确有可能。 如
我在调试 beanshell 脚本时遇到了麻烦,但我一直得到的是: 异常调用导入的对象方法。 :在第 194 行:在文件中:内联评估:``import java.lang.reflect.Invoca
我正在尝试为 beanshell 中编写的代码编写一个基本的静态代码分析工具,该工具将执行一些基本检查,例如未使用的变量、方法以及可能永远不会评估为 true 的条件。 我尝试使用 beanshell
我不太确定如何解释这一点,但这里是: 我希望能够将一些命令“插入”到将从外部文件加载的代码部分中。为了解析和执行这些命令,我可能必须使用一些脚本,例如 BeanShell 的 eval 方法。问题
我是一名优秀的程序员,十分优秀!