IBM MQ e JMeter: Il Primo Contatto

Ciao, Habr!

Questo è un prequel del mio pubblicazione precedente ed è anche un remake dell'articolo Testing automatizzato dei servizi che utilizzano il protocollo MQ con JMeter.

Questa volta condividerò la mia esperienza nell'integrare JMeter e IBM MQ per un test efficace delle applicazioni su IBM WAS. Ho affrontato questa sfida e non è stata semplice. Desidero aiutare chi è interessato a risparmiare tempo.

IBM MQ e JMeter: Il Primo Contatto

Introduzione

Sul progetto: un bus dati, numerosi messaggi xml, tre aree di scambio (code, database, sistema di file), servizi web con la propria logica di elaborazione dei messaggi. Man mano che il progetto si sviluppava, il test manuale diventava sempre più complicato. In soccorso è arrivato Apache JMeter — potente e open source, con una grande comunità di utenti e un'interfaccia intuitiva. La facilità di personalizzazione della versione 'out of the box' consente di coprire qualsiasi scenario, e la promessa del principale sviluppatore di aiutare se necessario (effettivamente ha aiutato) mi ha convinto definitivamente nella scelta.

Preparazione del contesto iniziale

Per interagire con il gestore delle code è necessario un contesto iniziale. Esistono diversi tipi, ecco qui puoi leggere di più al riguardo.
Per la sua creazione è comodo utilizzare MQ Explorer:

IBM MQ e JMeter: Il Primo Contatto
Figura 1: Aggiunta del contesto iniziale

Selezionare il tipo di file del contesto e la directory di archiviazione .bindings del file che conterrà la descrizione degli oggetti JNDI:

IBM MQ e JMeter: Il Primo Contatto
Figura 2: Selezione del tipo di contesto iniziale

Dopodiché si può procedere alla creazione di questi oggetti, iniziano con la fabbrica di connessioni:

IBM MQ e JMeter: Il Primo Contatto
Figura 3: Creazione della fabbrica di connessioni

Selezionare un nome significativo…

IBM MQ e JMeter: Il Primo Contatto
Figura 4: Selezione del nome della fabbrica di connessioni

… e il tipo Queue Connection Factory:

IBM MQ e JMeter: Il Primo Contatto
Figura 5: Selezione del tipo di fabbrica di connessioni

Protocollo — MQ Client per la possibilità di interagire con MQ da remoto:

IBM MQ e JMeter: Il Primo Contatto
Figura 6: Selezione del protocollo della fabbrica di connessioni

Nella fase successiva, è possibile selezionare una fabbrica esistente e copiare ulteriori impostazioni da essa. Cliccare Avanti, se non esiste:

IBM MQ e JMeter: Il Primo Contatto
Figura 7: Selezione delle impostazioni della fabbrica di connessioni esistente

Nella finestra di selezione delle opzioni, è sufficiente specificare tre parametri. Nella scheda Connection indicare il nome del gestore della coda e l'IP della scheda con la sua posizione (portare 1414 fermo):

IBM MQ e JMeter: Il Primo Contatto
Figura 8: Configurazione delle opzioni della fabbrica di connessioni

E nella scheda Channels — canale per la connessione. Cliccare Fine per completare:

IBM MQ e JMeter: Il Primo Contatto
Figura 9: Completamento della creazione della fabbrica di connessioni

Ora creiamo una connessione alla coda:

IBM MQ e JMeter: Il Primo Contatto
Figura 10: Creazione dell'oggetto target

Scegliamo un nome comprensibile (preferisco indicare il nome reale della coda) e il tipo Coda:

IBM MQ e JMeter: Il Primo Contatto
Figura 11: Selezione del nome e del tipo dell'oggetto target

Analogamente a Figura 7 , è possibile copiare le impostazioni da una coda esistente. Facciamo clic su Avanti, se è la prima:

IBM MQ e JMeter: Il Primo Contatto
Figura 12: Selezione delle impostazioni dell'oggetto target esistente

Nella finestra delle impostazioni, è sufficiente scegliere il nome del gestore e la coda desiderata, cliccare su Fine. Dopodiché, ripetere il numero necessario di volte, finché tutte le code necessarie per interagire con JMeter non saranno create:

IBM MQ e JMeter: Il Primo Contatto
Figura 13: Completamento della creazione dell'oggetto target

Preparazione di JMeter

La preparazione di JMeter implica l'aggiunta delle librerie necessarie per interagire con MQ. Si trovano in %wmq_home%/java/lib. Copiale in %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 proposto polarnik in i commenti con una piccola differenza: javax.jms-api-2.0.jar invece di jms.jar.
Con jms.jar si verifica l'errore NoClassDefFoundError, la cui soluzione è stata trovata qui.

  • com.ibm.mq.allclient.jar
  • fscontext.jar
  • javax.jms-api-2.0.jar
  • providerutil.jar

Entrambi gli elenchi delle librerie funzionano correttamente con JMeter 5.0 e IBM MQ 8.0.0.4.

Impostazione del piano di test

Il set di elementi JMeter necessario e sufficiente appare così:

IBM MQ e JMeter: Il Primo Contatto
Figura 14: Piano di test

Nell'esempio del piano di test ci sono cinque variabili. Nonostante il loro numero limitato, consiglio di creare elementi di configurazione separati per diversi tipi di variabili. Man mano che i test crescono, questo semplificherà notevolmente la navigazione. In questo caso, ci sono due elenchi. Il primo contiene i parametri di connessione a MQ (vedi. Figura 2 e Figura 4):

IBM MQ e JMeter: Il Primo Contatto
Figura 15: Parametri di connessione a MQ

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

IBM MQ e JMeter: Il Primo Contatto
Figura 16: Nomi delle code parametrizzati

Rimane da configurare il JMS Publisher per caricare un messaggio di test nella coda in uscita:

IBM MQ e JMeter: Il Primo Contatto
Figura 17: Configurazione del JMS Publisher

E il JMS Subscriber per leggere il messaggio dalla coda in ingresso:

IBM MQ e JMeter: Il Primo Contatto
Figura 18: Configurazione del JMS Subscriber

Se tutto è stato fatto correttamente, il risultato dell'esecuzione nel listener si riempirà di vivaci e gioiosi colori verdi.

Conclusione

Ho intenzionalmente omesso le questioni di routing e amministrazione; sono temi piuttosto intimi e vasti per pubblicazioni separate.

Inoltre, ci sono molte sfumature nel lavoro con le code, i database e i file, di cui vorrei discutere separatamente e in modo dettagliato.

Risparmia il tuo tempo. E grazie per l'attenzione.

IBM MQ e JMeter: Il Primo Contatto

Fonte: habr.com

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster