le mie informazioni di contatto
Posta[email protected]
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Nello studio precedente, abbiamo utilizzato JMeter per completare il test dell'interfaccia a livello di protocollo per il sistema Agileone. Sappiamo anche che il fulcro della tecnologia di test delle prestazioni è utilizzare la tecnologia multi-threading per inviare richieste di protocollo per completare la simulazione di un gran numero di utenti che accedono al sistema. L'intento progettuale originale di JMeter è in realtà il test delle prestazioni. Ad esempio, il primo passo quando creiamo un piano di test è creare un gruppo di thread. Questo esperimento spiegherà come utilizzare JMeter per completare il test delle prestazioni dell'accesso e della pubblicazione di Phpwind.
Scopo
(1) Padroneggia l'uso della ricerca associativa in JMeter.
(2) Padroneggia la progettazione e l'utilizzo del thread in JMeter.
(3) Padroneggia l'uso dei rapporti di test in JMeter.
processo di esperimento
Abbiamo creato un totale di 100 utenti per Phpwind da testuser_1 a testuser_100, quindi durante il processo di test delle prestazioni, dovremmo implementare l'accesso casuale degli utenti, in modo da simulare meglio scenari reali.
(1) Creare un campionatore "richiesta HTTP", denominarlo "DoLogin" e inserire i parametri di richiesta POST di accesso corrispondenti.
(2) Creare una "asserzione di risposta" e una "visualizzazione dell'albero dei risultati" per il campionatore e lo stesso vale per le richieste successive.
(3) Creare un "pre-processore" per il campionatore e implementare un numero casuale da 1 a 100.
(4) La richiesta di test finale implementata è la seguente:
Poiché quando si pubblica in Phpwind, è necessario specificare un campo "verifica", il cui valore è un numero casuale, dobbiamo utilizzare le espressioni regolari per associare il valore corrispondente nella risposta. Questa parte è stata padroneggiata nel processo di implementazione del test dell'interfaccia. Qui esamineremo principalmente come implementarla in JMeter:
(1) Aggiungi un campionatore "richiesta HTTP" e invia una richiesta GET a "/phpwind/post.php?fid=2" per ottenere la risposta.
(2) Aggiungi un post-processore al campionatore, impostalo su "Regular Expression Extractor" e configura le seguenti impostazioni:
(3) Una breve spiegazione dei campi di input sopra:
a) Nome di riferimento: il nome del parametro a cui fare riferimento nella richiesta successiva. Se inserisci verifycode, puoi utilizzare ${verifycode} per fare riferimento ad esso.
b) Espressione regolare: le parentesi contengono il contenuto da estrarre, che è ciò che siamo esperti nell'applicare.
c) Modello: racchiuso tra $-$ Se l'espressione regolare che impostiamo trova più valori, il numero di sequenza indica quale valore elaborare.
d) Numeri corrispondenti: 0 rappresenta un valore casuale, 1 rappresenta tutti i valori, di solito basta inserire 0.
e) Valore predefinito: se il parametro non ottiene un valore, viene fornito un valore predefinito da ottenere.
(1) Imposta un parametro utente per il campionatore e utilizza la funzione assistente per generare un numero casuale per il titolo e il contenuto del post.
(2) Utilizzare il codice di verifica ottenuto nel passaggio precedente come valore del campo di verifica nel corpo della richiesta POST.
(3) La richiesta di test generata finale è la seguente:
Per impostazione predefinita, JMeter, come il test dell'interfaccia, è responsabile solo del download della pagina attualmente richiesta e non scaricherà altre risorse aggiuntive della pagina. Ciò ovviamente non è coerente con la situazione reale. Quindi dobbiamo scaricare tutte le risorse della pagina. Nella scheda "Avanzate" nel campionatore HTTP, seleziona "Ottieni tutte le risorse incluse dai file HTML".
Per questa esecuzione, seguiamo ancora lo stesso scenario del precedente script Java: 50 utenti, 5 utenti simultanei ogni 10 secondi e ogni utente esegue 100 volte. Le impostazioni specifiche sono le seguenti:
Impostare il parametro "Periodo di accelerazione (in secondi)" nelle impostazioni precedenti su 100 secondi significa aggiungere un thread ogni due secondi Sebbene la frequenza non possa essere definita arbitrariamente come un thread personalizzato, tale impostazione è coerente con ogni 10 secondi. Non c'è alcuna differenza sostanziale nell'effetto di 5 utenti simultanei.
Oltre a impostare il numero di esecuzioni, possiamo anche impostare il tempo di esecuzione totale del processo di test delle prestazioni. Nella parte inferiore dell'immagine sopra, seleziona "Scheduler" e imposta la durata. Se dobbiamo funzionare continuamente per un'ora, dobbiamo solo impostarne il valore su 3600 secondi.
Il tempo di riflessione è un'impostazione necessaria per simulare scenari utente reali. Il componente "timer" fornito da JMeter viene utilizzato per simulare il tempo di riflessione dell'utente. JMeter viene fornito con molti tipi di timer. Usiamo il "timer casuale gaussiano" più comunemente usato. Possiamo seguire i seguenti passaggi per creare un timer in JMeter. Un campionatore imposta il tempo di riflessione:
(1) Fare clic con il pulsante destro del mouse su un campionatore, ad esempio, fare clic su "DoLogin" per creare un nuovo "timer casuale gaussiano".
(2) Impostare l'offset su 2000 millisecondi e l'offset del ritardo fisso su 4000 millisecondi. La sua funzione è generare un numero casuale nell'intervallo di 4 secondi più o meno 2 secondi, ovvero il tempo di pausa casuale è compreso tra 2 secondi e 6 secondi.
Maggiori informazioni sull'utilizzo del timer JMeter
Il concetto di punto di incontro è stato proposto per la prima volta dallo strumento di test delle prestazioni LoadRunner. La sua funzione è che dopo che un gruppo di thread ha inviato una richiesta, tutti si riuniscono finché tutti i thread non vengono sincronizzati in un determinato momento, quindi inviano insieme la richiesta. Viene utilizzato per simulare test di concorrenza più rigorosi Sebbene l'uso di punti di incontro non sia coerente con gli scenari reali, può esercitare una maggiore pressione istantanea sul server. Viene utilizzato principalmente per test di concorrenza del server.
In JMeter, possiamo utilizzare il timer "Sincronizzazione timer" per completare l'elaborazione dei punti di incontro. Ad esempio, la figura seguente ci mostra come implementare una strategia di test simultaneo per il campionatore "DoPost":
(1) Numero di utenti simulati da raggruppare per: questo valore corrisponde al numero di thread nel punto di raccolta Qui lo impostiamo su 50, il che significa che una raccolta deve attendere 50 thread prima di inviare insieme la richiesta successiva. Se impostato su 0 qui, significa utilizzare la raccolta di tutti i thread impostati dal gruppo di thread.
(2) Timeout in millisecondi: imposta qui su 10000, il che significa che il timeout del punto di incontro è di 10 secondi, cioè se tutti i thread non hanno aspettato per 10 secondi, non aspetteranno più. Il thread che ha completato la raccolta invia direttamente la richiesta successiva.
Nello sviluppo dei thread nativi di Java, infatti, possiamo utilizzare anche i due metodi di sincronizzazione "wait()" e "notifyAll()" per completare la simulazione del punto di rendezvous.
JMeter ha anche molti componenti integrati per visualizzare i report dei test, ma quello più comunemente utilizzato è il "report di aggregazione" creato per un determinato gruppo di thread. Ad esempio, i risultati dell'attuale test delle prestazioni di Phpwind sono mostrati di seguito:
Possiamo vedere dalla figura sopra il numero di esecuzioni di ciascun campionatore, varie statistiche matematiche del tempo di risposta (media, mediana, valore 90%, valore minimo, valore massimo), tasso di errore di transazione, larghezza di banda della rete, dimensione della risposta totale, richiesta dimensione e altri dati. Oltre a monitorare gli indicatori di prestazione lato server, questi indicatori sono sostanzialmente sufficienti per analizzare i dati di base per un test delle prestazioni.
Esercizio di pensiero
(1) Acquisire familiarità con l'utilizzo di altri componenti in JMeter.
(2) Utilizza JMeter per completare il test delle prestazioni di un progetto e risolvere i problemi riscontrati uno per uno.
(3) Confronta il test delle prestazioni in JMeter con il test delle prestazioni che abbiamo sviluppato noi stessi utilizzando Java nativo per vedere le somiglianze e le differenze.
Infine, vorrei ringraziare tutti coloro che hanno letto attentamente il mio articolo. Guardando l'aumento di fan e attenzione, c'è sempre un po' di cortesia. Anche se non è una cosa molto preziosa, se puoi usarla, puoi prenderla direttamente!
Dobbiamo studiare per trovare un lavoro ben retribuito. Le seguenti domande per l'intervista sono gli ultimi materiali di intervista di società Internet di primo livello come Alibaba, Tencent, Byte, ecc., e alcuni capi di Byte hanno dato risposte autorevoli dopo aver terminato questa serie Credo che tutti possano trovare un lavoro soddisfacente in base alle informazioni del colloquio.