JMeter Elementos e componentes: Grupo de threads, Amostradores

⚡ Resumo Inteligente

JMeter Os elementos são os blocos de construção de todo plano de teste: os Grupos de Threads criam usuários virtuais, os Samplers enviam as solicitações, os Listeners exibem os resultados e os Elementos de Configuração fornecem os valores padrão e os dados necessários para essas solicitações.

  • 🔘 Grupo de tópicos: Cada thread representa um usuário virtual que executa o aplicativo em teste.
  • ☑️ Amostradores: Escolha o protocolo da requisição — FTP, HTTP, JDBC, SMTP e outros.
  • Ouvintes: Apresente os resultados como um gráfico, uma árvore, uma tabela ou um arquivo de registro.
  • 🧪 Elementos de configuração: Defina valores padrão e variáveis ​​que os amostradores reutilizem em todo o teste.
  • 🛠️ Execuções orientadas por dados: O conjunto de dados CSV configurado fornece credenciais diferentes para cada usuário simulado.
  • Equivalentes modernos: O sampler BSF foi descontinuado; as versões atuais utilizam scripts JSR223 e Groovy.

JMeter Elementos: Grupo de Threads, Amostradores, Ouvintes e Elementos de Configuração

O que é elemento em JMeter?

Os diferentes componentes JMeter são chamados de Elementos. Cada Elemento é projetado para um propósito específico.

A figura abaixo fornece alguns elementos comuns em JMeter e mostra como eles se organizam em um Grupo de Tópicos.

JMeter Diagrama de hierarquia de elementos com Grupo de Threads acima de Samplers, Controladores Lógicos, Listeners, Elementos de Configuração, Asserções, Temporizadores e Processadores.

Estudar todos os componentes de uma só vez é um convite à confusão e ao tédio. Aqui, discutiremos os componentes essenciais que você precisa conhecer antes de começar. ensaio in JMeter.

Os componentes restantes serão abordados conforme forem utilizados nos tutoriais subsequentes. Os elementos discutidos neste tutorial estão listados abaixo.

Grupo de Tópicos

Um Grupo de Threads é uma coleção de threads. Cada thread representa um usuário utilizando a aplicação em teste. Basicamente, cada thread simula uma requisição real de um usuário ao servidor.

Os controles de um grupo de threads permitem definir o número de threads para cada grupo.

Por exemplo, se você definir o número de threads como 100, JMeter Será criada e simulada uma série de 100 requisições de usuários para o servidor em teste, conforme ilustrado no diagrama abaixo.

Diagrama de um JMeter Grupo de threads simulando os usuários de 1 a 100, cada um enviando uma solicitação para o aplicativo em teste.

O painel de Grupos de Threads também possui um período de inicialização gradual, que distribui o início dessas threads ao longo do tempo, em vez de iniciar todos os usuários de uma só vez.

Amostradores

Como já sabemos, JMeter suporta testes de HTTP, FTP, JDBC e muitos outros protocolos.

Sabemos também que os Grupos de Threads simulam solicitações de usuários ao servidor.

Mas como um Grupo de Threads sabe qual tipo de requisição (HTTP, FTP, etc.) ele precisa fazer?

A resposta é Samplers.

A solicitação do usuário pode ser uma solicitação FTP, uma solicitação HTTP, uma solicitação JDBC e assim por diante. A figura abaixo lista os exemplos abordados neste tutorial.

Diagrama de árvore listando JMeter Amostras: Solicitação FTP, Solicitação HTTP, Solicitação JDBC, Amostrador BSF, Amostrador de Log de Acesso e Amostrador SMTP.

Solicitação de FTP

Vamos imaginar que você queira testar o desempenho de um servidor FTP. Você pode usar um sampler de requisições FTP em JMeter para fazer esta tarefa. Este controlador permite enviar uma solicitação FTP de “download de arquivo” ou “upload de arquivo” para um servidor FTP.

