Apidog CLI vs Postman CLI: O Melhor Executor de Testes para CI

Apidog CLI vs Postman CLI comparados para CI: instalação, autenticação, execução de comandos, relatórios e códigos de saída. Uma análise honesta de qual runner se adapta à sua pipeline.

Ashley Innocent

Ashley Innocent

15 junho 2026

Apidog CLI vs Postman CLI: O Melhor Executor de Testes para CI

Apidog para empresas

Implantação local

SSO & RBAC

Conforme SOC 2

Explorar Apidog Enterprise

Seus testes de API passam quando você clica em 'Executar' no seu laptop. Isso não prova nada. O teste que realmente importa é aquele que dispara em cada pull request, em cada merge e em cada build noturno, sem a presença humana para clicar em nada. A tarefa de inserir seus testes nesse ciclo pertence a um executor de linha de comando. Ele pega os testes que você já escreveu, os executa sem interface gráfica (headless) dentro do seu pipeline, sai com um código de status que sua CI pode ler e escreve um relatório que aparece no dashboard da build.

Dois executores surgem repetidamente quando as equipes configuram isso: o CLI do Postman e o CLI do Apidog. Eles visam o mesmo objetivo a partir de pontos de partida diferentes. O CLI do Postman executa as coleções que você cria no Postman. O CLI do Apidog executa os cenários de teste visuais que você cria no Apidog. Ambos são instalados em uma única etapa, ambos se integram ao GitHub Actions, GitLab CI e Jenkins, e ambos fazem a build falhar quando um teste falha. As verdadeiras diferenças estão a montante do comando de execução: como você escreve os testes, como você se autentica na CI e onde a definição do teste realmente reside.

💡
Esta é uma comparação em nível de comando entre os dois. Sem falácias. O CLI do Postman faz várias coisas bem, e você verá exatamente onde cada executor se encaixa antes de se comprometer com um para o seu pipeline. Se você é novo no Apidog, é uma plataforma de API completa que abrange design, depuração, teste, mocking e documentação em um único workspace, e o CLI é a peça que leva seus testes para a automação.
botão

TL;DR

O problema real: testes que existem, mas nunca são executados

Um teste que você executa manualmente é um teste que apodrece. Alguém o escreveu, ele passou uma vez e depois ficou intocado enquanto a API mudava. Três meses depois, o teste está incorreto e ninguém percebeu, porque ninguém o executou. A solução não é escrever mais testes. É fazer com que os testes que você tem sejam executados automaticamente a cada alteração, com um sinal de sucesso ou falha sobre o qual o pipeline possa agir.

Um executor de CLI é a ferramenta que preenche essa lacuna. Para ganhar um lugar na CI, ele precisa fazer três coisas. Ele precisa ser executado sem GUI, porque seu executor de CI não tem tela. Ele precisa sair com um código diferente de zero quando algo falha, para que a build fique vermelha e um merge problemático seja bloqueado. E ele precisa escrever um relatório legível por máquina, para que o revisor veja o que quebrou sem precisar executar nada localmente. O CLI do Postman e o CLI do Apidog superam esse desafio de forma limpa. Onde eles se diferenciam é em tudo o que acontece antes de run: como o teste foi escrito e onde ele reside quando a CI o procura.

Se você está configurando testes automatizados do zero, os padrões mais amplos em automação de testes de API em CI/CD valem a leitura junto com este artigo. Aqui, o foco permanece nos dois executores.

O que o CLI do Postman faz bem

Primeiro, um ponto de clareza que confunde muitas pessoas: o CLI do Postman não é o Newman. Newman é o executor mais antigo, de código aberto, baseado em npm, que a comunidade tem usado por anos. O CLI do Postman é uma ferramenta mais nova, construída sobre a fundação do Newman, mas assinada e oficialmente suportada pela empresa Postman. Se você tem usado o Newman, os dois não são intercambiáveis, e a diferença importa na CI. Nós detalhamos essa distinção exata em Postman CLI vs Newman se você estiver decidindo entre as duas opções do lado do Postman.

A maior força do CLI do Postman é que ele permanece dentro do mundo que sua equipe já conhece. Se suas coleções, ambientes e variáveis compartilhadas já residem em um workspace do Postman, o CLI os executa com quase nenhuma tradução. Você não reconstrói nada. Você se autentica, nomeia a coleção, e ele executa as requisições e testes exatamente como o aplicativo faria.

A instalação é um único comando. No macOS e Linux, você executa o script de instalação oficial:

curl -o- "https://dl-cli.pstmn.io/install/unix.sh" | sh

No Windows, você usa o instalador PowerShell assinado, e também existe um pacote npm se você preferir fixá-lo como uma dependência de desenvolvimento:

npm install -g postman-cli

O binário é postman. Na CI, você se autentica com uma chave de API do Postman, que é o método que o Postman recomenda para pipelines:

postman login --with-api-key $POSTMAN_API_KEY

Então você executa uma coleção pelo seu ID, ou por um caminho de arquivo local se você a exportou:

postman collection run $POSTMAN_COLLECTION_ID -e $POSTMAN_ENV_ID

A parte que garante ao CLI do Postman muita lealdade é o que acontece após a execução. Quando você está logado, ele envia os resultados da execução diretamente para a nuvem do Postman, onde aparecem no seu workspace junto com a coleção. Histórico de testes, comparações de execução e o dashboard visível para a equipe estão todos lá sem nenhuma configuração extra. Para uma equipe que já vive no Postman, essa viagem de ida e volta é genuinamente útil, e é uma boa razão para permanecer.

O que o CLI do Apidog faz bem

O Apidog segue um caminho diferente para o mesmo pipeline. Você constrói testes visualmente dentro do aplicativo Apidog: encadeia várias requisições em um único cenário de teste, adiciona asserções em cada resposta, extrai um valor de uma resposta e o alimenta na próxima requisição, e repete todo o cenário sobre um arquivo de dados. O CLI é o executor sem interface gráfica (headless) para esses cenários. Ele não possui um formato de teste próprio. Ele acessa seu projeto Apidog, encontra o cenário que você nomeia por ID e o executa exatamente como o aplicativo faria, e então reporta os resultados.

A vantagem é que ninguém mantém duas cópias do mesmo teste. O cenário que você construiu no editor visual é o teste que é executado na CI. Não há uma etapa em que você re-expresse um teste funcionando como um script e depois depure o script. O ciclo rápido de autoria e o ciclo de automação compartilham uma única fonte de verdade. Para fluxos de várias etapas, como login, criação, leitura e exclusão, esse encadeamento visual economiza muito do código "cola" que você escreveria manualmente. A mecânica de construção desses fluxos é abordada no guia para cenários de teste para automação de testes de API.

A instalação é um comando npm:

npm install -g apidog-cli

O binário é apidog. Uma execução típica nomeia um cenário por ID, seleciona um ambiente, define uma contagem de iterações e autentica com um token de acesso:

apidog run --access-token $APIDOG_ACCESS_TOKEN -t 605067 -e 1629989 -n 1 -r html,junit

Você não digita esses IDs manualmente. Abra o cenário de teste no Apidog, mude para a guia CI/CD, clique para gerar um token de acesso, e o Apidog constrói o comando completo para você com o ID do cenário e o ID do ambiente já preenchidos. Você o copia uma vez, move o token para um segredo de CI e o referencia como $APIDOG_ACCESS_TOKEN no seu fluxo de trabalho.

O modelo de token e ID é a divisão mais clara em relação ao CLI do Postman. O Apidog executa testes armazenados em um projeto que o CLI busca pela rede, autenticado pelo token. Não há uma opção de adesão separada à nuvem para relatórios: você escolhe --out-dir para artefatos locais e adiciona --upload-report apenas quando deseja que uma visão geral seja enviada para a nuvem do Apidog. Os relatórios permanecem onde você os coloca.

Lado a lado

Dimensão CLI do Postman (postman) CLI do Apidog (apidog)
Pacote / Instalação Script de instalação, instalador assinado ou npm i -g postman-cli npm i -g apidog-cli
Comando de execução postman collection run <id|arquivo> apidog run -t <scenarioId>
Fonte do teste Coleções no seu workspace do Postman (ou arquivo exportado) Cenários de teste no seu projeto Apidog, buscados por ID
Autoria Editor de coleções e o aplicativo Postman Construtor visual de cenários no aplicativo Apidog
Autenticação na CI Chave de API do Postman (postman login --with-api-key) Token de acesso (--access-token)
Selecionar o que executar ID da coleção ou caminho do arquivo Cenário -t, pasta -f, --test-suite
Ambiente -e, --environment -e, --environment <environmentId>
Orientado a dados -d, --iteration-data (JSON ou CSV) -d, --iteration-data (JSON ou CSV)
Iterações -n, --iteration-count -n, --iteration-count
Repórteres cli, json, junit, html cli, html, json, junit
Falha rápida --bail --on-error end (o padrão para na primeira falha)
Relatório na nuvem Envia resultados automaticamente quando logado Ativar via --upload-report
Construído sobre Newman Motor próprio do Apidog

Duas coisas se destacam nessa tabela. Primeiro, ambos os executores cobrem os itens essenciais de CI de forma quase idêntica: seleção de ambiente, iteração orientada a dados, os quatro formatos de relatório importantes e uma saída diferente de zero em caso de falha. Se tudo o que você precisa é um executor que sinalize falha em um merge problemático, qualquer um deles faz o trabalho. Segundo, a verdadeira divisão está em onde o teste reside e como você o escreveu. O CLI do Postman executa uma coleção que está no seu workspace do Postman. O CLI do Apidog executa um cenário visual que está no seu projeto Apidog.

Repórteres e códigos de saída: as partes que a CI realmente lê

Um executor prova seu valor em um pipeline por meio de dois comportamentos: o relatório que ele escreve e o código de saída que ele retorna. Acertando esses dois, todo o resto são as conexões.

O CLI do Postman aceita uma lista de repórteres separada por vírgulas e, quando você está logado, também envia os resultados para a nuvem do Postman:

postman collection run $POSTMAN_COLLECTION_ID \
  -e $POSTMAN_ENV_ID \
  --reporters cli,junit \
  --bail

O repórter junit é o que seu dashboard de CI analisa em uma árvore de sucesso ou falha. A flag --bail interrompe a execução na primeira requisição, teste ou asserção que falhar, o que mantém o feedback rápido em um teste de fumaça. Remova --bail e ele executa tudo, então reporta todas as falhas juntas. O CLI sai com um código diferente de zero em qualquer falha, então a build fica vermelha por si só.

O CLI do Apidog usa a mesma ideia de repórter -r e escreve tudo em um diretório de saída:

apidog run --access-token $APIDOG_ACCESS_TOKEN -t 605067 \
  -r html,junit --out-dir ./apidog-reports

Sua flag --on-error molda o comportamento no meio do cenário: end para na primeira falha e é o padrão, continue executa cada etapa para que você colete todas as falhas em um único relatório, e ignore avança um passo que se sabe ser instável sem desviar a execução. De qualquer forma, o processo termina com um código diferente de zero se algo falhar, e o XML JUnit é salvo em ./apidog-reports pronto para seu dashboard.

O resultado prático: ambos escrevem XML JUnit, ambos falham a build corretamente e ambos arquivam um relatório HTML que você pode abrir mais tarde. A diferença na geração de relatórios é a viagem de ida e volta à nuvem. O Postman envia os resultados para sua nuvem por padrão quando você está autenticado. O Apidog mantém os relatórios locais, a menos que você peça para fazer o upload. Nenhum é melhor em abstrato; um serve a equipes que querem um histórico hospedado sem precisar pensar muito, o outro serve a equipes que querem decidir exatamente o que sai do executor.

Conectando cada um ao GitHub Actions

A estrutura de um trabalho do GitHub Actions é a mesma para ambos: fazer checkout do repositório, configurar o Node, instalar o CLI, executar os testes, e o código de saída de falha bloqueia o merge. Armazene o segredo nas configurações do seu repositório, nunca no arquivo de workflow.

- name: Run API tests (Postman CLI)
  run: |
    curl -o- "https://dl-cli.pstmn.io/install/unix.sh" | sh
    postman login --with-api-key ${{ secrets.POSTMAN_API_KEY }}
    postman collection run $POSTMAN_COLLECTION_ID -e $POSTMAN_ENV_ID --reporters cli,junit --bail

E a versão do CLI do Apidog:

- name: Run API tests (Apidog CLI)
  run: |
    npm install -g apidog-cli
    apidog run --access-token ${{ secrets.APIDOG_ACCESS_TOKEN }} -t 605067 -e 1629989 -r cli,junit

Ambos são curtos, ambos são legíveis e ambos se comportam da mesma forma no nível que seu pipeline se importa: uma execução bem-sucedida sai com zero e o merge prossegue, uma execução com falha sai com um código diferente de zero e o merge é bloqueado. Se você deseja um guia mais aprofundado sobre a execução de testes de API em um workflow do GitHub, automação de testes de API com GitHub Actions descreve passo a passo. Para usuários do Jenkins, a mesma ideia é apresentada em integrando testes automatizados do Apidog com Jenkins.

Então, qual deles vence na CI?

Não há um único vencedor, porque a resposta certa depende de onde seus testes já residem e de como sua equipe deseja criá-los e armazená-los.

O CLI do Apidog vence quando você valoriza a autoria visual e uma única fonte de verdade mais do que um histórico de nuvem hospedado. Você constrói um cenário uma vez no editor visual, com encadeamento de requisições e asserções tratadas para você, e o mesmo cenário é executado na CI por referência. Você decide se os relatórios permanecem locais ou são enviados. E porque o Apidog cobre design, mocking e documentação no mesmo workspace, o cenário de teste fica ao lado do contrato de API que ele verifica, o que impede que testes e especificações se desvinculem. Equipes avaliando as plataformas de forma mais ampla podem ler a comparação completa Apidog vs Postman.

O CLI do Postman vence quando sua equipe já está dentro do Postman. Suas coleções estão lá, seus ambientes estão lá, e você quer o histórico de execução na nuvem do Postman sem precisar configurar nada. A viagem de ida e volta à nuvem em cada execução é uma verdadeira conveniência para essa configuração, e a ferramenta é oficialmente assinada e suportada. Se isso descreve sua equipe, mudar de executor não lhe trará muitos benefícios.

Se você já se sente preso pelo modelo de nuvem do Postman, ou apenas deseja criar testes uma vez e executá-los em todos os lugares, a mudança é clara. Baixe o Apidog, construa um cenário, abra sua guia CI/CD e copie o comando apidog run gerado para o seu pipeline. Essa é toda a configuração.

botão

FAQ

Pratique o design de API no Apidog

Descubra uma forma mais fácil de construir e usar APIs