Ricerca…


introduzione

La parametrizzazione è la creazione di diversi set di dati per diversi utenti nello stesso script di test. Ad esempio, eseguendo più utenti con credenziali diverse nello stesso script. Questo lo rende uno degli aspetti principali nella creazione di test delle prestazioni.

Parametrizzazione tramite file esterni

Uno dei modi più comuni per parametrizzare gli script delle prestazioni è utilizzare un file CSV. Il miglior esempio di utilizzo dei file di input CSV è un processo di accesso. Se si desidera testare la propria applicazione tra diversi utenti, è necessario fornire un elenco di credenziali utente.

Supponiamo che abbiamo una richiesta di accesso che funziona per un utente specifico: inserisci la descrizione dell'immagine qui

Possiamo facilmente parametrizzare tale richiesta utilizzando un file CSV esterno e eseguendo lo script tra diversi utenti. Per aggiungere la configurazione di parametrizzazione CSV:

Fare clic con il tasto destro del mouse sulla richiesta di accesso -> Aggiungi -> Config elemento -> CSV Data Set Config

inserisci la descrizione dell'immagine qui

Una breve spiegazione dei parametri "Configurazione set dati CSV":

  • Nome: nome dell'elemento che verrà utilizzato nell'albero JMeter
  • Nome file: nome del file di input. I nomi dei file relativi vengono risolti in base al percorso del piano di test attivo. Sono inoltre supportati i nomi di file assoluti
  • Codifica file - codifica del file di input, se non è la piattaforma predefinita
  • Nomi di variabili: elenco di nomi di variabili separate che verranno utilizzati come contenitore per i valori analizzati. Se vuoto, la prima riga del file verrà interpretata come l'elenco dei nomi di variabili
  • Delimitatore - delimitatore che verrà utilizzato per dividere i valori analizzati dal file di input
  • Consentire dati quotati? - true nel caso in cui si desideri ignorare le virgolette doppie e consentire a tali elementi di contenere un delimitatore.
  • Riciclare su EOF? - true nel caso in cui il piano di test del file debba scorrere il file più di una volta. Istruirà JMeter per spostare il cursore all'inizio del file
  • Interrompere il thread su EOF? - false in caso di iterazione del ciclo sul file CDC e true se si desidera interrompere il thread dopo aver letto l'intero file
  • Modalità di condivisione:
    • Tutti i thread: il file è condiviso tra tutti gli utenti virtuali (predefinito)
    • Gruppo di thread corrente: il file verrà aperto una volta per ciascun gruppo di thread
    • Thread corrente: ciascun file verrà aperto separatamente per ciascun thread
    • Identificatore: tutti i thread che condividono lo stesso identificatore condividono lo stesso file

Creiamo un file csv contenente diversi utenti con nomi e password: inserisci la descrizione dell'immagine qui

Ora possiamo usare questo file con la configurazione del set di dati CSV. Nel nostro caso, è sufficiente aggiungere i valori di configurazione "Nome file" e "Nomi variabili": inserisci la descrizione dell'immagine qui

L'ultimo passo da compiere è la parametrizzazione della richiesta di accesso con le variabili CSV. Questo può essere fatto sostituendo i valori iniziali con le variabili appropriate dal campo di configurazione "Nomi variabili" della Config Data Set CSV, come questo: inserisci la descrizione dell'immagine qui Se eseguiamo ora il nostro script di test, JMeter sostituirà queste variabili con i valori del file "TestUsers.csv". Ogni utente virtuale JMeter riceverà le credenziali dalla seguente riga di file csv.

La richiesta di accesso da parte del primo utente:

inserisci la descrizione dell'immagine qui

La richiesta di accesso da parte del secondo utente: inserisci la descrizione dell'immagine qui

Parametrizzazione tramite database

Un altro modo per parametrizzare gli script delle prestazioni è utilizzare i dati del database tramite JDBC. JDBC è un'interfaccia di programmazione dell'applicazione che definisce in che modo un client può accedere a un database.

Prima di tutto, scaricare il driver JDBC nel database (fare riferimento al fornitore del database). Ad esempio, il driver mysql può essere trovato qui. Quindi, puoi aggiungerlo aggiungendo il file .jar al piano di test usando il modulo seguente:

inserisci la descrizione dell'immagine qui

Ma è meglio aggiungere il file Jar nella cartella lib e riavviare JMeter.

Successivamente, configurare la connessione al database utilizzando l'elemento "Configurazione connessione JDBC". In questo modo: Fare clic con il pulsante destro del mouse su Gruppo di thread -> Aggiungi -> Elemento configurazione -> Configurazione connessione JDBC

inserisci la descrizione dell'immagine qui