Diagrama mostrando JMeter Enviar uma solicitação FTP a um servidor FTP para carregar ou baixar um arquivo.

Por exemplo, se você deseja baixar um arquivo “Test.txt” de um servidor FTP em teste, você precisa configurar alguns parâmetros em JMeter como na figura abaixo.

Painel de exemplo de requisição FTP com ftp.example.com como servidor, porta 21, arquivo remoto Test.txt e login anônimo.

O painel configura o servidor para ftp.example.com, porta 21, o arquivo remoto para Test.txt e a opção get(RETR), então JMeter Envia um comando FTP para esse servidor e baixa o arquivo.

Solicitação HTTP

Este amostrador permite enviar uma solicitação HTTP/HTTPS para um servidor web.

Considere o exemplo abaixo. JMeter envia uma solicitação HTTP para o Google site e recupera arquivos HTML ou imagens dele.

Diagrama de JMeter enviar uma solicitação HTTP para Google Sites e recebimento de HTML e imagens em retorno.

no tutorial JMeter Teste de DesempenhoExplicaremos mais sobre essa solicitação HTTP. É o sampler mais utilizado. teste de aplicação web O trabalho depende de.

Solicitação JDBC

Este sampler permite executar o banco de dados. teste de performance. Ele envia uma solicitação JDBC (uma consulta SQL) para um banco de dados.

Diagrama de JMeter Enviar uma consulta SQL para um servidor de banco de dados e receber o resultado.

Por exemplo, um servidor de banco de dados possui um campo `test_result` armazenado em uma tabela chamada `test_tbl`. Você deseja consultar esses dados no servidor de banco de dados, então pode configurar JMeter enviar um SQL Consulte este servidor para recuperar os dados.

Painel de solicitação JDBC com o Tipo de consulta definido como Instrução SELECT e a consulta select test_result from test_tbl where id = 1

O tipo de consulta aqui é instrução SELECT e a consulta é a seguinte: select test_result from test_tbl where id = 1Um elemento de Configuração de Conexão JDBC deve fornecer o pool para o qual o campo Nome da Variável aponta.

Amostrador BSF

Este amostrador permite que você escreva um amostrador usando um BSF linguagem de script.

Aqui está um exemplo de um amostrador BSF em JMeter, com campos para a linguagem do script, os parâmetros passados ​​para o script e um script embutido ou um arquivo de script externo.

Painel de amostra BSF com campos para idioma do script, parâmetros, um arquivo de script externo e o corpo do script embutido.

Nota sobre a descontinuação: A família de elementos BSF foi descontinuada em favor dos elementos JSR223 e não aparece mais no JMeter referência do componenteNas versões atuais, use o Amostrador JSR223 com as Groovy, que compila o script e tem um desempenho muito melhor sob carga. O painel acima é mantido aqui porque planos de teste mais antigos ainda o contêm.

Amostrador de log de acesso

Este sampler permite ler os registros de acesso e gerar requisições HTTP. As entradas de registro podem ser imagens, HTML, CSS e assim por diante.

Painel do Access Log Sampler mostrando os campos padrão de servidor e porta, a classe do plugin TCLogParser e a localização do arquivo de log.

O campo Parser tem como valor padrão org.apache.jmeter.protocol.http.util.accesslog.TCLogParsere o campo Localização do Arquivo de Log aponta JMeter no registro que você deseja reproduzir.

Amostrador SMTP

Se você deseja testar um servidor de e-mail, pode usar o SMTP Sampler. Este sampler é usado para enviar mensagens de e-mail usando o protocolo SMTP.

Painel de amostra SMTP com configurações de servidor, endereços de e-mail, opções de autenticação e segurança e configurações de mensagens.

O painel agrupa configurações do servidor, endereços de e-mail, autenticação e configurações de mensagens, e exibe as portas padrão ao lado do campo Porta: SMTP 25, SSL 465 e StartTLS 587.

Ouvintes

