Condivisione della tecnologia

jmetro distribuito (4)

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

1. gui

La GUI di jmeter viene utilizzata principalmente per eseguire il debug degli script

1. Per prima cosa crea lo script utilizzando la GUI

Crea prima una sceneggiatura
Demo: come scrivere una scena mista?
Utilizzare un rapporto aziendale di 211

①Avviare il servizio di database

Servizi di database: inclusi mysql, redis
porta mysql predefinita 3306

netstat -lntp | grep 3306
  • 1

Nello stato di ascolto, 6379 è la porta predefinita di Redis

netstat -lntp | grep 6379
  • 1

Porta di servizio del progetto 18089

netstat -lntp | grep 18089
  • 1

②Accedi alla spavalderia del documento dell'interfaccia

211 possono essere convertiti in due servizi di stress testing

Uno è registrarsi, l'altro è registrarsi e accedere per aggiungere prodotti.
Entrambi sono al 50%

③Aggiungi gruppo di thread

jmeter: aggiungi gruppo di thread-aggiungi-thread-utente-gruppo di thread

Convertire due servizi di stress testing

④Aggiungi controller di throughput

jmeter: controller con logica aggiuntiva e controller di throughput

Convertire due servizi di stress testing.
La prima attività di stress test include la registrazione, l'accesso e l'aggiunta di prodotti
La seconda attività dello stress test è la registrazione

Inserisci qui la descrizione dell'immagine

50% ciascuno
Inserisci qui la descrizione dell'immagine

⑤Aggiungi la richiesta http del campionatore

jmeter-add-sampler-http-request
Convertire due servizi di stress testing
Inserisci qui la descrizione dell'immagine

La prima attività di stress test include la registrazione, l'accesso e l'aggiunta di prodotti

Inserisci qui la descrizione dell'immagine

Inserisci qui la descrizione dell'immagine

La seconda attività è la registrazione

Scrivi secondo la spavalderia della registrazione, inserisci i parametri
Inserisci qui la descrizione dell'immagine
Generalmente non è necessario inserire l'ID quando lo si inserisce.
Non è necessario compilare nemmeno Addtime
Copia e incolla i dati dei parametri in jmeter
Inserisci qui la descrizione dell'immagine

percorso basato sull'URL
Inserisci qui la descrizione dell'immagine

Inserisci qui la descrizione dell'immagine

Inserisci qui la descrizione dell'immagine

⑥Aggiungi gestore intestazioni http,

Passano tutti json
Inserisci qui la descrizione dell'immagine

Inserisci qui la descrizione dell'immagine

⑦Aggiungi il valore predefinito della richiesta http

Compila l'ip e la porta secondo il documento dell'interfaccia
Inserisci qui la descrizione dell'immagine
Inserisci qui la descrizione dell'immagine

⑧Aggiungi un ascoltatore e visualizza l'albero dei risultati

Inserisci qui la descrizione dell'immagine

⑨Aggiungi asserzione

È meglio aggiungere affermazioni

Inserisci qui la descrizione dell'immagineInserisci qui la descrizione dell'immagine

2. Non gui

-nEsegui jmeter in modalità non-gui
-t esegue la posizione del file di test Specifica lo script per eseguire jmeter Non è nel percorso corrente. È necessario scrivere il percorso completo.
-l specifica il file dei risultati generato, che è un file jtl
-e Una volta completato il test, generare un rapporto di test
-o specifica il percorso di archiviazione del rapporto di test html
-r avvio remoto

1. Pressa a macchina singola

①Fai domanda per la stampa

Installa jdk e jmeter su Linux Press
Installa sotto usr/local
Carica direttamente jmeter sulla finestra su Linux Press, perché sono disponibili anche i plug-in coinvolti nello script di debug.
Inserisci qui la descrizione dell'immagine

②Carica lo script per la stampa

Nota: se lo script prevede un file di parametri csv, è necessario caricare il file di parametri csv' nella directory bin di jmeter sotto Linux.
I report e gli ascoltatori di aggregazione devono essere disabilitati prima del caricamento

5 thread, aggiungerne uno ogni 30 s, cioè 150

La durata deve essere maggiore del tempo di chiamata di 150. Se funziona per altri 50 secondi, impostalo su 200.
Inserisci qui la descrizione dell'immagine

Una volta completato con successo il caricamento di jmeter, verificare la versione di jmeter e se è disponibile.

Inserisci qui la descrizione dell'immagine

③Inizializzazione

Ci sono due posti
Innanzitutto, il percorso per archiviare lo script di test deve creare una directory per archiviare il report html.

