2016-05-10 1 views
1

У меня проблемы с набором переменных, заданных регулярным выражением Экстрактор в бобы.Jmeter - Доступ к переменным массива регулярных выражений в Beanshell

  1. У меня есть пробоотборщик HTTP-запроса, который возвращает список из 50 номеров в случайной форме (4, 2, 1, 3 .... 50, 45), которые я извлек через regEx.
  2. Теперь я хочу получить каждое число в переменной, поэтому я снова использовал regEx с выражением (. +?) (,) В переменной JMeter с шага # 1 выше.
  3. У меня есть проблема здесь, на этом этапе, когда я использую BeanShell для доступа к этим значениям

не очень уверен, что я ниже:

long var1 = Integer.parseInt(vars.get("Number_i")); 
print("Value of var1: " +var1); 

Практически я хочу сделать это:

for (i=0; i<50; i++) { 
    if (var1==1) { 
    do this 
    } 
} 

Я не разбираюсь в Jmeter, поэтому, пожалуйста, несите меня.

ответ

3

Учитывая извлекать переменные с помощью регулярных выражений Extractor и у вас есть> 1 матч вы уже есть несколько переменных, вы можете проверить их с помощью Debug Sampler и View Results Tree комбинации LISTENER

Debug Sampler

Таким образом, вы можете получить доступ к переменным в JMeter нравится:

${number_1} 
${number_2} 

и тестовых элементов Beanshell с использованием vars shortha го, который выступает за JMeterVariables экземпляра класса, как:

vars.get("number_1"); 
vars.get("number_2"); 

Пример кода, который будет итерацию все матчи и «сделать что-то», когда текущее значение переменной «1»

int matches = Integer.parseInt(vars.get("number_matchNr")); 

for (int i=1; i<=matches; i++) { 

    if (vars.get("number_" + i).equals("1")) { 
     log.info("Variable: number_" + i + " is 1"); 
     // do something 
    } 
} 

Beanshell compare variables

См JMeter API - JavaDoc для всех классов JMeter и How to Use BeanShell: JMeter's Favorite Built-in Component для получения дополнительной информации о том, как начать работу с Beanshell в JMeter

+0

Это работало так же гладко! Спасибо, Дмитрий. –