Jmeter 中的 Bean shell 实用程序
Bean shell utility in Jmeter
如何在 jmeter 中创建实用 bean shell 脚本。在 Jmeter 中,我有 5 个线程组,其中包含 bean shell samplers.i 想要在我的线程 group.The 中使用 beanshell class 下面给出的是示例 bean shell class 其中包含一个名为 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 采样器或 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);
启动文件:
您可以在启动文件中定义它。为此,有一个 属性 beanshell.init.file
。请在 .bsh
文件中定义并在开始测试时使用此 属性 读取文件。
Bsh 共享命名空间:
您还可以查看 bsh.shared
命名空间以跨线程组共享对象。
我正在添加一个设置线程组来首先定义 SampleBeanShell
。后来,在所有其他线程组中,我只是使用 bsh.shared.myUtil
来访问 SampleBeanShell 对象。
用法:bsh.shared.myUtil.add(10,20)
查看 here 了解更多信息 - #Sharing Variables。
根据JMeter Best Practices,最好避免编写脚本并尽可能使用 JMeter 内置测试元素和函数。
您可以使用 __intSum() or __longSum() 函数添加 2 个(或更多)值并将结果存储到 JMeter 变量中。
有关上述和其他 JMeter 函数的更多信息,请参阅 How to Use JMeter Functions post 系列。
为了在 Beanshell 中实现您的场景,您需要使该方法在其他线程组中可用,例如:
在第一个线程组中:
bsh.shared.myObj=SampleBeanshell();
在第二个线程组中:
bsh.shared.myObj.add(50,60);
您的代码不起作用,因为您没有将任何内容存储到第一个线程组myObj
中
如何在 jmeter 中创建实用 bean shell 脚本。在 Jmeter 中,我有 5 个线程组,其中包含 bean shell samplers.i 想要在我的线程 group.The 中使用 beanshell class 下面给出的是示例 bean shell class 其中包含一个名为 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 采样器或 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);
启动文件:
您可以在启动文件中定义它。为此,有一个 属性 beanshell.init.file
。请在 .bsh
文件中定义并在开始测试时使用此 属性 读取文件。
Bsh 共享命名空间:
您还可以查看 bsh.shared
命名空间以跨线程组共享对象。
我正在添加一个设置线程组来首先定义 SampleBeanShell
。后来,在所有其他线程组中,我只是使用 bsh.shared.myUtil
来访问 SampleBeanShell 对象。
用法:bsh.shared.myUtil.add(10,20)
查看 here 了解更多信息 - #Sharing Variables。
根据JMeter Best Practices,最好避免编写脚本并尽可能使用 JMeter 内置测试元素和函数。
您可以使用 __intSum() or __longSum() 函数添加 2 个(或更多)值并将结果存储到 JMeter 变量中。
有关上述和其他 JMeter 函数的更多信息,请参阅 How to Use JMeter Functions post 系列。
为了在 Beanshell 中实现您的场景,您需要使该方法在其他线程组中可用,例如:
在第一个线程组中:
bsh.shared.myObj=SampleBeanshell();
在第二个线程组中:
bsh.shared.myObj.add(50,60);
您的代码不起作用,因为您没有将任何内容存储到第一个线程组myObj
中