Os listeners exibem os resultados da execução do teste. Eles podem apresentar os resultados em diferentes formatos, como árvore, tabela, gráfico ou arquivo de log.

Diagrama mostrando um Listener desdobrando os resultados em visualizações de gráfico, árvore, tabela e relatório.

O Resultados do gráfico O listener exibe os tempos de resposta do servidor em um gráfico, com a contagem de amostras, média, desvio padrão, taxa de transferência e mediana impressos abaixo.

O ouvinte de resultados gráficos exibe os tempos de resposta com dados, média, mediana, desvio padrão e séries de taxa de transferência.

Árvore de Resultados Exibe o resultado de cada solicitação do usuário em formato HTML básico, com uma aba de resultados do Sampler que informa o tempo de carregamento, a latência, o tamanho e o código de resposta.

Visualizar o listener em árvore com uma lista de solicitações à esquerda e a aba de resultados do Sampler mostrando o código de resposta 200.

Ver resultados em tabela Exibe um resumo do resultado do teste em formato de tabela, uma linha por amostra.

Visualizar resultados em um listener de tabela com colunas para número da amostra, hora de início, nome da thread, rótulo e tempo da amostra.

Um arquivo de log registra o mesmo resumo que o texto, que é o que você mantém quando um teste é executado sem a interface gráfica.

Resumo agregado dos registros listando os rótulos dos amostradores com contagens de amostras, médias e uma linha TOTAL.

Melhor prática: Os listeners da GUI consomem memória e distorcem os resultados, portanto, execute testes de carga reais no modo não gráfico e abra o arquivo de resultados salvo posteriormente.

Elementos de configuração

Os elementos de configuração definem valores padrão e variáveis ​​para uso posterior pelos samplers.

A figura abaixo mostra alguns elementos de configuração comumente usados ​​em JMeter.

Diagrama de árvore de JMeter Elementos de configuração: Configuração do conjunto de dados CSV, Gerenciador de cookies HTTP, Elemento de configuração de login, Valores padrão de requisição HTTP e Valores padrão de requisição FTP.

Configuração do conjunto de dados CSV

Suponha que você queira testar um site com 100 usuários fazendo login com credenciais diferentes. Você não precisa gravar o script 100 vezes. Você pode parametrizar o script para inserir diferentes credenciais de login. Essas informações de login (por exemplo, nome de usuário e senha) podem ser armazenadas em um arquivo de texto. JMeter Possui um elemento que permite ler diferentes parâmetros desse arquivo de texto. Trata-se do “Configuração do Conjunto de Dados CSV”, usado para ler linhas de um arquivo e dividi-las em variáveis.

JMeter Árvore de plano de teste com a configuração de conjunto de dados CSV selecionada em um controlador de login, juntamente com as configurações padrão de solicitação HTTP.

Este é um exemplo de dados CSV. Trata-se de um arquivo de texto que contém os nomes de usuário e senhas utilizados para acessar o site desejado.

O arquivo de texto csv_data.txt contém quatro linhas separadas por vírgulas com os valores de nome de usuário, senha e comprimento do cookie.

Gerenciador de cookies HTTP

Vamos entender isso com um exemplo.

Você usou seu navegador (Firefox, Chrome e assim por diante) para navegar www.google.com.

Você faz login com seu nome de usuário e senha.

Seu nome de usuário e senha serão armazenados em seu computador como cookies.

Da próxima vez, quando você visitar www.google.comVocê não precisa fazer login novamente, pois seu navegador usará seus cookies como dados de usuário para efetuar o login.

O Gerenciador de Cookies HTTP possui a mesma funcionalidade de um navegador web. Se você fizer uma requisição HTTP e a resposta contiver um cookie, o Gerenciador de Cookies armazenará automaticamente esse cookie e o utilizará em todas as requisições futuras para aquele site específico.

Padrões de solicitação HTTP

Este elemento permite definir valores padrão que seus controladores de solicitação HTTP usam.

