2013-10-07 1 views
5

Я пытаюсь написать план тестирования, в котором создается пользовательский отчет на основе текста на семплерах. Я не мог правильно охватить переменные на этих трех уровнях.JMeter | Как определить переменные таким образом, что их область действия находится в {thread, Thread-Group, Test-Plan} изнутри BeanShell

loc = vars.get("local_count"); 
if(loc == null){ 
    vars.put("local_count", "1");//available only in local thread level 
}else{ 
    temp = Integer.parseInt(loc) + 1; 
    vars.put("local_count", temp.toString()); 
} 
log.info("the local count is " + vars.get("local_count"); 

glo = props.get("global_count"); 
if(glo == null){ 
    props.put("global_count", "1");//available in test plan level 
}else{ 
    temp1 = Integer.parseInt(glo) + 1; 
    props.put("global_count", temp1.toString()); 
} 
log.info("the global count is " + props.get("global_count"); 

Теперь попробуйте создать несколько Thread-Group и добавить этот сэмплер BeanShell в каждом из них.

Как сделать переменную доступной во всех потоках группы потоков (не для других групп потоков). Предоставление постоянных уникальных имен в разных группах потоков не является вариантом.?

Может ли кто-нибудь мне помочь. Спасибо заранее.

ответ

2

Добавить BeanShell Sampler и вставьте этот код:

vars.put("test","abcd"); 

enter image description here

+1

Это сфера переменной будет только уровень резьбы. Если вы запускаете скрипт в нескольких потоках и изменяете переменную по-разному (добавляете отдельные символы) в каждом потоке, log.info() результат и видите, он не будет работать должным образом. – Rajan