Parametri "Configurazione connessione JDBC":

  • Nome: nome della configurazione della connessione che verrà mostrata nell'albero del gruppo di thread
  • Nome variabile: nome che verrà utilizzato come identificatore univoco per la connessione db (è possibile utilizzare più connessioni e ognuna sarà associata a un nome diverso)
  • Numero massimo di connessioni: numero massimo di connessioni consentite nel pool di connessioni. In caso di 0, ogni thread avrà il proprio pool con una singola connessione in esso
  • Max Wait (ms) - pool genera un errore se il timeout specificato viene superato durante la connessione db
  • Time Between Eviction Runs (ms) - numero di millisecondi da mettere in pausa tra le esecuzioni del thread che evita le connessioni inutilizzate dal pool db
  • Auto Commit - sì per attivare il commit automatico per le connessioni db correlate
  • Prova mentre inattivo: verifica le connessioni inattive prima che venga rilevata una richiesta effettiva. Ulteriori dettagli: BasicDataSource.html # getTestWhileIdle
  • Tempo di inattività minimo min evictable (ms) - periodo di tempo durante il quale una connessione specificata potrebbe essere inattiva nel pool di db prima che possa essere sfrattata. Ulteriori dettagli: BasicDataSource.html # getSoftMinEvictableIdleTimeMillis
  • Query di convalida: query di controllo sanitario che verrà utilizzata per verificare se il database continua a rispondere
  • URL del database: stringa di connessione JDBC per il database. Vedi qui per gli esempi
  • Classe driver JDBC: nome appropriato della classe del driver (specifico per ciascun db). Ad esempio, "com.mysql.jdbc.Driver" per MySql db
  • Nome utente - nome utente del database
  • Password - password del database (verrà memorizzata non crittografata nel piano di test)

Nel nostro caso abbiamo bisogno di impostare solo i campi obbligatori:

  • Nome variabile associato a pool.
  • URL del database
  • Classe del driver JDBC
  • Nome utente
  • Parola d'ordine

Il resto dei campi nella schermata può essere lasciato come predefinito: inserisci la descrizione dell'immagine qui

Supponiamo di archiviare le credenziali dell'utente di test nel database: inserisci la descrizione dell'immagine qui

Ora, quando viene configurata la connessione al database, è possibile aggiungere la richiesta JDBC e utilizzare la sua query per ottenere tutte le credenziali dal database: fare clic con il pulsante destro del mouse su Thread Group -> Aggiungi -> Esempio -> Richiesta JDBC

Utilizzando la query 'Select Statement' e 'Variable Names' possiamo analizzare la risposta alle variabili personalizzate.

inserisci la descrizione dell'immagine qui

Ora avremo le variabili JMeter che possono essere utilizzate ulteriormente nelle richieste successive. Le variabili specificate verranno create con il suffisso incrementale (email_1, email_2, email_3 ... ..).

Per utilizzare queste variabili nella "Richiesta di accesso", è necessario aggiungere un contatore che verrà utilizzato per accedere ai valori corretti dalla risposta alla query JDBC. Per aggiungere l'elemento "Contatore" in JMeter: fare clic con il pulsante destro del mouse su Thread Group -> Aggiungi -> Config Element -> Counter

inserisci la descrizione dell'immagine qui

Successivamente, possiamo aggiornare la 'Richiesta di accesso' usando la funzione __V. Ciò restituisce il risultato della valutazione di un'espressione di nome di variabile e può essere utilizzato per valutare i riferimenti di variabili annidate:

inserisci la descrizione dell'immagine qui

La configurazione specificata è sufficiente per utilizzare i valori del database per eseguire lo script tra diversi utenti: inserisci la descrizione dell'immagine qui inserisci la descrizione dell'immagine qui

Parametrizzazione usando il plugin 'Parameterized Controller'

Se è necessario eseguire una sequenza ripetuta della stessa azione con parametri diversi, utilizzare il plug -in di terze parti 'Parameterized Controller' dal progetto JMeter-Plugins .

È necessario installare questo plug-in prima seguendo la procedura di installazione.

Supponiamo di voler parametrizzare il flusso di lavoro di accesso:

inserisci la descrizione dell'immagine qui

Prima di tutto, è necessario installare il plug-in "Parameterized Controller" poiché non è incluso nel core JMeter. I passaggi di installazione di quel processo possono essere trovati qui.

Spostiamo la "Richiesta di accesso" in un controller separato e disattivatela (fai clic con il pulsante destro del mouse e seleziona "Disattiva"). Questo è il modo più preferibile per disporre di un contenitore di moduli all'interno del piano di test ed evitare l'utilizzo di Workbench come contenitore. Al termine dell'installazione, è possibile aggiungere due controller "Controller parametrizzati" con credenziali utente diverse: fare clic con il pulsante destro del mouse su Thread Group -> Aggiungi -> Logic Controller -> Parameterized Controller

inserisci la descrizione dell'immagine qui

I controller parametrizzati contengono la sezione 'Variabili definite dall'utente', in cui è possibile specificare i parametri. Inserire le credenziali del primo utente nel primo controller parametrizzato e le seconde credenziali utente nel secondo controller parametrizzato. inserisci la descrizione dell'immagine qui

All'interno di entrambi i controller parametrizzati, aggiungere riferimenti al 'Controller riutilizzabile' per chiamare la 'Richiesta di accesso' con diversi parametri. Può essere fatto in questo modo:

Fare clic con il tasto destro del mouse su "Parameterized Controller" -> "Aggiungi" -> "Logic Controller" -> "Module Controller"

inserisci la descrizione dell'immagine qui

Quando si esegue lo script, si vedrà che la 'Richiesta di accesso' ha attivato ciascuno dei controller parametrizzati separatamente. Può essere molto utile nel caso in cui sia necessario eseguire lo script tra diverse combinazioni di parametri di input.

inserisci la descrizione dell'immagine qui



Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow