O JMeter pode gerar amostras de requisições HTTP atuando como um proxy de gravação local entre um navegador e um aplicativo de destino autorizado. As versões atuais chamam esse componente de Gravador de Script de Teste HTTP(S) . Ele captura uma jornada do navegador até um Controlador de Gravação, após a qual o script deve ser limpo, correlacionado, validado e executado como um teste em nível de protocolo.

Teste apenas os sistemas que você possui ou para os quais está explicitamente autorizado a avaliar. As gravações podem conter senhas, cookies, tokens e dados pessoais. Dê preferência a contas de teste, remova informações confidenciais antes de compartilhar arquivos JMX e respeite os limites de carga aprovados.

O que é o servidor proxy HTTP do JMeter?

O gravador escuta em uma porta local, geralmente 8888Um navegador envia solicitações HTTP e HTTPS para esse proxy, e o JMeter converte o tráfego correspondente em amostras sob um controlador selecionado. Durante a reprodução, o JMeter envia solicitações diretamente; ele não inicia um navegador para cada usuário virtual.

Por que gravar em vez de escrever o roteiro manualmente?

  • Captura a ordem realista das requisições, redirecionamentos, formulários e APIs em segundo plano.
  • Revela chamadas XHR ou fetch que são fáceis de passar despercebidas.
  • Cria uma base rápida para uma jornada de usuário complexa.
  • Reduz erros de transcrição em cabeçalhos e parâmetros.

A construção manual continua sendo mais limpa para uma API pequena e documentada. O registro de alterações ajuda quando o comportamento da rede do navegador ainda não é compreendido. Para terminologia, consulte nosso guia de tipos de proxy.

Como gravar um script no JMeter 5.x

  1. Inicie o JMeter no modo GUI para criação de scripts.
  2. Adicione um grupo de threads ao plano de teste.
  3. Adicione um Controlador de Gravação no Grupo de Threads.
  4. Adicione valores padrão para solicitações HTTP e um gerenciador de cookies HTTP, quando apropriado.
  5. Adicione o Gravador de Script de Teste HTTP(S) e selecione o Controlador de Gravação como seu destino.
  6. Utilize padrões de inclusão/exclusão para limitar o tráfego não relacionado.

O guia oficial de gravação do Apache JMeter é a referência definitiva específica para cada versão.

Use um perfil de navegador limpo: Extensões, sincronização, telemetria e abas não relacionadas geram solicitações ruidosas.

Etapa 1) Configurando o servidor proxy HTTP

Gravador: escolha uma porta local não utilizada, como 8888, defina o controlador de destino e clique Começar.

Configure o navegador de teste com o host proxy HTTP e HTTPS. 127.0.0.1 e a mesma porta. Se o navegador estiver sendo executado em outra máquina virtual ou contêiner, localhost se refere a esse ambiente; use um endereço privado acessível e aprovado.

Proxy host: 127.0.0.1
Proxy port: 8888

Include: https?://test.example.com/.*
Exclude: .*(.png|.jpg|.gif|.css|.woff2)(?.*)?$

Não filtre de forma muito agressiva na primeira passagem, pois a API de um aplicativo pode usar um subdomínio diferente. Registre uma vez, inspecione os hosts e, em seguida, refine os padrões.

Etapa 2) Registre sua atividade

  1. Inicie o gravador e confie em seu certificado temporário apenas no navegador de teste isolado.
  2. Abra o ambiente de teste autorizado.
  3. Realize uma viagem limpa em velocidade humana.
  4. Pare a gravação imediatamente após a última ação comercial.
  5. Restaure as configurações normais de proxy do navegador.

Renomeie os samplers por ação comercial e agrupe as solicitações relacionadas em Controladores de Transação. Remova análises, anúncios, atualizações de navegador, widgets de bate-papo e recursos estáticos duplicados, a menos que estejam explicitamente no escopo.

Inspecione cada amostrador em busca de segredos. As senhas devem vir de dados de tempo de execução protegidos, enquanto a alteração de tokens requer correlação.

Etapa 3) Execute seu plano de teste

Valide um usuário e uma iteração antes de adicionar carga. Use temporariamente a visualização da árvore de resultados, verifique os redirecionamentos e os corpos das respostas e adicione asserções para o resultado comercial esperado. O código HTTP 200 por si só não comprova que o login ou a finalização da compra foram bem-sucedidos.

Threads: 1
Ramp-up: 1 second
Loop Count: 1

Após a depuração, remova os listeners pesados ​​e execute o aplicativo sem interface gráfica:

jmeter -n -t recorded-test.jmx -l results.jtl -e -o html-report

O diretório de relatórios deve ser novo ou estar vazio. Aumente a carga gradualmente e monitore o sistema de destino, bem como o JMeter.

Etapa 4) Salve o resultado do seu teste

Salve o plano reutilizável como um .jmx Arquive e mantenha os dados gerados separados:

  • JMX: Amostradores, controladores, asserções, temporizadores, variáveis ​​e configuração.
  • JTL: Resultados brutos das amostras para análise.
  • Painel de controle HTML: percentis, taxa de transferência, erros e threads ativos.
  • Métricas do servidor: Telemetria de CPU, memória, banco de dados, fila e serviço.

