Em resumo
Newman, o executor CLI oficial do Postman, requer npm e Node.js em pipelines de CI, aumentando riscos na cadeia de suprimentos e sobrecarga de dependências. Além disso, o Postman impõe limites de execução via API no plano gratuito. Este guia mostra como executar testes de API em CI sem Newman, usando três alternativas: o executor CLI do Apidog, k6 e Hurl. Se você já possui coleções Postman, o Apidog é o caminho mais direto, pois importa coleções nativamente e não impõe limites de execução.
💡 Apidog é uma plataforma gratuita e completa para desenvolvimento de APIs. Seu executor CLI roda coleções compatíveis com Postman em CI, sem necessidade de npm e sem limites de execução. Teste o Apidog gratuitamente, sem exigir cartão de crédito.
Introdução
Newman tornou fácil rodar coleções Postman em pipelines de CI, com integração via GitHub Actions e ampla adoção. Porém, surgiram três problemas críticos:
Dependência do npm: Todo pipeline com Newman puxa pacotes do npm na build. Incidentes como o do
ua-parser-jsenode-ipcem 2021/22 ilustraram riscos reais de segurança. Times de segurança questionam a dependência do npm só para testes de API.Limites de execução: O Postman passou a limitar execuções de coleções via API em planos gratuitos e pagos básicos, forçando equipes a atualizar planos ou redesenhar pipelines.
Manutenção lenta: O ritmo de atualização do Newman caiu, com issues abertos por meses e suporte inconsistente a scripts mais recentes do Postman.
Resultado: desenvolvedores buscam alternativas para testes de API em CI. Veja as principais opções.
Opção 1: Apidog CLI (recomendado para usuários de coleções Postman)
O executor CLI do Apidog é o substituto mais direto ao Newman para quem já utiliza coleções Postman.
Suporta:
- Formato Postman Collection v2 e v2.1
- Ambientes Postman (exportação JSON)
-
pm.test,pm.expect,pm.environment.set,pm.collectionVariables.set - Scripts de pré e pós-requisição
- Testes orientados a dados com CSV e JSON
- Saída JUnit XML e JSON para relatórios em CI
Não exige npm. O Apidog CLI é distribuído como binário standalone. Basta baixar, adicionar ao PATH e rodar.
Sem limites por execução. Não há limites de execução em nenhum plano. Rodando 5 ou 500 execuções, o comportamento é o mesmo.
Instalação
Baixe o binário CLI para sua plataforma em apidog.com/cli ou use o instalador shell:
# macOS / Linux
curl -sSf https://apidog.com/cli/install.sh | sh
# Verifique a instalação
apidog --version
Para ambientes CI baseados em Docker, use a imagem oficial:
FROM apidog/cli:latest
Executando uma coleção Postman
- Exporte a coleção no Postman: Arquivo > Exportar > Coleção (v2.1).
- Exporte o ambiente: Gerenciar Ambientes > Exportar.
Execute:
apidog run collection.json \
--environment environment.json \
--reporter-junit results.xml
Exemplo de GitHub Actions
name: API Tests
on: [push, pull_request]
jobs:
api-tests:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install Apidog CLI
run: curl -sSf https://apidog.com/cli/install.sh | sh
- name: Run API tests
run: |
apidog run ./tests/collection.json \
--environment ./tests/env.json \
--reporter-junit test-results.xml
- name: Upload test results
uses: actions/upload-artifact@v4
if: always()
with:
name: api-test-results
path: test-results.xml
Sem npm install, sem package.json, sem matriz de Node.js. O job roda mais rápido e reduz a superfície de dependências.
Exemplo de GitLab CI
api-tests:
image: apidog/cli:latest
script:
- apidog run ./tests/collection.json
--environment ./tests/env.json
--reporter-junit test-results.xml
artifacts:
reports:
junit: test-results.xml
Opção 2: k6
k6 é uma ferramenta de teste de carga da Grafana Labs que também executa testes funcionais de API. É ideal para quem precisa validar performance e funcionalidade em conjunto.
Suporta:
- HTTP/1.1, HTTP/2, WebSocket, gRPC
- Scripts de teste em JavaScript (ES6+)
- Limiares para asserções de performance
- Saída para InfluxDB, Prometheus, Datadog
Limitações:
- Não importa coleções Postman nativamente. Use o conversor
postman-to-k6, mas scripts complexos podem exigir ajustes manuais. - API
pm.*é parcialmente emulada pela conversão, com limitações.
Quando usar:
Se você precisa de testes de carga e funcionais integrados – por exemplo, validar APIs sob estresse – o investimento na migração para k6 vale a pena. Para substituir Newman apenas em testes funcionais, o Apidog é mais simples.
Uso básico no CI:
# Instalar (Linux)
sudo apt-get install k6
# Rodar um script de teste
k6 run api-tests.js
A aprovação/reprovação no CI depende dos thresholds definidos no script. Para saída JUnit XML, utilize o pacote k6-reporter.
Opção 3: Hurl
Hurl é uma ferramenta de testes HTTP open source em Rust. Rápida, sem dependências de runtime, usa uma DSL simples para definir requisições e asserções.
Suporta:
- HTTP/1.1 e HTTP/2
- Asserções JSON, XPath e regex
- Variáveis e encadeamento de requests
- Saída HTML, JUnit, JSON
Limitações:
- Não importa coleções Postman. Usa arquivos
.hurlpróprios, sem conversor automático. - Não suporta scripts JavaScript; apenas asserções declarativas.
Quando usar:
Ótima opção se você está começando do zero ou disposto a reescrever testes em DSL. O binário é pequeno (~10 MB) e sem runtime externo — ideal para ambientes enxutos.
Exemplo básico de teste Hurl:
GET https://api.example.com/users/1
HTTP 200
[Asserts]
jsonpath "$.id" == 1
jsonpath "$.email" isString
Hurl no GitHub Actions:
- name: Install Hurl
run: |
curl -LO https://github.com/Orange-OpenSource/hurl/releases/latest/download/hurl-x86_64-unknown-linux-gnu.tar.gz
tar -xf hurl-*.tar.gz
sudo mv hurl /usr/local/bin/
- name: Run API tests
run: hurl --test tests/*.hurl
Comparando as três opções
| Característica | Apidog CLI | k6 | Hurl |
|---|---|---|---|
| Importação Postman | Nativo | Conversor (com perda) | Não |
| Dependência npm | Não | Não | Não |
| Scripting JavaScript | Sim (API pm.*) | Sim (ES6) | Não (apenas DSL) |
| Teste de desempenho | Não | Sim | Não |
| Tamanho do binário | ~50 MB | ~30 MB | ~10 MB |
| Limites de execução gratuitos | Nenhum | Nenhum | Nenhum |
| Saída JUnit | Sim | Via plugin | Sim |
Migrando do Newman: passos práticos
Se seu pipeline atual usa Newman, siga este processo para migrar ao Apidog CLI:
1. Exporte suas coleções e ambientes:
No Postman, clique com o botão direito na coleção e exporte como v2.1. Exporte os ambientes separadamente.
2. Instale o Apidog CLI:
Inclua a etapa de instalação no seu CI.
3. Substitua o comando Newman:
Exemplo Newman:
newman run collection.json -e environment.json --reporters junit --reporter-junit-export results.xml
Equivalente Apidog:
apidog run collection.json --environment environment.json --reporter-junit results.xml
As flags são semelhantes.
4. Verifique scripts personalizados:
Rode a coleção localmente com o Apidog CLI antes de atualizar o CI. Scripts pm.* funcionam na maioria dos casos. Scripts que usam pm.require para módulos externos podem precisar ser ajustados.
5. Remova Node.js do CI:
Se o Node.js só era usado para o Newman, pode remover setup-node e npm install do pipeline.
Perguntas Frequentes
Newman está descontinuado?
Ainda não — início de 2026 o Newman segue mantido pelo Postman, mas com manutenção lenta e issues reais acumuladas. Novos pipelines sobre ele têm risco crescente.
O Apidog CLI exige conta Apidog?
Para rodar coleções exportadas localmente, não. Para sincronizar coleções de um workspace Apidog, sim. Se estiver migrando do Postman, basta rodar arquivos JSON exportados.
O Apidog CLI executa testes orientados a dados?
Sim. Use a flag --iteration-data apontando para arquivos CSV ou JSON, equivalente à flag -d do Newman.
Qual o risco de cadeia de suprimentos com npm?
Pacotes do npm em CI são uma potencial superfície de ataque. Pacotes comprometidos podem vazar variáveis de ambiente — inclusive chaves e tokens. Um executor binário baixado via HTTPS e verificado por checksum evita esse risco.
k6 suporta testes gRPC?
Sim, k6 tem suporte nativo a gRPC, permitindo testar REST e gRPC no mesmo suite — diferencial relevante.
Hurl suporta cabeçalhos de autenticação?
Sim. Hurl aceita headers customizados, incluindo Authorization, Bearer e autenticação por cookie. Variáveis permitem injetar segredos de ambiente em runtime.
A era do Newman como padrão de CI para testes de API está terminando. Riscos de cadeia de suprimentos e limites do plano gratuito mudaram o cenário, e há opções melhores disponíveis. Migrar para um pipeline sem Newman é simples, especialmente usando o Apidog CLI com coleções Postman existentes.
Top comments (0)