Jmeter中的Bean shell实用程序

时间:2016-05-04 17:58:41

标签: java jmeter beanshell

如何在jmeter中创建实用程序bean shell脚本。在Jmeter中我有5个线程组,它包含bean shell samplers.i想在我的线程组中使用beanshell类。下面给出的是样本beanshell类,它包含一个名为add()的方法。

 SampleBeanShell(){

     int add(int a,int b){
         return a+b;
       }
      return this;
    }

    obj=SampleBeanShell();
    int result=obj.add(10,20);
    log.info("REsult is"+result);

我想在线程组bean sampler或bean shell断言中的另一个中使用add()方法。

if (bsh.shared.myObj == void){
        myObj=SampleBeanShell(); 
    }
    int result1=myObj.add(12,20);
 log.info("REsult is"+result1);

我添加了上面的代码片段,我无法在另一个bean采样器和另一个线程组中调用此方法。

int result=bsh.shared.myObj.add(20,21);
log.info("2.Bean sampler result"+result);

2 个答案:

答案 0 :(得分:1)

启动文件:

您可以在启动文件中定义它。为此目的,有一个属性beanshell.init.file。请在.bsh文件中定义并使用此属性在开始测试时读取文件。

Bsh共享命名空间:

您还可以查看bsh.shared命名空间以跨线程组共享对象。

我首先添加了一个设置线程组来定义SampleBeanShell。稍后,在所有其他线程组中,我只使用bsh.shared.myUtil来访问SampleBeanShell对象。

用法:bsh.shared.myUtil.add(10,20)

enter image description here

enter image description here

检查here以获取更多信息 - #Sharing Variables。

答案 1 :(得分:0)

根据JMeter Best Practices,最好避免编写脚本并尽可能使用JMeter内置测试元素和函数。

您可以使用__intSum()__longSum()函数添加2个(或更多)值并将结果存储到JMeter变量中。

有关上述和其他JMeter功能的更多信息,请参阅How to Use JMeter Functions帖子系列。

要在Beanshell中实现场景,您需要在其他线程组中使用该方法,如:

  • 在第一个线程组中:

    bsh.shared.myObj=SampleBeanshell();
    
  • 在第二个线程组中:

    bsh.shared.myObj.add(50,60);
    

您的代码不起作用,因为您没有将任何内容存储到第一个线程组中的myObj