Crie versões do plano com propriedades não confidenciais e dados de teste. Registre as versões do JMeter e do Java, a compilação de destino, o ambiente, o número de usuários, o período de aumento gradual de uso e a duração.

Não execute tarefas que exijam grande carga de trabalho a partir da interface gráfica. Os listeners da GUI consomem memória e podem distorcer os resultados.

Registro de tráfego HTTPS e certificados

Para HTTPS, o JMeter gera uma autoridade de certificação temporária quando o gravador é iniciado. Importe-a apenas para o navegador de teste dedicado, grave o site autorizado e, em seguida, remova-a.

  1. Inicie o gravador de script de teste HTTP(S).
  2. Localize o certificado ApacheJMeterTemporaryRootCA gerado.
  3. Importe-o como uma autoridade confiável no perfil isolado.
  4. Registre o percurso HTTPS aprovado.
  5. Remova o certificado quando terminar.

O uso de certificados de segurança, TLS mútuo, navegadores gerenciados, aplicativos móveis e protocolos de transporte mais recentes podem bloquear a interceptação. Não enfraqueça os controles de segurança de produção. Use uma versão de teste, uma especificação de API ou um método de captura alternativo aprovado.

Correlação: Tornando um roteiro gravado reproduzível

Os IDs de sessão, tokens CSRF, estado OAuth, assinaturas de requisição e IDs de recursos mudam entre execuções. A correlação extrai um novo valor de uma resposta e o substitui em requisições posteriores.

  1. Localize a resposta que contém o valor dinâmico em primeiro lugar.
  2. Adicione um extrator de JSON, CSS, XPath ou Expressão Regular.
  3. Armazene o resultado em uma variável nomeada do JMeter.
  4. Substitua os valores fixos inseridos posteriormente pela referência da variável.
  5. Falha evidente quando a extração não retorna nenhuma correspondência.
JSON Extractor
Variable: csrfToken
JSON Path: $.csrf.token
Default: NOT_FOUND

Later header:
X-CSRF-Token: ${csrfToken}

A parametrização fornece dados independentes do usuário, geralmente provenientes de arquivos CSV. A correlação captura dados gerados pelo servidor durante a execução. Planos realistas geralmente precisam de ambos.

guia de solução de problemas

ProblemaCausa provávelFixar
Nenhuma solicitação registradaProxy incorreto, gravador interrompido, conflito de portas ou regra de bypassConfirme o host e a porta, inicie a gravação e remova as exclusões de destino.
Aviso HTTPSCertificado de Autorização Temporária ausente ou expiradoGere um novo certificado de gravação e importe-o apenas para o perfil de teste.
Muito trânsitoExtensões, telemetria, outras abas ou padrões gerais.Use um perfil limpo e refine os filtros de inclusão/exclusão.
A reprodução do login falhaCookies, tokens, fluxo OAuth ou correlação ausentes.Adicione o Gerenciador de Cookies, extraia valores dinâmicos e inspecione redirecionamentos.
O navegador ficará offline em seguida.Ainda aponta para o proxy local interrompido.Restaurar configurações automáticas ou sem proxy.
Erro de memória do JMeterOuvintes de GUI ou armazenamento de respostas grandesUtilize o modo sem interface gráfica e limite os dados de resposta salvos.
Diferente do navegadorO JMeter não renderiza nem executa o JavaScript da página.Teste as APIs subjacentes e utilize as ferramentas do navegador para renderizar as métricas.

O JMeter é uma ferramenta de avaliação de desempenho de protocolos. Ele não consegue medir eventos visuais como o Largest Contentful Paint (LCP) por si só.

Perguntas Frequentes

O que substituiu o nome do servidor proxy HTTP no JMeter?

O componente agora se chama Gravador de Script de Teste HTTP(S).

Qual porta de gravação devo usar?

Qualquer porta local não utilizada funciona. A porta 8888 é comum e o navegador deve usar o mesmo valor.

O JMeter consegue gravar tráfego HTTPS?

Sim, quando o navegador de teste isolado confia no certificado de gravação temporário do JMeter.

Por que um script gravado falha na reprodução?

Tokens dinâmicos, cookies, fluxos de autenticação, diferenças de host e dados ausentes geralmente exigem correlação e parametrização.

O JMeter consegue gravar o Chrome?

Sim. Configure um perfil limpo do Chrome para usar o gravador local do JMeter.

Devo executar testes de carga a partir da interface gráfica do JMeter?

Não. Compile e depure no modo GUI e, em seguida, execute o carregamento no modo não-GUI.

O JMeter se comporta como um navegador real?

Não. Ele envia solicitações de protocolo, mas não renderiza HTML nem executa JavaScript do navegador.

É seguro gravar um login de produção?

Dê preferência a contas de teste e de homologação. A captura em produção requer autorização explícita e tratamento rigoroso de segredos.