2016-05-04 49 views
0

如何在jmeter中創建實用程序bean shell腳本。在Jmeter中,我有5個線程組,其中包含bean shell samplers.i想要在我的線程組中使用beanshell類。下面給出了示例beanshell類,它包含一個名爲add()的方法。Jmeter中的Bean shell實用程序

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外殼斷言中使用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); 

回答

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變量。

+0

完美。謝謝。 Bsh Shared Namespace選項工作正常。 –

0

根據JMeter Best Practices最好避免使用腳本,並儘可能使用JMeter內置的測試元素和函數。

您可以使用__intSum()__longSum()函數添加2個(或更多)值並將結果存儲到JMeter變量中。

請參閱How to Use JMeter Functions關於上述和其他JMeter函數的更多信息。

對於BeanShell的實現你的情況下,您需要讓現有的方法中的其他線程組,如:

  • 在第一個線程組:

    bsh.shared.myObj=SampleBeanshell(); 
    
  • 在第二個線程組:

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

你的代碼不起作用,因爲你在第一線程組中沒有存儲任何東西到myObj

相關問題