IBM MQ e JMeter: primeiro contato

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 inicial

Selecione 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 inicial

Entã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ões

Escolha 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ão

Protocolo - MQ Client para a possibilidade de interagir remotamente com o MQ:


Figura 6: Escolhendo um protocolo de connection factory

Na 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 existente

Na 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 Factory

E na guia Canais , o canal para a conexão. Clique em Concluir para concluir:


Figura 9: Concluindo o Connection Factory

Agora crie uma conexão com a fila:


Figura 10: Criando um destino

Escolha 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 destino

Por 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 existente

Na 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 destino

Preparando 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 teste

Existem 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 MQ

O segundo são os nomes dos destinos que referenciam a fila:


Figura 16: Nomes de filas parametrizadas

Resta 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 a mensagem da fila de entrada:


Figura 18: Configurando o assinante JMS

Se 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.

imagem

Source: https://habr.com/ru/post/pt437172/


All Articles