Inserisci qui la descrizione dell'immagine
Prima di eseguire lo script, la directory res deve essere vuota
In secondo luogo, pulire i dati nella tabella del database senza considerare i dati esistenti.
Inserisci qui la descrizione dell'immagine

④Eseguire lo script

Inserisci qui la descrizione dell'immagine

⑤Visualizza risultati

risultato
Completate 548 richieste in 13 secondi

Inserisci qui la descrizione dell'immagine
Inserisci qui la descrizione dell'immagine

Apri il rapporto aggregato
Il numero di richieste ko non riuscite

Inserisci qui la descrizione dell'immagine
tempo di risposta
Inserisci qui la descrizione dell'immagine

tps

Inserisci qui la descrizione dell'immagine

Come visualizzare i file jtl?
jtl può essere aperto in qualsiasi listener, ad esempio visualizzazione dell'albero dei risultati, report aggregato, tps, tempo di risposta.
Se aperto in un report aggregato, fare clic su Sfoglia
Inserisci qui la descrizione dell'immagine

Inserisci qui la descrizione dell'immagine
Come tps, tempo di risposta
Diamo prima un'occhiata a tps
Aggiungi tps
Fare clic per sfogliare

Inserisci qui la descrizione dell'immagine
Inserisci qui la descrizione dell'immagine
Inserisci qui la descrizione dell'immagine

Inserisci qui la descrizione dell'immagine

Tempo di rispostaInserisci qui la descrizione dell'immagine

Inserisci qui la descrizione dell'immagine

2. Distribuito

Talvolta una sola stampa non riesce a raggiungere l'obiettivo ed è necessaria una stampa distribuita.
Dopotutto, le risorse di una sola macchina sono limitate ed è difficile supportare una grande concorrenza. Anche le macchine da stampa a macchina singola presentano colli di bottiglia.

2.1 Principio di distribuzione

Sito ufficiale:https://jmeter.apache.org/usermanual/jmeter_distributed_testing_step_by_step.html

Una macchina server funge da macchina di controllo
Il resto delle macchine vengono utilizzate come macchine di carico
Il servizio richiesto dal target
Il controller controlla a distanza l'avvio e l'arresto della macchina di carico inviando segnali e allo stesso tempo raccoglie i dati e il riepilogo della macchina di carico
La macchina di caricamento avvia principalmente thread per accedere al server e indirizzare il server sotto stress test.
Generalmente, il lavoratore avvia la macchina di controllo jmeter-server per controllare in remoto la macchina di carico. La macchina di carico avvia il thread e richiede al target di ottenere i dati e quindi di inviarli nuovamente alla macchina di controllo.

Dove vengono posizionati gli script una volta distribuiti?
Un controller più lavoratori
Quando si esegue non-gui, lo script viene trasmesso al server Ora che è distribuito, dove dovrebbe essere trasmesso lo script?
Lo script verrà trasferito al controller. Durante l'esecuzione, lo script verrà inviato a ciascuna macchina di carico, ovvero ogni lavoratore dopo che il carico avrà ottenuto lo script, inizierà a eseguirlo. Dopo l'esecuzione, i dati verranno passati alla macchina di controllo per il riepilogo.

2.2 Precauzioni per le prove a pressione distribuita

