Seus testes de API passam no laptop. Então alguém faz merge às 2h da manhã, o endpoint de staging começa a retornar um payload malformado, e ninguém percebe até um cliente abrir um ticket. Os testes existiam, mas não rodavam onde importava: no pipeline, a cada push, sem alguém clicar em um botão.
A CLI do Apidog resolve essa lacuna. Ela executa, via terminal, os cenários de teste que você já criou no Apidog desktop ou web. Você instala com npm, aponta para um cenário, passa um token de acesso e deixa o CI decidir: se as asserções falharem, o comando sai com código diferente de zero e a build quebra.
TL;DR
- A CLI do Apidog é o pacote npm
apidog-cli. - Instalação global:
npm install -g apidog-cli
- Execução básica:
apidog run \
--access-token "$APIDOG_ACCESS_TOKEN" \
-t <scenarioId> \
-e <environmentId> \
-n 1 \
-r html,cli
- Você não reescreve testes como código. A CLI executa cenários já criados no Apidog.
- Relatórios disponíveis:
cli,html,jsonejunit. - Use
junitpara integrar com dashboards de CI. - Se qualquer asserção falhar, o comando retorna código diferente de zero e bloqueia o pipeline.
- Funciona em qualquer CI com Node.js: GitHub Actions, GitLab CI, Jenkins, CircleCI, Azure Pipelines etc.
O que a CLI do Apidog faz
O Apidog é uma plataforma para projetar APIs, depurar requisições, criar testes automatizados, simular endpoints e publicar documentação. Na interface visual, você monta cenários de teste encadeando requisições, adicionando asserções, extraindo valores de uma resposta para usar na próxima etapa e, se necessário, iterando com dados externos.
A CLI é o executor headless desses cenários. Ela não cria um formato novo de teste. Em vez disso, acessa seu projeto Apidog, localiza o cenário pelo ID e executa esse cenário como o aplicativo faria.
O fluxo fica assim:
- Você cria e valida o cenário no Apidog.
- Gera o comando na aba CI/CD do cenário.
- Salva o token como segredo no CI.
- Executa
apidog runno pipeline. - Publica relatórios e usa o código de saída como quality gate.
Se você vem do Postman, o modelo é parecido com Postman CLI ou Newman, mas aplicado aos cenários do Apidog. Para contexto, veja CLI do Postman vs Newman e como executar coleções em CI sem Newman.
Pré-requisitos
Antes de rodar a CLI, prepare:
- Node.js v16 ou superior
Verifique a versão:
node -v
Qualquer imagem moderna de CI com Node 16+ atende ao requisito.
- Um cenário de teste no Apidog
A CLI executa cenários, não requisições avulsas. Crie um cenário no Apidog com suas requisições, variáveis, scripts e asserções. Se precisar revisar validações, veja Asserções de API: um guia prático.
- Um token de acesso
O token autentica a CLI para buscar e executar o cenário. Gere-o na aba CI/CD do cenário.
Instalando a CLI do Apidog
Instale globalmente:
npm install -g apidog-cli
Valide a instalação:
node -v && apidog -v && which node && which npm && which apidog
Se o comando imprimir versões e caminhos, a CLI está pronta. O binário é apidog, e o comando principal é apidog run.
Em uma máquina local, a instalação global é simples. Em CI, você pode escolher entre instalar a cada execução:
npm install -g apidog-cli
apidog run \
--access-token "$APIDOG_ACCESS_TOKEN" \
-t 605067 \
-e 1629989 \
-r cli
Ou usar npx sem instalação global persistente:
npx apidog-cli run \
--access-token "$APIDOG_ACCESS_TOKEN" \
-t 605067 \
-e 1629989 \
-r cli
Use npx para runners efêmeros. Use instalação global se você consegue cachear dependências entre execuções.
Obtendo token de acesso, ID do cenário e ID do ambiente
A CLI precisa de duas informações principais:
- qual cenário executar;
- permissão para executá-lo.
No Apidog:
- Abra o cenário de teste.
- Acesse a aba CI/CD.
- Escolha a opção de linha de comando.
- Clique em Adicionar token de acesso.
- Gere o token.
- Copie o comando
apidog rungerado.
O comando gerado se parece com isto:
apidog run \
--access-token YOUR_ACCESS_TOKEN \
-t 605067 \
-e 1629989 \
-n 1 \
-r html,cli
Neste exemplo:
-
605067é o ID do cenário. -
1629989é o ID do ambiente. -
YOUR_ACCESS_TOKENdeve ser movido para um segredo do CI.
Nunca comite o token em arquivos de configuração. Use uma variável de ambiente, por exemplo:
APIDOG_ACCESS_TOKEN=<valor-do-segredo>
E chame:
apidog run --access-token "$APIDOG_ACCESS_TOKEN" -t 605067 -e 1629989
Comando apidog run: flags principais
Selecionando o que executar
| Flag | Argumento | Uso |
|---|---|---|
-t, --test-scenario
|
<testScenarioId> |
Executa um cenário específico por ID. |
-f, --test-scenario-folder
|
<folderId> |
Executa todos os cenários dentro de uma pasta. |
--test-suite |
<testSuiteId> |
Executa um conjunto de testes por ID. |
--project |
<projectId> |
Especifica o projeto do cenário. |
--branch |
<branchName> |
Executa contra uma branch específica. O padrão é main. |
Use:
-
-tpara smoke tests ou validações específicas; -
-fpara uma área funcional; -
--test-suitepara um conjunto de cenários curado.
Veja também conjuntos de testes no Apidog.
Autenticação
| Flag | Argumento | Uso |
|---|---|---|
--access-token |
<accessToken> |
Autentica a execução na conta Apidog. |
Em CI, sempre passe o token via segredo:
apidog run --access-token "$APIDOG_ACCESS_TOKEN" -t 605067
Ambiente e iteração
| Flag | Argumento | Uso |
|---|---|---|
-e, --environment
|
<environmentId> |
Define o ambiente alvo, como dev, staging ou prod. |
-n, --iteration-count
|
<n> |
Executa o cenário n vezes. |
-d, --iteration-data
|
<path> |
Usa um arquivo JSON ou CSV para iterações. |
--variables |
<path> |
Carrega variáveis de um arquivo local. |
--global-var |
<value> |
Define variável global inline no formato chave=valor. |
--env-var |
<value> |
Sobrescreve variável de ambiente inline no formato chave=valor. |
Exemplo usando o mesmo cenário contra staging:
apidog run \
--access-token "$APIDOG_ACCESS_TOKEN" \
-t 605067 \
-e <stagingEnvId> \
-r cli
Exemplo orientado a dados com CSV:
apidog run \
--access-token "$APIDOG_ACCESS_TOKEN" \
-t 605067 \
-d ./test-data.csv \
-r junit
Para escalar cenários, veja o guia sobre testes automatizados com conjuntos de testes.
Relatórios
| Flag | Argumento | Uso |
|---|---|---|
-r, --reporters
|
[reporters] |
Define formatos: cli, html, json, junit. Padrão: cli. |
--out-dir |
<outDir> |
Diretório de saída. Padrão: ./apidog-reports. |
--out-file |
<outFile> |
Nome do arquivo de relatório. Suporta {FOLDER_NAME}, {SCENARIO_NAME}, {GENERATE_TIME}. |
--out-json-failures-separated |
<value> |
Salva falhas em um JSON separado. |
--upload-report |
[value] |
Envia uma visão geral do relatório para a nuvem Apidog. |
Exemplo comum para CI:
apidog run \
--access-token "$APIDOG_ACCESS_TOKEN" \
-t 605067 \
-r html,junit \
--out-dir ./test-reports
Use:
-
clipara logs legíveis no terminal; -
htmlpara arquivar um relatório navegável como artefato; -
junitpara integração com dashboards de CI; -
jsonpara pós-processamento customizado.
Tratamento de erros
| Flag | Argumento | Uso |
|---|---|---|
--on-error |
<behavior> |
Define comportamento em falhas: ignore, continue ou end. |
--ignore-redirects |
Não segue redirecionamentos HTTP automaticamente. | |
--delay-request |
[n] |
Aguarda n ms entre requisições. |
--timeout-request |
[n] |
Timeout por requisição em ms. |
--timeout-script |
[n] |
Timeout de execução de script em ms. |
Escolha:
--on-error end
Para falhar rápido em smoke tests.
--on-error continue
Para executar todas as etapas e coletar todas as falhas no relatório.
Use ignore apenas quando uma etapa é conhecida como instável e não deve afetar o resultado da execução.
TLS e certificados
| Flag | Argumento | Uso |
|---|---|---|
-k, --insecure
|
Desabilita verificação de certificado SSL. | |
--ssl-client-cert |
<path> |
Certificado de cliente em PEM. |
--ssl-client-key |
<path> |
Chave privada do certificado de cliente. |
--ssl-client-passphrase |
<passphrase> |
Senha do certificado de cliente. |
--ssl-client-cert-list |
<path> |
Arquivo que mapeia certificados para hosts. |
--ssl-extra-ca-certs |
<path> |
CAs adicionais confiáveis. |
Para endpoints internos com CA própria:
apidog run \
--access-token "$APIDOG_ACCESS_TOKEN" \
-t 605067 \
--ssl-extra-ca-certs ./internal-ca.pem
Use -k apenas em hosts internos confiáveis com certificado autoassinado. Evite em endpoints públicos.
Diagnóstico
| Flag | Argumento | Uso |
|---|---|---|
--verbose |
Imprime detalhes completos de requisição e resposta. | |
--silent |
Suprime saída do console. | |
--color |
<value> |
Força saída colorida ligada ou desligada. |
--external-program-path |
<path> |
Aponta para arquivo de programas externos. |
--database-connection |
<path> |
Arquivo de configuração de banco de dados. |
--preferred-http-version |
<version> |
Define versão preferencial do HTTP. |
-b, --bigint
|
Habilita suporte a BigInt. | |
--lang |
<language> |
Idioma da CLI. |
-h, --help
|
Exibe ajuda. |
Quando o teste passa localmente, mas falha no CI, rode com:
apidog run \
--access-token "$APIDOG_ACCESS_TOKEN" \
-t 605067 \
-e 1629989 \
--verbose
Isso mostra a requisição enviada pelo runner e a resposta recebida.
Códigos de saída: o que faz o CI bloquear a build
A CLI usa o comportamento padrão de ferramentas de linha de comando:
- código
0: todas as asserções passaram; - código diferente de
0: houve falha.
Isso torna apidog run um quality gate.
Em um pipeline, se a etapa abaixo falhar:
apidog run \
--access-token "$APIDOG_ACCESS_TOKEN" \
-t 605067 \
-e 1629989
O CI marca o job como falho e bloqueia merge ou deploy, conforme sua configuração.
Evite mascarar esse código de saída. Não use:
apidog run ... || true
Isso faria a build continuar mesmo com testes quebrados.
GitHub Actions
Exemplo completo executando testes de API em pull requests e publicando relatórios como artefato:
name: Testes de API
on:
pull_request:
branches: [main]
jobs:
testes-api:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Configurar Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
- name: Instalar CLI Apidog
run: npm install -g apidog-cli
- name: Executar cenário de teste de API
run: |
apidog run \
--access-token "$APIDOG_ACCESS_TOKEN" \
-t 605067 \
-e 1629989 \
-n 1 \
-r html,junit \
--out-dir ./apidog-reports
env:
APIDOG_ACCESS_TOKEN: ${{ secrets.APIDOG_ACCESS_TOKEN }}
- name: Fazer upload do relatório
if: always()
uses: actions/upload-artifact@v4
with:
name: relatorio-apidog
path: ./apidog-reports
Pontos importantes:
- salve
APIDOG_ACCESS_TOKENem Settings → Secrets and variables → Actions; -
if: always()garante upload do relatório mesmo quando os testes falham; -
junitpermite integração com ferramentas que leem XML de testes; - a build falha automaticamente se
apidog runretornar código diferente de zero.
GitLab CI
Exemplo em .gitlab-ci.yml:
stages:
- teste
testes-api:
stage: teste
image: node:20
script:
- npm install -g apidog-cli
- >
apidog run
--access-token "$APIDOG_ACCESS_TOKEN"
-t 605067
-e 1629989
-r junit,cli
--out-dir ./apidog-reports
artifacts:
when: always
paths:
- apidog-reports/
reports:
junit: apidog-reports/*.xml
No GitLab:
- Vá em Settings → CI/CD → Variables.
- Crie
APIDOG_ACCESS_TOKEN. - Marque como mascarada e protegida, se fizer sentido para seu fluxo.
- Use
reports: junitpara exibir os resultados na merge request.
Jenkins
Pipeline declarativo:
pipeline {
agent any
environment {
APIDOG_ACCESS_TOKEN = credentials('apidog-access-token')
}
stages {
stage('Testes de API') {
steps {
sh 'npm install -g apidog-cli'
sh '''
apidog run \
--access-token "$APIDOG_ACCESS_TOKEN" \
-t 605067 \
-e 1629989 \
-n 1 \
-r html,junit \
--out-dir apidog-reports
'''
}
}
}
post {
always {
junit 'apidog-reports/*.xml'
archiveArtifacts artifacts: 'apidog-reports/', allowEmptyArchive: true
}
}
}
Se seus agentes Jenkins já têm a CLI instalada, remova:
sh 'npm install -g apidog-cli'
A etapa junit alimenta os gráficos e relatórios do Jenkins. archiveArtifacts mantém o HTML disponível na build.
Se você está comparando Jenkins com outros fluxos, veja Configuração do CI do ReadyAPI Jenkins, e uma alternativa mais simples.
Receitas práticas
Smoke test após deploy
Execute um cenário curto contra produção logo após a implantação:
apidog run \
--access-token "$APIDOG_ACCESS_TOKEN" \
-t 605067 \
-e <prodEnvId> \
-r cli \
--on-error end
Regressão completa noturna
Execute uma pasta inteira e colete todas as falhas:
apidog run \
--access-token "$APIDOG_ACCESS_TOKEN" \
-f <folderId> \
-r html,junit \
--on-error continue \
--out-dir ./nightly-reports
Teste orientado a dados
Execute o mesmo cenário para cada linha de um CSV:
apidog run \
--access-token "$APIDOG_ACCESS_TOKEN" \
-t 605067 \
-d ./test-data.csv \
-r junit
Execução por branch
Execute os cenários como estão em uma branch específica:
apidog run \
--access-token "$APIDOG_ACCESS_TOKEN" \
-t 605067 \
--branch feature-payments \
-e 1629989 \
-r cli
Debug de falha apenas no CI
Adicione --verbose:
apidog run \
--access-token "$APIDOG_ACCESS_TOKEN" \
-t 605067 \
-e 1629989 \
--verbose
Compare a requisição enviada no CI com a execução local.
Resolução de problemas
Erro de autenticação
Possíveis causas:
- token incorreto;
- token expirado;
- variável de ambiente não configurada;
- segredo não disponível para aquele branch ou job.
Verifique se o segredo existe no CI e gere outro token na aba CI/CD do cenário, se necessário. Nunca imprima o token completo no log.
“Cenário não encontrado”
Verifique:
- ID do cenário;
- ID do projeto;
- branch usada em
--branch; - permissão do token.
A forma mais segura é copiar novamente o comando da aba CI/CD do cenário.
Passa localmente, falha no CI
Normalmente é diferença de ambiente:
-
-eaponta para outro ambiente; - variável ausente;
- runner sem acesso de rede ao host;
- certificado interno não confiável;
- dados de teste diferentes.
Rode com:
--verbose
E compare request/response.
Falha de TLS em hosts internos
Se o endpoint usa CA interna:
--ssl-extra-ca-certs ./internal-ca.pem
Use -k apenas como último recurso em ambiente interno confiável.
A build continua verde mesmo com teste quebrado
Procure por comandos que escondem o erro:
apidog run ... || true
Ou pipelines shell que descartam o exit code. O CI precisa receber diretamente o código de saída do apidog run.
Como encaixar a CLI no workflow da equipe
Um fluxo prático fica assim:
- Projete e depure endpoints no Apidog.
- Crie cenários com asserções.
- Gere o comando
apidog runna aba CI/CD. - Salve o token como segredo no CI.
- Execute os testes em pull requests, merges ou deploys.
- Publique relatórios
htmlejunit. - Deixe o código de saída bloquear o pipeline quando houver falha.
A vantagem é manter uma única fonte da verdade. O cenário visual no Apidog é o teste. A CLI apenas executa esse teste onde humanos não deveriam estar clicando: no pipeline.
Esse modelo evita manter uma versão visual e outra versão em script do mesmo teste. É uma das razões pelas quais equipes avaliam o Apidog como alternativa ao Postman para testes de API.
Se você ainda não tem cenários automatizados, comece criando um cenário simples, faça-o passar no Apidog e depois copie o comando da aba CI/CD. Você pode baixar o Apidog e configurar o primeiro teste no pipeline no mesmo dia.
Perguntas frequentes
A CLI do Apidog é gratuita?
A CLI é um pacote npm gratuito instalado com:
npm install -g apidog-cli
Ela executa cenários do seu projeto Apidog. O que você pode executar depende do seu plano Apidog, mas o executor de linha de comando não é um produto pago separado.
Preciso reescrever meus testes como código?
Não. Você cria os cenários visualmente no Apidog e a CLI os executa por ID.
Qual é a diferença entre a CLI do Apidog e o Newman?
O Newman executa coleções Postman via linha de comando. A CLI do Apidog executa cenários de teste do Apidog. Os papéis são parecidos, mas cada ferramenta executa artefatos da sua própria plataforma. Veja CLI do Postman vs Newman.
Qual formato de relatório devo usar em CI?
Use junit para integração com dashboards de CI e html para relatório navegável como artefato:
-r html,junit
Adicione cli se quiser saída legível no log:
-r cli,html,junit
Como a CLI faz a build falhar?
Por código de saída. Se qualquer asserção falhar, apidog run retorna código diferente de zero. O CI marca a etapa como falha e bloqueia merge ou deploy.
Posso executar sem instalação global?
Sim:
npx apidog-cli run \
--access-token "$APIDOG_ACCESS_TOKEN" \
-t 605067 \
-e 1629989
Qual versão do Node.js é necessária?
Node.js v16 ou superior.
Onde encontro o token e o ID do cenário?
Na aba CI/CD do cenário de teste no Apidog. Gere o token, copie o comando completo e mova o token para um segredo do CI.

Top comments (0)