Apidog Docs
🇧🇷 Português (Brasil)
  • 🇺🇸 English
  • 🇯🇵 日本語
  • 🇪🇸 Español
  • 🇰🇷 한국인
  • 🇨🇳 简体中文
  • 🇵🇹 Português (Portugal)
  • 🇮🇩 Bahasa Indonesia
  • 🇧🇷 Português (Brasil)
  • 🇻🇳 Tiếng Việt
  • 🇨🇳 繁體中文
🇧🇷 Português (Brasil)
  • 🇺🇸 English
  • 🇯🇵 日本語
  • 🇪🇸 Español
  • 🇰🇷 한국인
  • 🇨🇳 简体中文
  • 🇵🇹 Português (Portugal)
  • 🇮🇩 Bahasa Indonesia
  • 🇧🇷 Português (Brasil)
  • 🇻🇳 Tiếng Việt
  • 🇨🇳 繁體中文
🇧🇷 Português (Brasil)
  • 🇺🇸 English
  • 🇯🇵 日本語
  • 🇪🇸 Español
  • 🇰🇷 한국인
  • 🇨🇳 简体中文
  • 🇵🇹 Português (Portugal)
  • 🇮🇩 Bahasa Indonesia
  • 🇧🇷 Português (Brasil)
  • 🇻🇳 Tiếng Việt
  • 🇨🇳 繁體中文
