首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用使用BeanShell的BeanShell预处理程序将数据传递给JMeter?

如何使用使用BeanShell的BeanShell预处理程序将数据传递给JMeter?
EN

Stack Overflow用户
提问于 2015-09-16 10:39:31
回答 2查看 4.9K关注 0票数 3

我需要读取一次文件,其结果需要在采样器中进一步处理。我的策略是线程组-> BeanShell预处理器+ BeanShell采样器

我的预处理器应该为整个线程组读取一次文件,结果将在采样器中用于特定的no。(我不想读取每个线程的文件)

我用预处理器编写了文件读取器代码,现在需要在采样器中使用结果。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-09-16 19:00:12

  1. 不要使用Beanshell PreProcessor,因为它将由每个线程执行。使用一个单独的线程组和一个线程来读取值。
  2. 不要使用Beanshell采样器来创建实际负载,在负载或多或少严重的情况下,它将成为瓶颈。
  3. 使用JSR223测试元件和"groovy“语言编写脚本--这样您就可以从代码中获得最大的性能。

现在回答:

代码语言:javascript
运行
复制
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 -是JMeterContext的缩写
  • props -表示JMeter属性,它是派生所有方法和字段的java.util.Properties的实例,是整个JVM实例的全局实例。

有关前面提到的对象,请参阅JavaDocs以了解还可以做些什么,并通过Beanshell vs JSR223与JMeter脚本:你一直在等待的性能下降!指南了解如何安装groovy脚本引擎、脚本最佳实践以及Beanshell、JSR223+groovy和Java代码的基准测试。

票数 3
EN

Stack Overflow用户

发布于 2015-09-16 15:03:46

使用千分尺变量存储已读取的值,然后在后续步骤中使用它们。请注意,每次执行线程循环时,预处理器都会运行.

在beanshell预处理器中,可以存储如下变量:

代码语言:javascript
运行
复制
vars.put("name","value")

然后访问它,作为

代码语言:javascript
运行
复制
vars.get("name") 

在任何其他采样器的字段中作为${name}

请注意,如果预处理器是主线程组的一部分,它将在每次线程循环时运行。如果这是一个昂贵的操作,或者在运行期间值不会更改,则可能需要使用安装线程组

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32606288

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档