如何使用 JMeter 使用 BeanShell 预处理器将数据传递给 BeanShell 采样器?
How to pass data to BeanShell sampler using BeanShell preprocessor using JMeter?
我需要读取一次文件并在采样器中进一步处理其结果。
我的策略是 ThreadGroup--> BeanShell Preprocessor + BeanShell Sampler
我的预处理器应该为整个线程组读取一次文件,并将结果用于特定编号的采样器。线程数。(我不想为每个线程读取文件)
我在预处理器中编写了文件 reader 代码,现在需要在采样器中使用结果。
使用Jmeter variables 存储您读取的值,然后在后续步骤中使用它们。请注意,每次执行线程循环时,预处理器都会 运行。
在你的 beanshell 预处理器中,你可以像这样存储一个变量:
vars.put("name","value")
然后稍后以
访问它
vars.get("name")
在 beanshell 中,或作为 ${name}
在任何其他采样器的字段中。
请注意,如果您的预处理器是主线程组的一部分,则每次线程循环时都会 运行。如果这是一项昂贵的操作或值在 运行 期间没有更改,您可能需要使用 setup thread group.
- 不要使用 Beanshell PreProcessor,因为它会被每个线程执行。使用具有 1 个线程的单独线程组来读取值。
- 不要使用Beanshell Samplers来创建实际负载,如果负载或多或少会成为瓶颈。
- 使用 JSR223 Test Elements 和 "groovy" 语言编写脚本 - 这样您就可以从代码中获得最大性能。
现在回答:
int number = ctx.getThread().getThreadNum(); // get current thread number
props.put("value_for_thread_" + number, "foo"); // store some value specific for the specific thread
String value = props.get("value_for_thread_5"); // get value for thread 5
其中:
ctx
- 是 shorthand for JMeterContext
props
- 代表 JMeter Properties,java.util.Properties 派生所有方法和字段的实例,对整个 JVM 实例是全局的。
请参阅Java上述对象的文档以了解还可以做什么,以及Beanshell vs JSR223 vs Java JMeter Scripting: The Performance-Off You've Been Waiting For!有关安装groovy脚本引擎、脚本最佳实践和 Beanshell、JSR223+ 基准测试的说明指南groovy 和 Java 代码。
我需要读取一次文件并在采样器中进一步处理其结果。 我的策略是 ThreadGroup--> BeanShell Preprocessor + BeanShell Sampler
我的预处理器应该为整个线程组读取一次文件,并将结果用于特定编号的采样器。线程数。(我不想为每个线程读取文件)
我在预处理器中编写了文件 reader 代码,现在需要在采样器中使用结果。
使用Jmeter variables 存储您读取的值,然后在后续步骤中使用它们。请注意,每次执行线程循环时,预处理器都会 运行。
在你的 beanshell 预处理器中,你可以像这样存储一个变量:
vars.put("name","value")
然后稍后以
访问它vars.get("name")
在 beanshell 中,或作为 ${name}
在任何其他采样器的字段中。
请注意,如果您的预处理器是主线程组的一部分,则每次线程循环时都会 运行。如果这是一项昂贵的操作或值在 运行 期间没有更改,您可能需要使用 setup thread group.
- 不要使用 Beanshell PreProcessor,因为它会被每个线程执行。使用具有 1 个线程的单独线程组来读取值。
- 不要使用Beanshell Samplers来创建实际负载,如果负载或多或少会成为瓶颈。
- 使用 JSR223 Test Elements 和 "groovy" 语言编写脚本 - 这样您就可以从代码中获得最大性能。
现在回答:
int number = ctx.getThread().getThreadNum(); // get current thread number
props.put("value_for_thread_" + number, "foo"); // store some value specific for the specific thread
String value = props.get("value_for_thread_5"); // get value for thread 5
其中:
ctx
- 是 shorthand for JMeterContextprops
- 代表 JMeter Properties,java.util.Properties 派生所有方法和字段的实例,对整个 JVM 实例是全局的。
请参阅Java上述对象的文档以了解还可以做什么,以及Beanshell vs JSR223 vs Java JMeter Scripting: The Performance-Off You've Been Waiting For!有关安装groovy脚本引擎、脚本最佳实践和 Beanshell、JSR223+ 基准测试的说明指南groovy 和 Java 代码。