IBM MQ e JMeter: Primo contatto

Ciao, Habr!

Questo è un prequel del mio pubblicazione precedente e nello stesso tempo un remake dell'articolo Test automatizzati per servizi che utilizzano il protocollo MQ con JMeter.

Questa volta parlerò della mia esperienza di integrazione di JMeter e IBM MQ per un test efficace delle applicazioni su IBM WAS. Ho affrontato una sfida simile, e non è stata semplice. Voglio aiutare a risparmiare tempo a tutti gli interessati.

IBM MQ e JMeter: Primo contatto

Introduzione

Informazioni sul progetto: un bus dati, numerosi messaggi xml, tre aree di scambio (code, DB, sistema dei file), servizi web con la propria logica di elaborazione dei messaggi. Con l'evoluzione del progetto, testare manualmente è diventato sempre più difficile. È venuto in aiuto Apache JMeter — potente, open source, con una grande comunità di utenti e un'interfaccia intuitiva. La facilità di personalizzazione della versione standard permette di coprire qualsiasi caso, e la promessa del principale sviluppatore di aiutare in caso di necessità (in effetti ha aiutato) ha definitivamente confermato la scelta.

Preparazione del contesto iniziale

Per interagire con il manager delle code è necessario un contesto iniziale. Ci sono diversi tipi, ecco qui dove puoi leggere ulteriori dettagli.
Per la sua creazione è comodo utilizzare MQ Explorer:

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

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

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

Dopo di che, si può iniziare a creare questi oggetti, cominciando dalla fabbrica di connessioni:

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

Selezionare un nome significativo…

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

… e il tipo Queue Connection Factory:

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

Protocollo — MQ Client per la possibilità di interazione remota con MQ:

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

Nella fase successiva si può selezionare una fabbrica esistente e copiare le configurazioni da essa. Cliccare Next, se non è presente:

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

Nella finestra di selezione dei parametri è sufficiente impostare tre valori. Nella scheda Connection specificare il nome del manager delle code e l'IP del server in cui è situato (puoi 1414 lasciarlo invariato):

IBM MQ e JMeter: Primo contatto
Figura 8: Configurazione dei parametri della fabbrica di connessioni

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

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

Ora creiamo una connessione alla coda:

IBM MQ e JMeter: Primo contatto
Figura 10: Creazione di un oggetto target

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

IBM MQ e JMeter: Primo contatto
Figura 11: Scelta del nome e del tipo di oggetto target

Analogamente a Figura 7 è possibile copiare le impostazioni da una coda esistente. Clicchiamo anche su Next, se è la prima:

IBM MQ e JMeter: Primo contatto
Figura 12: Scelta delle impostazioni dell'oggetto target esistente

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

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

Preparazione di JMeter

La preparazione di JMeter consiste nell'aggiungere le 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

Lista alternativa proposta da polarnik in commenti con una piccola nota: javax.jms-api-2.0.jar invece di jms.jar.
Con jms.jar si verifica un 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 di librerie funzionano correttamente con JMeter 5.0 e IBM MQ 8.0.0.4.

Configurazione del piano di test

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

IBM MQ e JMeter: Primo contatto
Figura 14: Piano di test

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

IBM MQ e JMeter: 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: Primo contatto
Figura 16: Nomi parametrizzati delle code

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

IBM MQ e JMeter: Primo contatto
Figura 17: Configurazione di JMS Publisher

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

IBM MQ e JMeter: Primo contatto
Figura 18: Configurazione di JMS Subscriber

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

Conclusione

Ho volutamente tralasciato le questioni di routing e amministrazione, sono temi piuttosto intimi e vasti per pubblicazioni separate.

Inoltre, ci sono una serie di dettagli importanti nel lavorare con code, basi di dati e file, di cui sarebbe utile discutere separatamente e in modo approfondito.

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

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