Por exemplo, nos

Você está enviando 100 solicitações HTTP para o servidor google.com.

Você teria que inserir o nome do servidor google.com manualmente para todas as 100 solicitações.

Em vez disso, você pode adicionar um único elemento HTTP Request Defaults com o campo “Nome do servidor ou IP” definido como google.com, conforme mostrado abaixo.

Painel de configurações padrão de requisição HTTP com google.com como nome do servidor, porta 80 e tempos limite de conexão e resposta.

Não precisa digitar 100 vezes. Este elemento será explicado em detalhes no tutorial. JMeter Teste de Desempenho.

Elemento de configuração de login

O elemento de configuração de login permite adicionar ou substituir as configurações de nome de usuário e senha nos samplers.

Por exemplo, você quer simular um usuário fazendo login no site. www.facebook.com Com um nome de usuário e senha. Você pode usar o elemento de configuração de login para adicionar essa configuração de nome de usuário e senha em uma solicitação de usuário.

Painel de configuração de login com o nome de usuário "guru99" e um campo para senha mascarada.

O elemento de configuração de login versus a configuração do conjunto de dados CSV.

Elemento de configuração de login Configuração do conjunto de dados CSV
Usado para simular o login de um usuário Utilizado para simular múltiplos logins de usuário.
Adequado apenas para parâmetros de login (nome de usuário e senha). Adequado para um grande número de parâmetros

Juntos, esses dois elementos abrangem praticamente todos os cenários de credenciamento que você pode encontrar em ferramentas de teste de desempenho <span class="word" data-word="work." style="--word-index: 2; translate: none; rotate: none; scale: none; transform: translate(0px, 0px); opacity: 1;">work.</span>

Perguntas Frequentes

Diz JMeter Quanto tempo deve levar para que todas as threads estejam em execução? Dez threads com um tempo de inicialização de 100 segundos começam com dez segundos de intervalo entre elas. Um tempo de inicialização muito curto sobrecarrega o servidor e causa falhas que nenhum usuário real jamais provocaria.

Os temporizadores inserem uma pausa entre as solicitações para que a carga simulada se assemelhe à navegação real, em vez de uma sobrecarga. As asserções verificam cada resposta, marcando uma amostra como falha quando o código de status, o texto ou a duração não correspondem ao que você especificou.

Eles agrupam e ramificam as requisições abaixo deles. Um Controlador de Loop repete seus filhos, um Controlador If os executa condicionalmente e um Controlador de Transação reporta todo o grupo como uma única etapa cronometrada nos resultados.

Não. Listeners como o View Results Tree armazenam em buffer cada amostra e distorcem os números que reportam. Execute o teste no modo não gráfico (não GUI), grave os resultados em um arquivo e, em seguida, carregue esse arquivo em um listener assim que a execução terminar.

Os elementos de configuração e os pré-processadores são aplicados primeiro, depois o sampler é executado, seguido pelos pós-processadores, asserções e listeners. O escopo também é importante: um elemento colocado no nível do plano se aplica a todas as requisições abaixo dele.

É útil para identificar padrões. Fornecer um arquivo de resultados a um assistente revela os rótulos mais lentos, os agrupamentos de erros e as tendências de tempo de resposta muito mais rapidamente do que a leitura de linhas. Sempre confirme a descoberta com as amostras brutas antes de agir.

Sim. Ele faz rascunhos. Groovy por extractingir valores, construir payloads e definir variáveis ​​dentro de um elemento JSR223. Verifique todas as sugestões, pois muitas vezes recorre à API BeanShell obsoleta ou a variáveis ​​que JMeter Não expõe.

Um grupo de threads e um sampler. Todo o resto é opcional. Na prática, um listener é adicionado para que os resultados sejam visíveis, e valores padrão ou um arquivo de dados são adicionados quando os mesmos valores começam a se repetir entre as requisições.

Resuma esta postagem com: