Oi, Habr!
Esta é uma prequela da minha
Desta vez, contarei a você sobre minha experiência de reconciliar JMeter e IBM MQ para testes felizes de aplicativos no IBM WAS. Me deparei com essa tarefa, não foi fácil. Quero ajudar a economizar tempo para todos os interessados.
Introdução
Sobre o projeto: barramento de dados, diversas mensagens xml, três áreas de troca (filas, banco de dados, sistema de arquivos), web services com lógica própria de processamento de mensagens. À medida que o projeto avançava, os testes manuais tornaram-se cada vez mais difíceis. O Apache JMeter foi chamado para o resgate - poderoso e de código aberto, com uma grande comunidade de usuários e uma interface amigável. A facilidade de personalização da versão pronta para uso permite cobrir qualquer caso, e a promessa do desenvolvedor líder de ajudar se isso (ajudou) finalmente confirmou minha escolha.
Preparando o contexto inicial
Para interagir com o gerenciador de filas, é necessário um contexto inicial. Existem vários tipos, aqui
Para criá-lo, é conveniente usar o MQ Explorer:
Figura 1: Adicionando um contexto inicial
Selecione o tipo de arquivo de contexto e o diretório de armazenamento .ligações arquivo que conterá uma descrição dos objetos JNDI:
Figura 2: Selecionando o tipo de contexto inicial
Então você pode começar a criar esses objetos. E comece com a connection factory:
Figura 3: Criando uma connection factory
Escolha um nome amigável...
Figura 4: Selecionando um nome de connection factory
... e digite Fábrica de conexão de fila:
Figura 5: Selecionando o tipo de connection factory
Protocolo - Cliente MQ para poder interagir com o MQ remotamente:
Figura 6: Seleção do protocolo Connection Factory
Na próxima etapa, você pode selecionar uma fábrica existente e copiar outras configurações dela. Clique Próximo, se não houver:
Figura 7: Selecionando configurações para um connection factory existente
Na janela de seleção de parâmetros, basta especificar três. Na aba Conexão indicar o nome do gerenciador de filas e o suporte IP com sua localização (porta 1414 deixar):
Figura 8: Configurando Parâmetros de Connection Factory
E na aba Canais — canal para conexão. Clique Acabamento completar:
Figura 9: Concluindo a criação do connection factory
Agora vamos criar uma conexão com a fila:
Figura 10: Criando um objeto de destino
Vamos escolher um nome amigável (prefiro indicar o nome real da fila) e digitar Fila:
Figura 11: Selecionando nome e tipo de destino
Semelhante a Figura 7 Você pode copiar configurações de uma fila existente. Clique também Próximo, se for o primeiro:
Figura 12: Seleção de configurações para um destino existente
Na janela de configurações, basta selecionar o nome do gerente e a fila desejada, clicar Acabamento. Em seguida, repita o número necessário de vezes até que todas as filas necessárias para interagir com o JMeter tenham sido criadas:
Figura 13: Concluindo a criação do destino
Preparando JMeter
A preparação do JMeter envolve a adição das bibliotecas necessárias para interagir com o MQ. Eles estão localizados em %wmq_home%/java/lib. Copie-os para %jmeter_home%/lib/ext antes de iniciar o 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
- provedorutil.jar
Lista alternativa sugerida
Ocorre um erro NoClassDEfFoundError com jms.jar, a solução que encontrei
- com.ibm.mq.allclient.jar
- fscontext.jar
- javax.jms-api-2.0.jar
- provedorutil.jar
Ambas as listas de bibliotecas funcionam com êxito com JMeter 5.0 e IBM MQ 8.0.0.4.
Configurando um plano de teste
O conjunto necessário e suficiente de elementos JMeter é assim:
Figura 14: Plano de teste
Existem cinco variáveis no plano de teste de exemplo. Apesar de seu pequeno número, recomendo criar elementos de configuração separados para diferentes tipos de variáveis. À medida que os testes aumentam, isso tornará a navegação muito mais fácil. Neste caso, obtemos duas listas. O primeiro contém parâmetros para conexão com o MQ (consulte. Figura 2 и Figura 4):
Figura 15: Opções de conexão MQ
O segundo são os nomes dos objetos de destino que se referem às filas:
Figura 16: Nomes de filas parametrizadas
Resta apenas configurar o JMS Publisher para carregar a mensagem de teste na fila de saída:
Figura 17: Configurando o JMS Publisher
E o Assinante JMS para ler uma mensagem da fila de entrada:
Figura 18: Configurando Assinante JMS
Se tudo for feito corretamente, o resultado da execução no ouvinte será preenchido com cores verdes brilhantes e alegres.
Conclusão
Omiti deliberadamente as questões de encaminhamento e administração; estes são tópicos bastante íntimos e extensos para publicações separadas.
Além disso, há uma parcela significativa de nuances no trabalho com filas, bancos de dados e arquivos, sobre as quais também gostaria de falar separadamente e detalhadamente.
Economize seu tempo. E obrigado pela sua atenção.
Fonte: habr.com