Skip to content
Latchkey

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.

Newmank6
Propósito principalTestes funcionais de API (coleções)Testes de carga e performance
Definição do testeColeções do Postman + asserções em JSScripts de teste em JavaScript
Modelo de concorrênciaRequisições sequenciaisUsuários virtuais (alta concorrência)
MétricasAsserções de aprovado/reprovadoLatência, RPS, limiares
Melhor paraVerificações de contrato/smoke de APIRegressão de performance, testes de estresse
Reuso da GUISim (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.

Guias relacionados