HomeLearning Center
Support CenterAPI ReferencesDownloadChangelog
HomeLearning Center
Support CenterAPI ReferencesDownloadChangelog
  1. Uso de scripts
  • Centro de Aprendizado da Apidog
  • Primeiros passos
    • Introdução ao Apidog
    • Conceitos básicos no Apidog
    • Navegando pelo Apidog
    • Início rápido
      • Visão geral
      • Criando um Endpoint
      • Fazendo uma Requisição
      • Adicionando uma assertiva
      • Criação de Cenários de Teste
      • Compartilhamento da documentação da API
      • Explore Mais
    • Migração para o Apidog
      • Visão geral
      • Importação Manual
      • Importação Agendada (Vincular Fontes de Dados)
      • Opções de importação
      • Exportar Dados
      • Importar de
        • Importar do Postman
        • Importar especificação OpenAPI
        • Importar cURL
        • Importar Markdowns
        • Importar do Insomnia
        • Importar do apiDoc
        • Importar arquivo .har
        • Importar WSDL
  • Dados de API mock
    • Visão geral
    • Smart Mock
    • Mock personalizado
    • Sequência de Prioridade do Mock
    • Scripts de Mock
    • Mock na Nuvem
    • Mock do Runner Auto-hospedado
    • Idioma do Mock (Locales)
  • Conta e preferências
    • Configurações da Conta
    • Geração de Token de Acesso OpenAPI
    • Notificação
    • Configurações de idioma
    • Teclas de Atalho
    • Configuração de Proxy de Rede
    • Backup de Dados
    • Atualizando o Apidog
    • Exclusão da conta
    • Recursos Experimentais
  • Enviar requisições
    • Visão geral
    • Depuração de SSE
    • Cliente MCP
    • Socket.IO
    • WebSocket
    • Webhook
    • SOAP ou WebService
    • GraphQL
    • gRPC
    • Use Agentes de Proxy de Requisição para Depuração
    • Criar requisições
      • Histórico de Requisições
      • Conceitos Básicos de Requisições
      • Parâmetros e Corpo
      • Cabeçalhos da Requisição
      • Configurações da Requisição
      • Depurar Requisições
      • Salvando Requisições como Endpoints
      • HTTP/2
    • Autenticação e autorização
      • Visão geral
      • Certificados de CA e de Cliente
      • Tipos de autorização
      • Digest Auth
      • OAuth 1.0
      • OAuth 2.0
      • Autenticação Hawk
      • Kerberos
      • NTLM
      • Akamai EdgeGrid
    • Resposta e cookies
      • Visualização de respostas de API
      • Gerenciamento de Cookies
      • Visão geral
  • Desenvolver e depurar APIs
    • Visão geral
    • Gerando Requisições
    • Envio de Requisições
    • Casos de Depuração
    • Casos de teste
    • Valores Dinâmicos
    • Validação de Respostas
    • Design-First vs Request-First
    • Geração de Código
    • Ambientes e variáveis
      • Visão geral
      • Usando variáveis
      • Gerenciamento de Ambientes
    • Segredos do cofre
      • Visão geral
      • HashiCorp Vault
      • Azure Key Vault
      • AWS Secrets Manager
    • Módulos de valores dinâmicos
      • Airline
      • Animal
      • Cor
      • Comércio
      • Empresa
      • Banco de Dados
      • Tipo de dados
      • Data
      • Finanças
      • Comida
      • Git
      • Hacker
      • Helpers
      • Imagem
      • Internet
      • Localização
      • Lorem
      • Música
      • Número
      • Pessoa
      • Telefone
      • Ciência
      • String
      • Sistema
      • Veículo
      • Palavra
    • Pré e pós-processadores
      • Visão geral
      • Assertiva
      • Extrair Variável
      • Espera
      • Segurança
      • Operações de banco de dados
        • Visão geral
        • MySQL
        • MongoDB
        • Redis
        • Cliente Oracle
      • Uso de scripts
        • Visão geral
        • Scripts de Pré-processador
        • Scripts de Pós-processamento
        • Scripts Públicos
        • Referência de Scripts do Postman
        • Chamando Outras Linguagens de Programação
        • Usando bibliotecas JS
        • Visualização de Respostas
        • Exemplos de scripts
          • Scripts de assertiva
          • Usando Variáveis
          • Modificando Requisições
          • Outros exemplos
    • Depuração de APIs
      • AI Agent Debugger
      • A2A Debugger
  • Projetar APIs
    • Visão geral
    • Criar um Novo Projeto de API
    • Conceitos Básicos de Endpoint
    • Diretrizes de Design de API
    • Módulo
    • Configurar vários exemplos de corpo da requisição
    • Componentes
    • Campos Comuns
    • Parâmetros Globais
    • Histórico de Alterações do Endpoint
    • Comentários
    • Gerenciamento de Endpoints em Lote
    • API de Protocolo Personalizado
    • Modo Spec-first (Beta)
    • Esquemas de segurança
      • Visão geral
      • Criar um esquema de segurança
      • Usar o Security Scheme
      • Esquema de segurança na documentação online
    • Recursos avançados
      • Campos de Endpoint Personalizados
      • Cenários de Teste Associados
      • Status do endpoint
      • Aparência das Listas de Parâmetros
      • Identificação Única de Endpoint
    • Schemas
      • Visão geral
      • Criar um Novo Schema
      • Criar um Schema
      • Gerar schemas a partir de JSON etc.
      • oneOf, allOf, anyOf
      • Usando Discriminator
  • Branches
    • Visão geral
    • Criando uma Branch de Sprint
    • Testando APIs em uma Branch
    • Projetando APIs em uma branch
    • Mesclando branches de sprint
    • Gerenciando Branches de Sprint
    • AI Branch (Beta)
  • Testes de API
    • Visão geral
    • Cenários de teste
      • Criar um cenário de teste
      • Passar Dados Entre Requisições
      • Condições de Controle de Fluxo
      • Sincronizar dados de endpoints e casos de endpoint
      • Importar Endpoints e Casos de Endpoint de Outros Projetos
      • Exportar Cenários de Teste
    • Relatórios de teste
      • Relatórios de teste
    • Executar cenários de teste
      • Executar um cenário de teste
      • Executar cenários de teste em lote
      • Testes Orientados por Dados
      • Dados de Teste Compartilhados
      • Tarefas agendadas
      • Gerenciar o ambiente de execução de APIs de outros projetos
    • Suíte de testes
      • Visão geral
      • Criar Uma Suíte de Testes
      • Orquestrar Suite de Testes
      • Executar Suítes de Teste Localmente
      • Executar Suítes de Teste Via CLI
      • Tarefas agendadas
    • Testar APIs
      • Teste de integração
      • Teste de desempenho
      • Testes de Ponta a Ponta
      • Teste de regressão
      • Teste de Contrato
    • Apidog CLI
      • Visão geral
      • Instalando e executando o Apidog CLI
      • Opções da CLI do Apidog
    • CI/CD
      • Visão geral
      • Integrar com Github Actions
      • Integre com o Gitlab
      • Integrar com o Jenkins
      • Acionar teste por commit do Git
  • Publicar documentação de API
    • Visão geral
    • Tecnologias de API Suportadas
    • Compartilhamento rápido
    • Visualização da documentação da API
    • Documentação em Markdown
    • Publicação de sites de documentação
    • Página de login personalizada
    • Layouts Personalizados
    • CSS, JavaScript e HTML personalizados
    • Domínio Personalizado
    • Recursos de IA
    • Configurações de SEO
    • Configurações avançadas
      • Pesquisa na documentação
      • Proxy CORS
      • Integração com o Google Analytics
      • Configurações da Árvore de Pastas
      • Configurações de Visibilidade
      • Incorporação de valores em URLs de documentação
    • Versões da API
      • Visão geral
      • Criando versões de API
      • Publicação de Versões da API
      • Compartilhamento de Endpoints com Versões da API
  • Recursos de IA
    • Visão geral
    • Habilitando recursos de IA
    • Geração de Casos de Teste
    • Modificando esquemas com IA
    • Verificação de conformidade de endpoint
    • Verificação de Completude da Documentação da API
    • Nomeação de Campos com IA
    • Perguntas frequentes
  • Servidor MCP do Apidog
    • Visão geral
    • Conectar projeto Apidog à IA
    • Conectar documentação publicada à IA
    • Conectar Arquivos OpenAPI à IA
  • Boas práticas
    • Como lidar com assinaturas de API
    • Acessando APIs protegidas por OAuth 2.0
    • Fluxo de Trabalho de Colaboração
    • Gerenciamento do Estado de Autenticação
  • Espaço offline
    • Visão geral
  • Administração
    • Gerenciamento de projetos
      • Gerenciamento de Projetos
      • Configurações de notificação
      • Gerenciamento de membros do projeto
      • Recursos do projeto
        • Conexão com Banco de Dados
        • Conexão Git
    • Gerenciamento de equipes
      • Gerenciando equipes
      • Gerenciando membros da equipe
      • Atividades da Equipe
      • Funções e permissões da equipe
      • Recursos da equipe
        • General Runner
        • Variáveis de Equipe
        • Agente de Proxy de Requisições
      • Colaborações em tempo real
        • Colaboração em Equipe
    • Checklist de integração
      • Conceitos Básicos
      • Guia de Onboarding
    • Gerenciamento da organização
      • Gerenciamento de Organização
      • Funções e permissões da organização
      • Gerenciamento de planos
        • Gerentes de cobrança em organizações
      • Single Sign-On (SSO)
        • Visão geral do SSO
        • Configurando o Microsoft Entra ID
        • Configurando o Okta
        • Configurando SSO para uma organização
        • Gerenciamento de contas de usuário
        • Mapeamento de Grupos para Equipes
      • Provisionamento SCIM
        • Introdução ao provisionamento SCIM
        • Microsoft Entra ID
        • Okta
      • Recursos da organização
        • Runner Auto-Hospedado
  • Apidog Europe
    • Apidog Europe
  • Cobrança
    • Visão geral
    • Créditos
    • Atualizando seu plano
    • Métodos de Pagamento Alternativos
    • Gerenciamento de assinaturas
    • Movendo equipes pagas para organizações
  • Complementos
    • Hub de APIs
    • Plugin Apidog Intellij IDEA
    • Extensão do navegador
      • Chrome
      • Microsoft Edge
    • Proxy de requisições
      • Proxy de Requisição na Web
      • Proxy de Requisição em Documentação Compartilhada
      • Proxy de Requisição no Cliente
  • Dados e segurança
    • Armazenamento e Segurança de Dados
    • Privacidade e Segurança dos Dados do Usuário
    • Roteamento de Requisições e Segurança de Dados
  • Referências
    • Abordagem API Design-First
    • Extensões da especificação OpenAPI do Apidog
    • JSONPath
    • XPath
    • Expressões Regulares
    • JSON Schema
    • Formato de Arquivo CSV
    • Instalando o ambiente Java
    • Ambiente de Implantação do Runner
    • Sintaxe Markdown do Apidog
    • Extensões Swagger do Apidog
      • Visão geral
      • x-apidog-folder
      • x-apidog-status
      • x-apidog-name
      • x-apidog-maintainer
    • Extensões JSON Schema do Apidog
      • Visão geral
      • x-apidog-mock
      • x-apidog-orders
      • x-apidog-enum
  • Central de suporte
  1. Uso de scripts

Chamando Outras Linguagens de Programação

O Apidog permite que você execute programas externos (scripts, JARs, binários) a partir do seu ambiente Javascript. Isso permite que você aproveite código existente em linguagens como Java, Python, PHP, Go, Shell etc.
Aviso de Segurança
Programas externos são executados fora do sandbox do Apidog e têm acesso total ao seu sistema. Certifique-se de confiar no código que você está executando.

Linguagens Compatíveis#

O Apidog infere o comando de execução com base nas extensões dos arquivos:
LinguagemExtensãoPrefixo do Comando
Java.jarjava -jar
Python.pypython
Node.js.jsnode
PHP.phpphp
Go.gogo run
Shell.shsh
Ruby.rbruby
Lua.lualua

Como Chamar Programas Externos#

1.
Abrir o Diretório de Programas Externos: Clique no ícone de pasta no editor de scripts para abrir o diretório onde seus scripts externos devem ser colocados.
Diretório de Programas Externos
2.
Executar via Script: Use pm.executeAsync para chamar o programa.

Referência da API#

pm.executeAsync#

filePath string Caminho do programa externo
args string[] Parâmetros. Ao chamar métodos especificados em um pacote jar, JSON.stringify será usado para conversão. Exceto nesse caso, tipos não string serão convertidos implicitamente para string.
options Object
command string O comando de execução do programa externo; a primeira parte do "prefixo do comando" é o comando de execução. Opcional, o valor padrão é inferido automaticamente (consulte a tabela de "prefixo do comando" acima), pode ser personalizado para qualquer programa.
cwd string Diretório de trabalho do subprocesso. Opcional, o padrão é "Diretório de Programas Externos".
env Record<string, string> Variáveis de ambiente do subprocesso. Opcional, o padrão é {}.
windowsEncoding string Codificação usada no sistema Windows. Opcional, o padrão é "cp936".
className string Especifique o nome da classe a ser chamada no pacote jar, por exemplo, "com.apidog.Utils".
method string Especifique o nome do método a ser chamado no pacote jar, por exemplo, "add".
paramTypes string[] Especifique os tipos de parâmetro do método a ser chamado no pacote jar, por exemplo, ["int", "int"].
Retorno: Promise<string>
Uso do parâmetro command
Por padrão, o Apidog usa python para executar arquivos .py. Se python3 já estiver instalado no computador, command poderá ser especificado como python3.

