11. Construindo um Plano de Teste de Tópico JMS ¶
Nesta seção, você aprenderá como criar um Plano de Teste para testar Provedores JMS. Você criará cinco assinantes e um editor. Você criará 2 grupos de threads e definirá cada um para 10 iterações. O total de mensagens é (6 threads) x (1 mensagem) x (repetir 10 vezes) = 60 mensagens. Para construir o Plano de Teste, você usará os seguintes elementos: Thread Group , JMS Publisher , JMS Subscriber e Graph Results .
Notas gerais sobre JMS: Existem atualmente dois amostradores JMS. Um usa tópicos JMS e o outro usa filas. As mensagens de tópico são comumente conhecidas como mensagens pub/sub. As mensagens de tópico geralmente são usadas nos casos em que uma mensagem é publicada por um produtor e consumida por vários assinantes. As mensagens de fila geralmente são usadas para transações em que o remetente espera uma resposta. Os sistemas de mensagens são bem diferentes das solicitações HTTP normais. No HTTP, um único usuário envia uma solicitação e obtém uma resposta. O sistema de mensagens pode funcionar em modo síncrono e assíncrono. Um amostrador JMS precisa dos arquivos jar de implementação JMS; por exemplo, do Apache ActiveMQ. Veja aqui a lista de jars fornecida pelo ActiveMQ.
11.1 Adicionando Usuários ¶
A primeira etapa é adicionar um elemento Thread Group . O Thread Group informa ao JMeter o número de usuários que você deseja simular, com que frequência os usuários devem enviar solicitações e quantas solicitações devem enviar.
Vá em frente e adicione o elemento ThreadGroup selecionando primeiro o Plano de Teste, clicando com o botão direito do mouse para obter o menu
e, em seguida, selecione .Agora você deve ver o elemento Thread Group em Test Plan. Se você não vir o elemento, então "expanda" a árvore do Plano de Testes clicando no elemento Plano de Testes.
Em seguida, você precisa modificar as propriedades padrão. Selecione o elemento Thread Group na árvore, caso ainda não o tenha selecionado. Agora você deve ver o Thread Group Control Panel na seção direita da janela JMeter (veja a Figura 11.1 abaixo)
Comece fornecendo um nome mais descritivo para nosso grupo de tópicos. No campo de nome, insira Assinantes .
Em seguida, aumente o número de usuários (chamados de threads) para 5 .
No próximo campo, o Período de Aceleração, defina o valor para 0 segundos. Esta propriedade informa ao JMeter quanto tempo deve demorar entre o início de cada usuário. Por exemplo, se você inserir um Período de Aceleração de 5 segundos, o JMeter terminará de iniciar todos os seus usuários ao final dos 5 segundos. Portanto, se tivermos 5 usuários e um período de aceleração de 5 segundos, o atraso entre os usuários iniciais seria de 1 segundo (5 usuários / 5 segundos = 1 usuário por segundo). Se você definir o valor como 0, o JMeter iniciará imediatamente todos os usuários.
Desmarque a caixa de seleção " Forever " e insira um valor de 10 no campo Loop Count. Essa propriedade informa ao JMeter quantas vezes repetir seu teste. Se você inserir um valor de contagem de loop de 0 , o JMeter executará seu teste apenas uma vez. Para que o JMeter execute repetidamente seu Plano de Teste, marque a caixa de seleção Sempre .
Repita o processo e adicione outro grupo de threads. Para o segundo grupo de encadeamentos, insira " Publisher " no campo de nome, defina o número de encadeamentos como 1 e defina a iteração como 10 .
11.2 Adicionando Assinante e Publicador JMS ¶
Certifique-se de que os arquivos jar necessários estejam no diretório lib do JMeter. Se não estiverem, desligue o JMeter, copie os arquivos jar e reinicie o JMeter.
Comece incluindo o Assinante JMS do amostrador no elemento Assinantes ( ). Em seguida, selecione o elemento Assinante JMS na árvore e edite as seguintes propriedades:
- Altere o campo Nome para " Assinante de Amostra "
- Se o provedor JMS usar o arquivo jndi.properties , marque a caixa
- Insira o nome da classe InitialContextFactory. Por exemplo, com ActiveMQ 5.4, o valor é " org.apache.activemq.jndi.ActiveMQInitialContextFactory "
- Insira o URL do provedor. Esta é a URL do servidor JNDI, se houver. Por exemplo, com ActiveMQ 5.4 na máquina local com porta padrão, o valor é " tcp://localhost:61616 "
- Digite o nome da fábrica de conexão. Consulte a documentação do provedor JMS para obter informações. Para ActiveMQ, o padrão é " ConnectionFactory "
- Insira o nome do tópico da mensagem. Para Tópicos Dinâmicos do ActiveMQ (criar tópicos dinamicamente), o valor de exemplo é " dynamicTopics/MyStaticTopic1 "
Nota: A configuração na inicialização significa que o JMeter iniciando a escuta no Destino no início do teste sem possibilidade de alteração de nome. Configurar em cada amostra significa que o JMeter (re)começando a escutar antes de executar cada amostra do Assinante JMS, esta última opção permite ter o nome de destino com algumas variáveis do JMeter
- Se o provedor JMS exigir autenticação, marque " obrigatório " e insira o nome de usuário e a senha. Por exemplo, Orion JMS requer autenticação, enquanto ActiveMQ e MQSeries não
- Digite 10 em " Número de amostras para agregar ". Por motivos de desempenho, o amostrador agregará mensagens, pois mensagens pequenas chegarão muito rapidamente. Se o amostrador não agregasse as mensagens, o JMeter não conseguiria acompanhar.
- Se você quiser ler a resposta, marque a caixa
- Existem duas implementações de cliente para assinantes. Se o provedor JMS exibir encadeamentos zumbis com um cliente, tente o outro.
Em seguida, inclua o editor JMS do amostrador no elemento Publicador ( ). Em seguida, selecione o elemento JMS Publisher na árvore e edite as seguintes propriedades:
- Altere o campo Nome para " Editor de Amostra ".
- Se o provedor JMS usar o arquivo jndi.properties , marque a caixa
- Insira o nome da classe InitialContextFactory. Por exemplo, com ActiveMQ 5.4, o valor é " org.apache.activemq.jndi.ActiveMQInitialContextFactory "
- Insira o URL do provedor. Esta é a URL do servidor JNDI, se houver. Por exemplo, com ActiveMQ 5.4 na máquina local com porta padrão, o valor é " tcp://localhost:61616 "
- Digite o nome da fábrica de conexão. Consulte a documentação do provedor JMS para obter informações. Para ActiveMQ, o padrão é " ConnectionFactory "
- Insira o nome do tópico da mensagem. Para Tópicos Dinâmicos do ActiveMQ (criar tópicos dinamicamente), o valor de exemplo é " dynamicTopics/MyStaticTopic1 ".
Nota: A configuração na inicialização significa que o JMeter inicia a conexão com o Destino no início do teste sem possibilidade de alteração de nome. Configurar em cada amostra significa que o JMeter (re)iniciando a conexão antes de executar cada amostra do JMS Publisher, esta última opção permite ter o nome de destino com algumas variáveis do JMeter
- Se o provedor JMS exigir autenticação, marque " obrigatório " e insira o nome de usuário e a senha. Por exemplo, Orion JMS requer autenticação, enquanto ActiveMQ e MQSeries não
- Digite 10 em " Número de amostras para agregar ". Por motivos de desempenho, o amostrador agregará mensagens, pois mensagens pequenas chegarão muito rapidamente. Se o amostrador não agregasse as mensagens, o JMeter não conseguiria acompanhar.
- Selecione a configuração apropriada para obter a mensagem para publicação. Se você quiser que o amostrador selecione aleatoriamente a mensagem, coloque as mensagens em um diretório e selecione o diretório usando o navegador.
- Selecione o tipo de mensagem. Se a mensagem estiver em formato de objeto ou mensagem de mapa, certifique-se de que a mensagem seja gerada corretamente.
11.3 Adicionando um Ouvinte para Visualizar Armazenar os Resultados do Teste ¶
O elemento final que você precisa adicionar ao seu Plano de Teste é um Listener . Este elemento é responsável por armazenar todos os resultados de suas requisições HTTP em um arquivo e apresentar um modelo visual dos dados.
Selecione o elemento Plano de Teste e adicione um ouvinte de Resultados do Gráfico ( ). Em seguida, você precisa especificar um diretório e um nome de arquivo do arquivo de saída. Você pode digitá-lo no campo de nome de arquivo ou selecionar o botão Procurar e navegar até um diretório e inserir um nome de arquivo.