Ehi Habr!
Questo è un prequel del mio
Questa volta ti parlerò della mia esperienza di riconciliazione tra JMeter e IBM MQ per testare felicemente le applicazioni su IBM WAS. Mi sono trovato di fronte a un compito del genere, non è stato facile. Voglio aiutare a risparmiare tempo per tutti gli interessati.
Introduzione
Informazioni sul progetto: bus dati, molti messaggi xml, tre aree di scambio (code, database, file system), servizi web con la propria logica di elaborazione dei messaggi. Con l'avanzare del progetto, i test manuali sono diventati sempre più difficili. Apache JMeter è stato chiamato in soccorso: potente e open source, con una vasta comunità di utenti e un'interfaccia amichevole. La facilità di personalizzazione della versione pronta all'uso ti consente di coprire qualsiasi caso e la promessa di aiuto da parte dello sviluppatore principale se quello (mi ha aiutato) ho finalmente confermato la mia scelta.
Preparazione del contesto iniziale
Per interagire con il gestore code, è necessario un contesto iniziale. Ce ne sono diversi tipi, qui
Per crearlo è conveniente utilizzare MQ Explorer:
Figura 1: aggiunta di un contesto iniziale
Selezionare il tipo di file di contesto e la directory di archiviazione .legamenti file che conterrà una descrizione degli oggetti JNDI:
Figura 2: selezione del tipo di contesto iniziale
Quindi puoi iniziare a creare questi oggetti. E inizia con la fabbrica delle connessioni:
Figura 3: creazione di una factory di connessione
Scegli un nome descrittivo...
Figura 4: selezione del nome di una factory di connessione
...e digita Fabbrica di connessione della coda:
Figura 5: selezione del tipo di factory di connessione
Protocollo - Cliente MQ per poter interagire con MQ da remoto:
Figura 6: Selezione del protocollo Connection Factory
Nel passaggio successivo è possibile selezionare una fabbrica esistente e copiare da essa ulteriori impostazioni. Clic Avanti, se non ce n'è:
Figura 7: selezione delle impostazioni per una factory di connessione esistente
Nella finestra di selezione dei parametri è sufficiente specificarne tre. Sulla scheda Connessione indicare il nome del gestore code e lo stand IP con la sua ubicazione (port 1414 Partire):
Figura 8: configurazione dei parametri della factory di connessione
E sulla scheda Canali — canale per la connessione. Clic Fine completare:
Figura 9: completamento della creazione della factory di connessione
Ora creiamo una connessione alla coda:
Figura 10: creazione di un oggetto di destinazione
Scegliamo un nome descrittivo (preferisco indicare il vero nome della coda) e digitiamo Fare la coda:
Figura 11: selezione del nome e del tipo di destinazione
Simile a Figura 7 È possibile copiare le impostazioni da una coda esistente. Clicca anche Avanti, se è il primo:
Figura 12: selezione delle impostazioni per una destinazione esistente
Nella finestra delle impostazioni, seleziona semplicemente il nome del manager e la coda desiderata, fai clic Fine. Ripetere quindi il numero di volte richiesto finché non saranno state create tutte le code necessarie per interagire con JMeter:
Figura 13: completamento della creazione del target
Preparazione di JMeter
La preparazione di JMeter comporta l'aggiunta delle librerie necessarie per interagire con MQ. Si trovano in %wmq_home%/java/lib. Copiali su %jmeter_home%/lib/ext prima di avviare JMeter.
- com.ibm.mq.commonservices.jar
- com.ibm.mq.headers.jar
- com.ibm.mq.jar
- com.ibm.mq.jmqi.jar
- com.ibm.mq.pcf.jar
- com.ibm.mqjms.jar
- dhbcore.jar
- fscontext.jar
- jms.jar
- jta.jar
- providerutil.jar
Elenco alternativo suggerito
Si verifica un errore NoClassDEfFoundError con jms.jar, la soluzione che ho trovato
- com.ibm.mq.allclient.jar
- fscontext.jar
- javax.jms-api-2.0.jar
- providerutil.jar
Entrambi gli elenchi di librerie funzionano correttamente con JMeter 5.0 e IBM MQ 8.0.0.4.
Impostazione di un piano di test
L'insieme necessario e sufficiente di elementi JMeter si presenta così:
Figura 14: piano di test
Nel piano di test di esempio sono presenti cinque variabili. Nonostante il loro numero ridotto, consiglio di creare elementi di configurazione separati per diversi tipi di variabili. Man mano che i test crescono, ciò renderà la navigazione molto più semplice. In questo caso, otteniamo due elenchi. Il primo contiene i parametri per la connessione a MQ (vedi. Figura 2 и Figura 4):
Figura 15: Opzioni di connessione MQ
Il secondo sono i nomi degli oggetti target che fanno riferimento alle code:
Figura 16: nomi delle code con parametri
Non resta che configurare JMS Publisher per caricare il messaggio di prova nella coda in uscita:
Figura 17: configurazione di JMS Publisher
E l'abbonato JMS per leggere un messaggio dalla coda in entrata:
Figura 18: configurazione dell'abbonato JMS
Se tutto è fatto correttamente, il risultato dell'esecuzione nell'ascoltatore sarà riempito con colori verdi brillanti e allegri.
conclusione
Ho deliberatamente omesso le questioni relative al routing e all'amministrazione; questi sono argomenti piuttosto intimi ed estesi per pubblicazioni separate.
Inoltre, c'è una parte significativa di sfumature nel lavorare con code, database e file, di cui vorrei parlare anche separatamente e in dettaglio.
Risparmia tempo. E grazie per la tua attenzione.
Fonte: habr.com