pm.execute#

Recomenda-se usar pm.executeAsync em vez disso.
pm.execute(filePath, args, options)
filePath string Caminho do programa externo
args string[] Parâmetros. Ao chamar métodos especificados em um pacote jar, JSON.stringify será usado para conversão. Exceto nesse caso, tipos não string serão convertidos implicitamente para string.
options Object
windowsEncoding string Codificação usada no sistema Windows. Opcional, o padrão é "cp936".
className string Especifique o nome da classe a ser chamada no pacote jar, por exemplo, "com.apidog.Utils".
method string Especifique o nome do método a ser chamado no pacote jar, por exemplo, "add".
paramTypes string[] Especifique os tipos de parâmetro do método a ser chamado no pacote jar, por exemplo, ["int", "int"].
Retorno: string

Execução e Logs#

Ao executar um programa, o comando executado será impresso no console (somente para referência). Se o resultado não atender às expectativas, você poderá copiar o comando e colá-lo em Shell/CMD para depurar.
O console também imprimirá a "saída padrão (stdout)" e a "saída de erro padrão (stderr)" do processo executado. O conteúdo de stdout (excluindo o caractere de nova linha final) será o resultado final da execução.
TIP
Por motivos históricos, pm.execute trata a execução como falha quando há conteúdo em stderr. Isso faz com que alguns programas falhem ao gerar avisos ou mensagens de erro. pm.executeAsync passa a usar o código de saída do processo para determinar se a execução falhou.

Entrada e Saída de Programas Externos#

Parâmetros#

Como o programa externo especificado é executado pela linha de comando, ele só pode obter os parâmetros passados por meio de argumentos da linha de comando.
Por exemplo, no script pm.executeAsync('add.js', [2, 3]), o comando realmente executado é node add.js 2 3. Para obter os parâmetros no script externo add.js:
TIP
1.
Diferentes linguagens de programação têm diferentes formas de obter argumentos da linha de comando; consulte a documentação da linguagem correspondente.
2.
O tipo dos argumentos da linha de comando é sempre string; é necessário converter com base nos tipos reais.

Valor de Retorno#

Como mencionado acima, o Apidog usa o conteúdo de stdout como o resultado da execução do programa. Portanto, imprimir conteúdo em stdout pode retornar resultados.
Por exemplo, no script const result = await pm.executeAsync('add.js', [2, 3]), o resultado pode ser retornado por:
1.
Diferentes linguagens de programação têm diferentes formas de imprimir em stdout; consulte a documentação da linguagem correspondente.
2.
O tipo de retorno é string; é necessário converter com base nos tipos reais.
3.
O caractere de nova linha final do resultado será removido.
4.
Ao chamar métodos especificados em pacotes jar, o valor de retorno do método chamado será usado como o valor de retorno final.

Lançando Erros#

