IBM MQ e JMeter: primo contatto

Ehi Habr!

Questo è un prequel del mio pubblicazione precedente e allo stesso tempo un rifacimento dell'articolo Test automatizzato dei servizi utilizzando il protocollo MQ utilizzando JMeter.

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.

IBM MQ e JMeter: primo contatto

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 qui puoi leggere di più.
Per crearlo è conveniente utilizzare MQ Explorer:

IBM MQ e JMeter: primo contatto
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:

IBM MQ e JMeter: primo contatto
Figura 2: selezione del tipo di contesto iniziale

Quindi puoi iniziare a creare questi oggetti. E inizia con la fabbrica delle connessioni:

IBM MQ e JMeter: primo contatto
Figura 3: creazione di una factory di connessione

Scegli un nome descrittivo...

IBM MQ e JMeter: primo contatto
Figura 4: selezione del nome di una factory di connessione

...e digita Fabbrica di connessione della coda:

IBM MQ e JMeter: primo contatto
Figura 5: selezione del tipo di factory di connessione

Protocollo - Cliente MQ per poter interagire con MQ da remoto:

IBM MQ e JMeter: primo contatto
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'è:

IBM MQ e JMeter: primo contatto
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):

IBM MQ e JMeter: primo contatto
Figura 8: configurazione dei parametri della factory di connessione

E sulla scheda Canali — canale per la connessione. Clic Fine completare:

IBM MQ e JMeter: primo contatto
Figura 9: completamento della creazione della factory di connessione

Ora creiamo una connessione alla coda:

IBM MQ e JMeter: primo contatto
Figura 10: creazione di un oggetto di destinazione

Scegliamo un nome descrittivo (preferisco indicare il vero nome della coda) e digitiamo Fare la coda:

IBM MQ e JMeter: primo contatto
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:

IBM MQ e JMeter: primo contatto
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:

IBM MQ e JMeter: primo contatto
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 polarnik в commenti con una piccola sfumatura: javax.jms-api-2.0.jar invece di jms.jar.
Si verifica un errore NoClassDEfFoundError con jms.jar, la soluzione che ho trovato qui.

  • 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ì:

IBM MQ e JMeter: primo contatto
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):

IBM MQ e JMeter: primo contatto
Figura 15: Opzioni di connessione MQ

Il secondo sono i nomi degli oggetti target che fanno riferimento alle code:

IBM MQ e JMeter: primo contatto
Figura 16: nomi delle code con parametri

Non resta che configurare JMS Publisher per caricare il messaggio di prova nella coda in uscita:

IBM MQ e JMeter: primo contatto
Figura 17: configurazione di JMS Publisher

E l'abbonato JMS per leggere un messaggio dalla coda in entrata:

IBM MQ e JMeter: primo contatto
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.

IBM MQ e JMeter: primo contatto

Fonte: habr.com