2016-05-04 1 views
0

Как создать скрипт оболочки компонента в jmeter. В Jmeter у меня есть 5 групп нитей, в которых содержится оболочка samplers.i, чтобы использовать класс beanshell для моей группы потоков. Ниже приведен пример класса beanshell, который содержит один метод, называемый add().Утилита утилиты bean-оболочки в Jmeter

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); 

Я хотел бы использовать метод Add() в другой в нити группы бобов или фасоли пробоотборника оболочки утверждение.

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

Я добавил выше фрагмент кода, я не в состоянии вызывать этот метод в другой боб пробоотборника и другая группа нити, а также.

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

ответ

1

Запуск файла:

Вы можете определить это в файле запуска. Для этой цели есть имущество beanshell.init.file. Пожалуйста, определите в файле .bsh и используйте это свойство, чтобы прочитать файл во время запуска теста.

Bsh Shared Пространство имен:

Вы также можете посмотреть на bsh.shared пространство имен для обмена объекта через групп потоков.

Я добавляю группу установочных нитей, чтобы сначала определить SampleBeanShell. Позже, во всех других группах потоков я просто использую bsh.shared.myUtil для доступа к объекту SampleBeanShell.

Использование: bsh.shared.myUtil.add(10,20)

enter image description here

enter image description here

Проверить here для получения дополнительной информации - #Sharing переменных.

+0

Perfect. Благодарю. Опция Bsh Shared Namespace работает нормально. –

0

В соответствии с JMeter Best Practices лучше избегать сценариев и использовать встроенные тестовые элементы и функции JMeter, где это возможно.

Вы можете добавить 2 (или более) значения и сохранить результат в переменную JMeter с помощью функции __intSum() или __longSum().

См. How to Use JMeter Functions серия сообщений для получения дополнительной информации о вышеуказанных и других функциях JMeter.

Для реализации вашего сценария в Beanshell вам нужно сделать метод доступным в других группах темы как:

  • В 1-й группе Тема:

    bsh.shared.myObj=SampleBeanshell(); 
    
  • В 2-ой темы Группа:

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

Ваш код не работает, поскольку вы ничего не храните в myObj в 1-й группе Thread