Czy istnieje możliwość iteracji lub pętli przez "Zmienne zdefiniowane przez użytkownika" - Ustaw, jakby to możliwe dzięki zestawowi danych CSV (while-Counter-CSV zestaw danych)?

Chcę wystrzelić żądanie JDBC (wybierz instrukcję) dla każdej zmiennej zawartej w "Zmienne zdefiniowane przez użytkownika" - zestaw. Działa dobrze z plikiem CSV, ale nie mogę dowiedzieć się, jak mogę pętli przez zestaw zmiennych. Czy to w ogóle jest możliwe? Mam różne scenariusze, gdzie chcę pętli za pomocą "Zestaw zmiennych zdefiniowanych przez użytkownika" - zestaw.

3
VolJin 16 luty 2017, 11:52

2 odpowiedzi

Najlepsza odpowiedź

Aby móc iterować Zmienne zdefiniowane przez użytkownika z Controller Foreach Wystarczy postępować zgodnie z prostą konwencją nazewnictwa, takiej jak:

  • var_1=someValue
  • var_2=someOtherValue
  • var_3=someMoreValue
  • itp.

Jeśli jednak chcesz zachować oryginalne nazwy zmiennych, możesz utworzyć dodatkowy zestaw zmiennych JMeter, które mogą być konsumowane przez kontrolera Foreach przy użyciu następnych kroków:

  1. Załóżmy, że masz następujące zmiany zdefiniowane przez użytkownika zmienne:

    Zmienne zdefiniowane przez użytkownika

    i chcesz użyć swoich wartości w kontrolerze foreach

  2. Dodaj element testowy JSR223 (sampler, procesor wstępny, etc) gdzieś w skrypcie i umieść następujący kod w obszarze "skrypt"

    import org.apache.jmeter.threads.JMeterVariables;
    
    int counter = 1;
    
    JMeterVariables tempVars = new JMeterVariables()
    
    vars.entrySet().each { entry -> 
        def name = entry.getKey()
        if (!name.equals("JMeterThread.last_sample_ok") && !name.equals("JMeterThread.pack") && !name.equals("START.HMS") && !name.equals("START.MS") &&
            !name.equals("START.YMD") && !name.equals("TESTSTART.MS")) {
            tempVars.put("tempVar_" + counter, entry.getValue())
            counter++;
        }
    }
    
    vars.putAll(tempVars);
    

    Po zakończeniu skryptu należy mieć 3 zmienne jmeter

    zmienne jmeter generowane przez Groovy

  3. Po ich posiadaniu - możesz użyć kontrolera Foreach skonfigurowany jak:

    Kontroler Foreach dla dodatkowych zmiennych

  4. Więc będziesz mógł użyć ${current} (lub cokolwiek umieścisz w "nazwie zmiennej wyjściowej" w żądaniu JDBC

    Groovy zmienne Substitution

Zobacz Groovy jest nową czarną Artykuł, aby dowiedzieć się więcej o użyciu Groovy w testach JMeter.

5
Dmitri T 16 luty 2017, 15:35