Ferramentas de teste de carga open source: seis opções
7 min de leitura
Seis ferramentas de teste de carga open source muito usadas hoje são Apache JMeter, k6, Gatling, Locust, Artillery e Vegeta. Escolha pela linguagem em que o seu time escreve testes e pela forma como você precisa escalar: JMeter para a maior cobertura de protocolos, k6 ou Artillery para JavaScript, Gatling para a JVM, Locust para Python e Vegeta para verificações HTTP rápidas com taxa fixa.
Para este artigo, não fizemos benchmark dessas ferramentas umas contra as outras. Os dados vêm do repositório e da documentação de cada projeto, conferidos em 8 de outubro de 2026, e as notas de “Bom para” são a nossa avaliação.
| Ferramenta | Licença | Testes escritos em | Roda em | Distribuir a carga entre máquinas |
|---|---|---|---|---|
| Apache JMeter | Apache 2.0 | Planos de teste montados numa interface gráfica | Java | Modo remoto (cliente-servidor) embutido |
| k6 | AGPL-3.0 | JavaScript | Um binário Go | k6-operator no Kubernetes |
| Gatling | Apache 2.0 (alguns componentes sob licença enterprise) | Java, Kotlin, Scala, JavaScript, TypeScript | JVM | Edição Enterprise comercial |
| Locust | MIT | Python | Python | Embutido |
| Artillery | MPL-2.0 (alguns módulos de Azure sob BSL) | YAML, JavaScript, TypeScript | Node.js | AWS Lambda, Fargate ou Azure ACI pela CLI |
| Vegeta | MIT | Linha de comando ou código Go | Um binário Go | Rodar várias instâncias |
O Apache JMeter ainda vale a pena?
Vale, principalmente quando você precisa de protocolos além de HTTP. O JMeter cobre o leque mais amplo das seis e tem o maior volume de planos de teste e conhecimento acumulado.
O JMeter é uma aplicação Java sob a licença Apache 2.0. A lista de protocolos inclui HTTP e HTTPS, web services SOAP e REST, FTP, bancos de dados via JDBC, LDAP, mensageria JMS, e-mail e TCP puro. Você monta os planos de teste numa interface gráfica de desktop, roda os testes de verdade sem interface pela linha de comando, e o modo remoto cliente-servidor distribui um teste entre várias máquinas.
Bom para sistemas com vários protocolos, times que já têm planos de JMeter e testers que preferem montar testes de forma visual. Escolha outra coisa quando o seu time quer testes como código puro, revisados como a aplicação, porque planos XML montados numa interface gráfica são difíceis de ler num pull request.
Quando o k6 é a escolha certa?
Quando o seu time escreve JavaScript e quer testes em código com limites de aprovação embutidos. Ele vem como um único binário Go, o que deixa a configuração na CI simples.
O k6 está sob a licença AGPL-3.0 e fala HTTP, WebSockets e gRPC, com um módulo de navegador para verificações de front-end. Os thresholds transformam uma meta, como um limite para o percentil 95, num código de saída diferente de zero para a CI. Para escalar, o k6-operator roda testes distribuídos no Kubernetes, e a Grafana vende um serviço hospedado.
Bom para desenvolvedores que mantêm testes de API junto do código e para pipelines de CI. Escolha outra coisa quando o seu time não quer JavaScript, ou quando a licença AGPL não combina com o jeito como você embute ou distribui a ferramenta. Comparamos as duas em detalhe em k6 vs Artillery.
Para quem é o Gatling?
Para times na JVM que querem testes como código e um relatório HTML detalhado sem nada a mais. Ele também oferece um SDK de JavaScript e TypeScript sobre o mesmo motor.
O Gatling roda os usuários virtuais num motor não bloqueante construído sobre o Netty, então uma única máquina consegue gerar muita carga. As simulações são escritas em Java, Kotlin, Scala, JavaScript ou TypeScript e rodam por plugins de Maven, Gradle, sbt ou npm. A edição community está sob Apache 2.0 e cobre HTTP/1.1, HTTP/2, WebSocket, Server-Sent Events e JMS, enquanto os componentes de gRPC, MQTT e GraphQL usam a licença enterprise do Gatling.
Bom para times de Java e Scala e para quem quer relatórios completos sem ferramentas extras. Escolha outra coisa quando você precisa distribuir a carga entre máquinas só com a edição open source: gerar carga a partir de infraestrutura gerenciada ou privada é o papel do Gatling Enterprise, a edição comercial.
O Locust é uma boa escolha para times de Python?
É. Os testes do Locust são Python puro, então laços, condições e qualquer biblioteca Python funcionam como em código comum.
O Locust está sob a licença MIT e funciona por eventos com gevent, o que permite que um único processo atenda muitos usuários. Os testes rodam pela linha de comando ou por uma interface web que mostra ao vivo a vazão, os tempos de resposta e os erros, e o Locust distribui um teste entre várias máquinas por conta própria. HTTP vem embutido, e outros protocolos entram escrevendo Python.
Bom para times de Python, cenários com lógica complexa e quem gosta de acompanhar um teste no navegador. Escolha outra coisa quando você quer testes declarativos no estilo de arquivo de configuração, ou quando um plugin pronto para um protocolo incomum importa mais do que escrever o seu.
Quando o Artillery faz sentido?
Quando o seu time vive no Node.js, gosta de cenários curtos em YAML ou quer testes de navegador com Playwright na mesma ferramenta dos testes de API.
O Artillery está quase todo sob MPL-2.0, com alguns módulos de Azure sob uma licença source-available. Ele traz de fábrica HTTP, WebSocket e Socket.IO, ganha gRPC e Kinesis com engines adicionais, e os comandos run-lambda e run-fargate distribuem um teste entre workers na sua própria conta da AWS. O comando run-aci faz o mesmo no Azure Container Instances, com uma assinatura paga do Artillery para qualquer uso além de avaliação (conferido em 9 de outubro de 2026).
Bom para times de Node.js, testes mistos de API e navegador, e empresas que já usam AWS. Escolha outra coisa quando você prefere não ter Node.js nos seus geradores de carga, ou quando testes grandes precisam rodar fora da AWS e do Azure.
Para que serve o Vegeta?
Para verificações HTTP rápidas, com taxa constante, pela linha de comando. Ele faz uma coisa só, enviar requisições a uma taxa fixa, e mantém essa coisa simples.
O Vegeta é uma ferramenta Go sob a licença MIT que funciona como programa de linha de comando ou como biblioteca Go, com uma CLI pensada para se combinar com outras ferramentas Unix. Como ele mantém a taxa de requisições constante em vez de modelar usuários, responde melhor a perguntas como “o que acontece com 500 requisições por segundo?” do que reproduz jornadas de usuário.
Bom para conferir rapidamente um endpoint, testes de capacidade com taxa fixa e scripts de shell. Escolha outra coisa quando você precisa de jornadas com vários passos, tempo de pensamento ou relatórios detalhados.
Onde entra um serviço hospedado como a LoadFocus?
Nenhuma dessas ferramentas precisa de um serviço hospedado, mas gerar carga grande ou espalhada geograficamente a partir das suas próprias máquinas dá trabalho. Um serviço hospedado assume a geração de carga e deixa os seus scripts como estão.
A LoadFocus, que publica este site, é um desses serviços. Ela roda planos de teste JMeter existentes e scripts k6 a partir de 25 regiões na nuvem. Ela não roda testes de Gatling, Locust, Artillery ou Vegeta, então para essas ferramentas valem as opções de escala descritas acima. Grafana Cloud k6 e Gatling Enterprise são os caminhos hospedados dos próprios fabricantes para k6 e Gatling.
Como escolher entre elas?
Parta da linguagem que o seu time já escreve e dos protocolos que você precisa testar, e depois veja como cada ferramenta escala. Isso costuma reduzir seis opções a uma ou duas.
Depois escreva o mesmo teste curto nas suas duas favoritas. Ler os dois lado a lado resolve a maioria das discussões mais rápido do que qualquer tabela de recursos, e o nosso guia Como fazer um teste de carga acompanha esse primeiro teste passo a passo.
FAQ
Qual ferramenta de teste de carga open source é a mais fácil para começar? Para um único endpoint HTTP, Vegeta ou k6 dão um resultado em minutos, porque cada um é um único binário. Para jornadas com vários passos, escolha a ferramenta cuja linguagem de teste o seu time já escreve.
Ferramentas de teste de carga open source conseguem rodar testes distribuídos? Conseguem, por caminhos diferentes: o JMeter tem um modo remoto embutido, o Locust distribui entre máquinas nativamente, o k6 usa o k6-operator no Kubernetes e o Artillery usa AWS Lambda, Fargate ou Azure Container Instances. No Gatling, gerar carga a partir de infraestrutura gerenciada ou privada faz parte da edição comercial Enterprise.
O JMeter é melhor que o k6? Nenhum é melhor no geral. O JMeter cobre mais protocolos e combina com o desenho de testes em interface gráfica, enquanto o k6 combina com desenvolvedores que querem testes como código JavaScript na CI.
Leituras relacionadas
- Ferramentas de benchmark HTTP: wrk, hey, oha, ab e mais
- Teste de carga com Locust: análise da ferramenta Python
- Teste de carga com Gatling: análise da ferramenta JVM
- Ferramentas de teste de carga WebSocket: seis opções
- k6 vs Artillery: qual ferramenta de teste de carga escolher
- Como fazer um teste de carga: guia passo a passo
- Azure Load Testing: análise do serviço da Microsoft
- Teste de carga com Artillery: análise da ferramenta Node.js
- Teste de carga com NBomber: análise do framework .NET
- Teste de carga com Tsung: análise da ferramenta Erlang
- pgbench: benchmark e teste de carga do PostgreSQL
- Como usar o sysbench: benchmarks de CPU, disco e MySQL
As afirmações técnicas deste artigo não foram revisadas de forma independente.