Ciao, Habr!
Questo è un prequel del mio ed è anche un remake dell'articolo .
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.

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 puoi leggere di più al riguardo.
Per la sua creazione è comodo utilizzare MQ Explorer:

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:

Figura 2: Selezione del tipo di contesto iniziale
Dopodiché si può procedere alla creazione di questi oggetti, iniziano con la fabbrica di connessioni:

Figura 3: Creazione della fabbrica di connessioni
Selezionare un nome significativo…

Figura 4: Selezione del nome della fabbrica di connessioni
… e il tipo Queue Connection Factory:

Figura 5: Selezione del tipo di fabbrica di connessioni
Protocollo — MQ Client per la possibilità di interagire con MQ da remoto:

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:

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):

Figura 8: Configurazione delle opzioni della fabbrica di connessioni
E nella scheda Channels — canale per la connessione. Cliccare Fine per completare:

Figura 9: Completamento della creazione della fabbrica di connessioni
Ora creiamo una connessione alla coda:

Figura 10: Creazione dell'oggetto target
Scegliamo un nome comprensibile (preferisco indicare il nome reale della coda) e il tipo Coda:

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:

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:

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 in 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 .
- 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ì:

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):

Figura 15: Parametri di connessione a MQ
Il secondo contiene i nomi degli oggetti target, che fanno riferimento alle code:

Figura 16: Nomi delle code parametrizzati
Rimane da configurare il JMS Publisher per caricare un messaggio di test nella coda in uscita:

Figura 17: Configurazione del JMS Publisher
E il JMS Subscriber per leggere il messaggio dalla coda in ingresso:

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.

Fonte: habr.com
