2013-02-04 25 views
6

ho definito una nuova variabileOttenere valori casuali da un array

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

e nel mio percorso voglio ottenere un valore casuale da categorie: category_id=my_random_value.

Ho anche provato questo

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

ma non funziona.

risposta

5

__StringFromArrayAtRandomindex non fa parte del core JMeter né parte dei plugin JMeter.

È una funzione personalizzata?

Inoltre, si ha un errore di sintassi (v'è una mancanza ) del fondo:

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

di fare la stessa cosa, utilizzare un set di dati CSV che conterrà:

1 
2 
3 
4 
5 

Set:

Variable Names=categoryId 

È quindi possibile utilizzare in questo modo:

${categoryId} 
+0

no, non una funzione personalizzata, c'è un modo per risolvere questo con JMeter? –

+1

Grazie !!!! funziona –

9

per lo scenario si potrebbe tentare di utilizzare i componenti JSR233 (Sampler, PreProcessor, PostProcessor) con un po 'di Java groovy/codice.

Es .:

  • definire i dati come avete fatto:

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

    (vale a dire utilizzare la virgola come delimitatore, senza spazi prima e dopo la virgola).

  • Utilizzare il JSR233 Sampler/PreProcessor/PostProcessor con il seguente codice:

    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); 
    
  • riferiscono alla categoria scelto casualmente usando ${rnd_cat}.

+0

'vars.set()' -> 'vars.put()': grazie a @Thomas Solti per l'aggiornamento. –

8

per ottenere un valore variabile casuale da un elenco, prima di dichiarare come variabili utente i valori della lista o disponibili, con un prefisso e un indice incrementale:

country_1  Spain 
country_2  France 
country_3  Portugal 
country_4  Italy 
country_5  England 

Quindi è possibile ottenere un valore casuale dall'elenco concatenando il prefisso con un indice casuale compreso nell'intervallo:

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

Spiegazione

01.235.

La funzione __Random ti darà un indice per il tuo intervallo.Per ottenere valori da 1 a 5, è necessario chiamare __Random(1,6,), poiché non raggiungerà mai il valore MAX.

La funzione __V, otterrà il valore della variabile con il nome specificato.

${__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... 

A titolo di esempio, per utilizzare la variabile casuale come corpo JSON per una richiesta, in Data Corpo:

} 
    "country":"${__V(country_${__Random(1,6,)})}" 
} 
Problemi correlati