Lançar erros pode fazer a tarefa atual falhar e interromper a execução. Por exemplo:
1.
Diferentes linguagens de programação têm diferentes formas de lançar erros; consulte a documentação correspondente.
2.
Em JavaScript, console.error('Error') apenas imprime em stderr, em vez de lançar um erro. Considere isso também ao usar outras linguagens.

Informações de Depuração#

Como pm.executeAsync usa o código de saída em vez de stderr para determinar o sucesso, stderr pode ser usado para imprimir informações de depuração sem afetar a execução.
Por exemplo:
TIP
1.
Somente pm.executeAsync oferece suporte a essa forma de imprimir informações de depuração.
2.
Diferentes linguagens de programação têm diferentes formas de imprimir em stderr; consulte a documentação correspondente.

Migrar de pm.execute para pm.executeAsync#

Como o valor de retorno de pm.executeAsync é do tipo Promise, execute não pode ser alterado diretamente para executeAsync. Mas você pode usar async/await para migrar com alterações mínimas.
TIP
O Apidog versão 2.3.24 ou posterior (CLI versão 1.2.38 ou posterior) oferece suporte a top-level await.
Etapas:
1.
Altere execute para executeAsync
2.
Adicione await antes da chamada da função

Chamar Métodos Especificados em Pacotes .jar#

TIP
Este recurso requer que a versão do Apidog seja 2.1.39 ou posterior. Ele oferece suporte apenas à chamada de jars com reflection, não a jars como Spring Boot que usam reflection interna em tempo de execução.
Por padrão, chamar um jar invocará o método main na classe Main. Se options.className for especificado, ele substituirá o comportamento padrão e chamará o método especificado no jar em vez disso.
Chamar métodos especificados em jars é diferente de outros programas externos. O Apidog usará um executor integrado para encontrar o método no jar por reflection e chamá-lo. Se o método chamado tiver um valor de retorno, ele será usado como o valor de retorno final após a conversão para string. Caso contrário, funcionará da mesma forma que outras chamadas, usando o conteúdo de stdout como valor de retorno.
Por exemplo:
O comando realmente executado é:
Onde <app-dist>/assets/JarExecuter-1.1.0-jar-with-dependencies.jar é o executor integrado, responsável por encontrar o método com.apidog.Test.combine(String,String) no programa do usuário ./scripts/jar-1.0-SNAPSHOT.jar por meio de reflection, e chamá-lo com os parâmetros (string JSON) "hello" e "world".
TIP
paramTypes é opcional. Se não for especificado, os tipos serão inferidos automaticamente com base nos parâmetros. Inteiros são inferidos como "int", floats como "double", booleanos como "boolean", strings como "String", arrays são inferidos com base no primeiro elemento, por exemplo, [3] é inferido como "int[]", [3.14] como "double[]" etc.
Se os tipos inferidos não corresponderem aos tipos de parâmetro reais do método chamado, paramTypes precisará ser especificado manualmente.
Valores compatíveis no array paramTypes: "Number"、"int"、"Integer"、"long"、"Long"、"short"、"Short"、"float"、"Float"、"double"、"Double"、"boolean"、"Boolean"、"String"、"Number[]"、"int[]"、"Integer[]"、"long[]"、"Long[]"、"short[]"、"Short[]"、"float[]"、"Float[]"、"double[]"、"Double[]"、"boolean[]"、"Boolean[]"、"String[]"
Portanto, o paramTypes no exemplo acima pode ser omitido:

Exemplos#

1. Programa PHP#

Script:
test.php:

2. Programa Jar#

Script:
com.apidog.utils.jar:

Problemas Comuns#

1. Alguns programas exigem arquivos de configuração de projeto e gerarão erro se eles estiverem ausentes#

Rust e Go:
Rust:
could not find `Cargo.toml` in `<...>/ExternalPrograms` or any parent directory
Go:
go.mod file not found in current directory or any parent directory; see 'go help modules'
Solução: Use pm.executeAsync e especifique cwd.

2. MacOS tem Python 3 integrado, mas não Python 2#

Use pm.executeAsync e defina command como "python3".

3. Command xxx not found#

Instale o programa correspondente e adicione os diretórios necessários ao PATH do sistema. Consulte a documentação para a instalação do Java.

4. Chamar scripts externos imprime caracteres ilegíveis em alguns sistemas Windows#

Defina windowsEncoding como 'utf-8'
Modified at 2026-06-11 10:21:25
Previous
Referência de Scripts do Postman
Next
Usando bibliotecas JS
Built with