(https://img-blog.csdnimg.cn/e3de7b8b65a1447db3bc3618876f62d3.png)
Il firewall deve essere chiuso Se il firewall non è chiuso, la porta deve essere aperta.
Tutti i client devono trovarsi sulla stessa sottorete.
Assicurati che jmeter possa accedere al server
Assicurati che le versioni jmeter e Java siano le stesse
disabilitare SSL

2.3 Preparazione dell'ambiente

Richiede 3 macchine virtuali
Utilizzare 181 come controller (macchina di controllo)
Usa 182.183 come lavoratore (carica macchina)
Allo stesso tempo, queste tre macchine virtuali devono installare jdk e jmeter.
Inserisci qui la descrizione dell'immagine
Inserisci qui la descrizione dell'immagine
Inserisci qui la descrizione dell'immagine
Inserisci qui la descrizione dell'immagine
Visualizza la versione jdk
Inserisci qui la descrizione dell'immagine
Installa jmeter su tre macchine virtuali
Il jmeter della macchina locale viene trasferito nella directory usr/local della macchina virtuale.
Controlla la versione di jmeter dopo il caricamento
Inserisci qui la descrizione dell'immagine

2.4 Configurazione distribuita

①Lavoratore

182、182
Eseguire prima il backup del file di configurazione jmeter.properties
Inserisci qui la descrizione dell'immagine

server_port può essere modificato o non modificato. Il valore predefinito è 1099.
Inserisci qui la descrizione dell'immagine

disabilitare SSL
server.rmi.ssl.disable=false, cambia falso in vero
Inserisci qui la descrizione dell'immagine

Inizia Jemter
./server-jmeter
Inserisci qui la descrizione dell'immagine
Controlla la porta 182 per vedere se è in stato di ascolto

Inserisci qui la descrizione dell'immagine

verificare
Telnet la macchina di controllo alla macchina di carico per vedere se la porta è accessibile.
Inserisci qui la descrizione dell'immagine
Inserisci qui la descrizione dell'immagine

②Controllore

Prima di configurare la macchina di controllo, eseguire il debug su jmeter nella finestra.
win: per il debug
Eseguire prima il backup del file di configurazione jmeter.properties
Inserisci qui la descrizione dell'immagine
Per impostazione predefinita, questa macchina viene utilizzata come macchina di caricamento.
La macchina di caricamento corrente è una macchina di caricamento remota, modifica remote_hosts=127.0.0.1 in remote_hosts=192.168.117.182:1099
L'IP e la porta della macchina di caricamento remoto devono essere scritti qui. Se più sono multipli, separarli con virgole.
Inserisci qui la descrizione dell'immagine
Inserisci qui la descrizione dell'immagine
disabilitare SSL
Cambia server.rmi.ssl.disable=false in server.rmi.ssl.disable=true
Inserisci qui la descrizione dell'immagine

Per prima cosa esegui il debug tramite questa macchina
Riavvia jmeter e rileggi il file di configurazione
Inserisci qui la descrizione dell'immagine
Dopo il debug sulla finestra, vai su Linux per la configurazione.

Configura su 181
Eseguire prima il backup del file di configurazione jmeter.properties

Inserisci qui la descrizione dell'immagine

La macchina di caricamento corrente è una macchina di caricamento remoto, che lo faràremote_hosts=127.0.0.1Cambia inremote_hosts=192.168.117.182:1099
L'IP e la porta della macchina di caricamento remoto devono essere scritti qui. Se più sono multipli, separarli con virgole.

Inserisci qui la descrizione dell'immagine

Inserisci qui la descrizione dell'immagine

server.rmi.ssl.disable=false
Volereserver.rmi.ssl.disable=falseCambia inserver.rmi.ssl.disable=true
Inserisci qui la descrizione dell'immagine
Quando lo script viene trasmesso alla macchina di controllo, lo script verrà distribuito automaticamente a ciascuna macchina di carico.
Accesso a scenario singolo di test separato
Inserisci qui la descrizione dell'immagine
Dopo aver caricato lo script, esegui lo script
Eseguire tramite caricamento remoto

/usr/local/apache-jmeter-5.1.1/bin/jmeter -n -r -t test.jmx
  • 1

Inserisci qui la descrizione dell'immagine

Ciascuna macchina per il carico di lavoro (pressa) ha 5 thread e la macchina di controllo totale ha 10 thread.
Inserisci qui la descrizione dell'immagine

Preparazione ambientale
Due macchine virtuali. Sono presenti un master e due slave. La macchina Windows funge da master e lo slave utilizza una macchina virtuale.
Fonte: https://jmeter.apache.org/usermanual/jmeter_distributed_testing_step_by_step.html

Problemi che si presentano:
java.rmi.RemoteException: Impossibile avviare. localhost.localdomain è un indirizzo loopback

Oggetto remoto creato: UnicastServerRef2 [liveRef: [endpoint:127.0.0.1:43474,objID:[-5a8dd143:17e2852fe88:-7fff, 3673082414768940798]]]
Il server non è riuscito ad avviarsi: java.rmi.RemoteException: Impossibile avviare. localhost.localdomain è un indirizzo loopback.
Si è verificato un errore: impossibile avviare. localhost.localdomain è un indirizzo loopback.
Inserisci qui la descrizione dell'immagine
Informazioni sull'eccezione: Eccezione di avvio del server: La chiamata al metodo remoto Java ha generato un'eccezione: Impossibile avviare il servizio. localhost.localdomain è un indirizzo di loopback locale

Il nome host ottenuto tramite il comando hostname è localhost.
Controllare la configurazione degli host tramite il comando cat /etc/hosts localhost localhost.localdomain localhost4... punta a 127.0.0.1
Inserisci qui la descrizione dell'immagine
Soluzione:
Specificare l'indirizzo IP dell'host del server remoto (rmi.server.hostname)
Inizia specificando il comando del terminale
./jmeter-server -Djava.rmi.server.hostname=192.168.2.2
Inserisci qui la descrizione dell'immagineInserisci qui la descrizione dell'immagine