Newman vs k6: Teste de API vs Teste de Carga no CI
Eles testam coisas diferentes: o Newman executa coleções do Postman para verificações funcionais e de contrato de API, enquanto o k6 é uma ferramenta programável de carga e performance. Muitas equipes usam o Newman para correção e o k6 para performance.
Newman e k6 são ambos executados no CI contra APIs, mas com objetivos diferentes. O Newman é o runner de linha de comando do Postman: ele executa coleções do Postman (requisições mais asserções) para que você rode no CI os mesmos testes funcionais de API que criou no Postman. O k6 é uma ferramenta de teste de carga voltada para desenvolvedores, onde você escreve cenários em JavaScript para medir latência e throughput sob concorrência, e faz asserções sobre limiares de performance.
| Newman | k6 | |
|---|---|---|
| Propósito principal | Testes funcionais de API (coleções) | Testes de carga e performance |
| Definição do teste | Coleções do Postman + asserções em JS | Scripts de teste em JavaScript |
| Modelo de concorrência | Requisições sequenciais | Usuários virtuais (alta concorrência) |
| Métricas | Asserções de aprovado/reprovado | Latência, RPS, limiares |
| Melhor para | Verificações de contrato/smoke de API | Regressão de performance, testes de estresse |
| Reuso da GUI | Sim (Postman) | Não (code-first) |
Eles cobrem necessidades diferentes
Use o Newman quando você já mantém coleções do Postman e quer condicionar merges ao comportamento funcional da API: códigos de status, formato da resposta e asserções de negócio. Use o k6 quando precisar saber como a API se comporta sob carga, com limiares como "latência de percentil 95 abaixo de 500ms" que reprovam o build em caso de regressão. Eles respondem a perguntas diferentes e costumam rodar em jobs separados de CI.
No CI
O Newman é um estágio natural de teste de smoke/contrato: é rápido de executar, sai com código diferente de zero em caso de falha de asserção e produz relatórios JUnit/HTML para o runner. Os jobs de performance do k6 são mais pesados, então as equipes costumam rodá-los de forma agendada ou sob demanda, em vez de em cada PR, comparando os resultados com limiares para detectar regressões. Mantenha testes de carga pesados fora do caminho crítico do PR para controlar o custo e o tempo do runner.
Ressalvas honestas
O Newman não é uma ferramenta de carga: ele executa requisições sequencialmente e não se destina a medir performance sob concorrência. O k6 é code-first, então você não tem o fluxo de trabalho da GUI do Postman, e executar carga realista pode exigir mais recursos do que um runner padrão oferece. Use cada um para o trabalho ao qual se destina, em vez de forçar um a cobrir os dois.
O veredito
Use o Newman para testes funcionais e de contrato de API, especialmente se você já usa o Postman. Use o k6 para testes de carga e performance com limiares. Eles se complementam em vez de competir.