2013-02-04 10 views
6

ja zdefiniował nową zmiennąUzyskaj losowych wartości z tablicy

Name  Value   Description 
categories (1, 2, 3, 4, 5) my categories ids 

iw mojej ścieżce chcę uzyskać losową wartość z kategorii: category_id=my_random_value.

Próbowałem nawet ten

category_id=${__StringFromArrayAtRandomindex('1', '2', '3', '4', '5'} 

ale to nie działa.

Odpowiedz

5

__StringFromArrayAtRandomindex nie jest częścią jądra JMeter ani częścią wtyczek JMeter.

Czy jest to funkcja niestandardowa?

Ponadto masz błąd składni (jest tam brakuje ) na koniec:

${__StringFromArrayAtRandomindex('1', '2', '3', '4', '5')} 

zrobić to samo, użyj CSV zbiór danych, który będzie zawierał:

1 
2 
3 
4 
5 

Set:

Variable Names=categoryId 

Następnie można go używać tak:

${categoryId} 
+0

nie to nie funkcji niestandardowej, czy jest jakiś sposób aby rozwiązać ten problem z JMeter? –

+1

Dzięki! działa –

9

Dla scenariusza można spróbować użyć składników JSR233 (Sampler, PreProcessor, PostProcessor) z odrobiną java/kodu groovy.

Np .:

  • Określ swoje dane jak zrobiłeś:

     
    Name  Value   
    categories 1,2,3,4,5 
    

    (tj przecinek jako separator, bez spacji przed i po przecinku).

  • Użyj JSR233 Sampler/Preprocesor/postprocesora z następującego kodu:

    import java.util.Random; 
    
    String[] categories = (vars.get("categories")).split(","); 
    
    int idx = new Random().nextInt(categories.length); 
    String category = (categories[idx]); 
    
    vars.put("rnd_cat", category); 
    
  • Patrz losowo pobrane kategorii wykorzystaniem ${rnd_cat}.

+0

'vars.set()' -> 'vars.put()': thanks @Thomas Solti for update. –

8

Aby uzyskać losową wartość zmiennej z listy, najpierw zadeklarować jako zmienne użytkownika na liście lub dostępne wartości, z prefiksem i przyrostowe index:

country_1  Spain 
country_2  France 
country_3  Portugal 
country_4  Italy 
country_5  England 

Następnie można uzyskać wartość losową z listy konkatenację prefiks z losową wskaźnika w przedziale:

${__V(country_${__Random(1,6,)})} --> "Spain", "France", "Portugal", etc... 

Wyjaśnienie

Funkcja __Random podaje indeks interwału.Aby uzyskać wartości od 1 do 5, musisz zadzwonić pod numer __Random(1,6,), ponieważ nigdy nie osiągnie on wartości MAX.

Funkcja __V uzyska wartość zmiennej o podanej nazwie.

${__Random(1,6,)}     --> 1, 2, 3, 4, 5 
country_${__Random(1,6,)}   --> "country_1", "country_2", etc... 
${__V(country_${__Random(1,6,)})} --> "Spain", "France", "Portugal", etc... 

Jako przykład, aby użyć zmiennej losowej jako JSON ciała na wniosek, dane Budowa ciała:

} 
    "country":"${__V(country_${__Random(1,6,)})}" 
} 
Powiązane problemy