Olá Habr!
Esta é uma
prévia da minha
publicação anterior e, ao mesmo tempo, um remake do artigo
Teste automatizado de serviços usando o protocolo MQ usando JMeter .
Desta vez, vou falar sobre minha experiência de reconciliar o JMeter e o IBM MQ para um teste feliz de aplicativos no IBM WAS. Enfrentando tal tarefa, facilmente não cedeu. Quero ajudar a economizar tempo para todos os interessados.

1. Introdução
Sobre o projeto: barramento de dados, muitas mensagens xml, três áreas de troca (filas, bancos de dados, sistema de arquivos), serviços da web com sua própria lógica de processamento de mensagens. À medida que o projeto se desenvolvia, os testes manuais se tornaram mais difíceis. O Apache JMeter foi chamado para ajudar - 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 todos os casos e a promessa do desenvolvedor principal de ajudar
se algo (realmente ajudou) for finalmente aprovado na escolha.
Preparando o Contexto Inicial
Para interagir com o gerenciador de filas, você precisa de um contexto inicial. Pode ser de vários tipos,
aqui você pode ler mais.
É conveniente usar o MQ Explorer para criá-lo:
Figura 1: Adicionando um contexto inicialSelecione o tipo de arquivo do contexto e o diretório para armazenar as
ligações do arquivo que conterá a descrição dos objetos JNDI:
Figura 2: Escolhendo um tipo de contexto inicialEntão você pode começar a criar esses objetos. E comece com uma fábrica de conexões:
Figura 3: Criando uma fábrica de conexõesEscolha um nome amigável ...
Figura 4: Escolhendo um nome de fábrica de conexão... e o
tipo de Connection Factory da
fila :
Figura 5: Escolhendo um tipo de fábrica de conexãoProtocolo -
MQ Client para a possibilidade de interagir remotamente com o MQ:
Figura 6: Escolhendo um protocolo de connection factoryNa próxima etapa, você pode selecionar uma fábrica existente e copiar outras configurações dela. Clique em
Avançar , se não houver:
Figura 7: Selecionando configurações para um Connection Factory existenteNa janela de seleção de parâmetro, basta definir três. Na guia
Conexão , especifique o nome do gerenciador de filas e o ip do suporte com sua localização (deixe a porta
1414 ):
Figura 8: Definindo as configurações do Connection FactoryE na guia
Canais , o canal para a conexão. Clique em
Concluir para concluir:
Figura 9: Concluindo o Connection FactoryAgora crie uma conexão com a fila:
Figura 10: Criando um destinoEscolha um nome amigável (prefiro especificar o nome real da fila) e o tipo de
fila :
Figura 11: Selecionando o nome e o tipo do destinoPor analogia com a
Figura 7, você pode copiar as configurações de uma fila existente. Também clique em
Avançar se for o primeiro:
Figura 12: Selecionando as configurações de um destino existenteNa janela de configurações, basta selecionar o nome do gerente e a fila desejada, clique em
Concluir . Em seguida, repita o número de vezes necessário até que todas as filas necessárias para interagir com o JMeter sejam criadas:
Figura 13: Finalizando a criação do destinoPreparando o JMeter
A preparação do JMeter é incluir as 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
- providerutil.jar
Uma lista alternativa proposta por
polarnik em um
comentário com uma leve nuance: javax.jms-api-2.0.jar em vez de jms.jar.
Com jms.jar, ocorre um erro NoClassDEfFoundError, cuja solução é encontrada
aqui .
- com.ibm.mq.allclient.jar
- fscontext.jar
- javax.jms-api-2.0.jar
- providerutil.jar
As duas listas de bibliotecas funcionam com sucesso com o JMeter 5.0 e o IBM MQ 8.0.0.4.
Configuração do plano de teste
Um conjunto necessário e suficiente de elementos JMeter é semelhante a este:
Figura 14: Plano de testeExistem cinco variáveis no exemplo do plano de teste. Apesar do pequeno número, recomendo iniciar elementos de configuração separados para diferentes tipos de variáveis. À medida que os testes crescem, isso simplifica bastante a navegação. Nesse caso, duas listas são obtidas. O primeiro contém os parâmetros para conectar-se ao MQ (consulte a
Figura 2 e
Figura 4 ):
Figura 15: Configurações de conexão do MQO segundo são os nomes dos destinos que referenciam a fila:
Figura 16: Nomes de filas parametrizadasResta configurar o JMS Publisher para carregar a mensagem de teste na fila de saída:
Figura 17: Configurando o JMS PublisherE o Assinante JMS para ler a mensagem da fila de entrada:
Figura 18: Configurando o assinante JMSSe tudo for feito corretamente, o resultado no ouvinte será preenchido com cores verdes brilhantes e alegres.
Conclusão
Ele deliberadamente omitiu as questões de roteamento e administração; esses são tópicos bastante íntimos e extensos para publicações individuais.
Além disso, há uma porção substancial de nuances no trabalho com filas, bancos de dados e arquivos, sobre os quais eu também gostaria de falar separadamente e completamente.
Cuide do seu tempo. E obrigado por assistir.