Você recebeu um endpoint SOAP: talvez um conversor de moeda legado usado pela equipe de cobrança ou um serviço de pedidos executado por um parceiro em .NET. Para validá-lo, você precisa enviar um envelope XML completo, usar o Content-Type correto, conferir a resposta e garantir que o contrato continue funcionando conforme o código ao redor evolui.
O Apidog permite trabalhar com SOAP e WebService no mesmo workspace de REST, GraphQL e gRPC. Neste guia, você verá dois fluxos práticos:
- Enviar uma requisição SOAP manualmente.
- Importar um WSDL para gerar operações e ambiente automaticamente.
Para comparar protocolos antes de começar, veja REST, GraphQL, gRPC e SOAP. Para a estrutura formal do envelope, consulte a especificação SOAP do W3C.
O que muda ao testar SOAP
SOAP é um protocolo de comunicação baseado em XML. Ele permite que sistemas escritos em plataformas diferentes, como Java e .NET, se comuniquem por meio de um contrato definido.
Na prática, uma requisição SOAP exige atenção a três pontos:
- XML estruturado: requisições e respostas são documentos XML, não payloads JSON livres.
-
Envelope SOAP: a operação e seus parâmetros ficam dentro de um
soap:Envelope. -
Cabeçalhos específicos: o servidor espera um
Content-Typecompatível com a versão SOAP.
Se precisar revisar XML, use a referência XML da MDN.
Essa estrutura rígida é comum em integrações corporativas, sistemas legados e serviços que usam WS-Security para autenticação e criptografia. Você não pode tratar um endpoint SOAP como um endpoint REST comum: precisa enviar o envelope, os namespaces e os cabeçalhos corretos.
Para aprofundar a estrutura das mensagens, consulte o guia sobre APIs SOAP e XML.
Antes de começar
Para enviar requisições SOAP ou WebService, use o Apidog na versão 2.1.31 ou superior.
Antes de configurar a chamada:
- Abra o Apidog.
- Verifique a versão instalada.
- Atualize se necessário.
- Separe os dados do serviço:
- URL do endpoint;
- nome da operação;
- parâmetros esperados;
- arquivo WSDL, se disponível.
Um WSDL descreve operações, tipos de entrada, mensagens e endereços do serviço. Se você tiver esse arquivo, poderá importar a configuração em vez de escrever cada envelope manualmente.
Caminho A: enviar uma requisição SOAP manualmente
Use este caminho quando você já conhece o endpoint e a operação que deseja chamar.
Passo 1: configure o Content-Type
Defina o cabeçalho Content-Type manualmente na seção Headers da requisição.
Use um destes valores:
text/xml; charset=utf-8
ou:
application/soap+xml
Em geral:
- SOAP 1.1 costuma usar
text/xml; charset=utf-8. - SOAP 1.2 costuma usar
application/soap+xml.
Confirme o valor no WSDL ou na documentação do serviço. Se o servidor retornar um erro de tipo de conteúdo, teste o outro formato.
Passo 2: defina o corpo como XML e envie o envelope
No Apidog:
- Selecione o formato de corpo
xml. - Cole o envelope SOAP.
- Ajuste namespaces, operação e parâmetros conforme o WSDL.
Exemplo com a operação NumberToWords, que recebe o parâmetro ubiNum:
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:web="http://www.dataaccess.com/webservicesserver/">
<soap:Body>
<web:NumberToWords>
<web:ubiNum>1234</web:ubiNum>
</web:NumberToWords>
</soap:Body>
</soap:Envelope>
Leia o envelope de dentro para fora:
-
soap:Envelope: contêiner da mensagem SOAP. -
soap:Body: contém a chamada da operação. -
web:NumberToWords: nome da operação. -
web:ubiNum: parâmetro enviado para a operação.
Não adivinhe o namespace. Copie-o do WSDL ou da documentação do serviço.
Passo 3: valide a resposta XML
Envie a requisição. A resposta deve retornar outro envelope SOAP, geralmente com uma operação cujo nome termina em Response.
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<m:NumberToWordsResponse xmlns:m="http://www.dataaccess.com/webservicesserver/">
<m:NumberToWordsResult>one thousand two hundred and thirty four</m:NumberToWordsResult>
</m:NumberToWordsResponse>
</soap:Body>
</soap:Envelope>
Ao validar a resposta, confira:
- Se o envelope SOAP foi retornado.
- Se o nó esperado, como
NumberToWordsResponse, existe. - Se o valor em
NumberToWordsResultcorresponde ao resultado esperado.
A documentação em webservice.apidog.io contém mais referências de configuração e exemplos de envelopes SOAP.
Adapte o padrão à sua operação
A mecânica é sempre a mesma:
- Definir o
Content-Type. - Montar o envelope XML.
- Enviar a requisição.
- Ler e validar o XML de resposta.
Por exemplo, para uma operação de câmbio:
<web:ConvertCurrency>
<web:fromCurrency>BRL</web:fromCurrency>
<web:toCurrency>USD</web:toCurrency>
<web:amount>100</web:amount>
</web:ConvertCurrency>
Para consultar o status de um pedido:
<web:GetOrderStatus>
<web:orderId>ORD-12345</web:orderId>
</web:GetOrderStatus>
Caminho B: importar um WSDL para gerar operações
Escrever envelopes manualmente funciona bem para uma chamada isolada. Quando o serviço expõe várias operações, importe o WSDL para criar a estrutura do projeto com menos trabalho manual.
Importe o arquivo WSDL
No Apidog:
- Vá para Configurações.
- Selecione Importar Dados.
- Escolha
WSDL. - Faça upload de um arquivo
.wsdlou.xml. - Revise a prévia dos endpoints identificados.
- Abra a aba
Environments. - Confira o endereço do serviço.
- Clique em
Confirmar. - Selecione o ambiente importado no canto superior direito.
- Envie uma requisição para uma das operações importadas.
Após a importação, o Apidog cria automaticamente o ambiente com a URL base do serviço.
Verifique o endereço antes de confirmar
Não pule a validação do ambiente.
O endereço definido no WSDL será usado pelas requisições importadas. Se ele apontar para staging, um host desativado ou uma URL de exemplo, suas chamadas serão enviadas ao destino errado.
Antes de clicar em Confirmar:
- abra
Environments; - valide a URL do serviço;
- corrija o host, se necessário.
Selecione o ambiente importado
A URL Base fica vinculada ao ambiente criado durante a importação.
Se você não selecionar esse ambiente, as requisições podem falhar por não terem uma URL base aplicada. Portanto, antes de executar uma operação:
- Abra o seletor de ambiente no canto superior direito.
- Escolha o ambiente importado.
- Envie a requisição.
Depois disso, cada operação do WSDL aparece como um endpoint chamável. Você ainda deve validar a resposta XML, da mesma forma que no fluxo manual.
Se estiver migrando um projeto completo, veja o guia para importar projetos SOAP.
A importação documentada aceita arquivos
.wsdle.xml. A importação por URL ou por colagem direta do conteúdo WSDL não é documentada; faça upload do arquivo.
Vindo do SoapUI
Se seus testes SOAP estão no SoapUI, você não precisa reconstruir todas as operações manualmente.
O fluxo recomendado é:
- Exporte ou preserve o WSDL atual.
- Importe o arquivo no Apidog.
- Revise o ambiente criado.
- Execute e valide as operações importadas.
- Adicione asserções e cenários de teste.
Isso permite manter operações SOAP, endpoints REST e cenários de teste no mesmo workspace. Para comparar os fluxos, consulte Apidog versus SoapUI.
Adicione asserções à resposta SOAP
Uma resposta com status de sucesso apenas confirma que o endpoint respondeu. Para validar o contrato, crie asserções sobre o conteúdo do envelope XML.
Verifique, por exemplo:
- se o nó de resposta esperado está presente;
- se o elemento de resultado existe;
- se o valor retornado respeita as regras de negócio;
- se mensagens de erro SOAP são tratadas corretamente.
Para uma operação de moeda:
- valide se o valor convertido é numérico;
- valide se está dentro de um intervalo esperado.
Para uma operação de pedido:
- valide se o status retornado pertence aos valores permitidos;
- valide se o
orderIdretornado corresponde ao enviado.
Você também pode encadear chamadas em um cenário, como:
- Criar um pedido.
- Extrair o identificador retornado.
- Consultar o status usando esse identificador.
- Validar a transição de estado.
O guia sobre como escrever um cenário de teste com Apidog mostra como reutilizar valores extraídos em requisições posteriores.
Esse padrão é independente de protocolo: um cenário pode combinar chamadas SOAP e REST no mesmo fluxo.
Inclua WS-Security quando necessário
Serviços SOAP protegidos frequentemente usam WS-Security para autenticação e criptografia de mensagens.
Nesse caso, o cabeçalho de segurança faz parte do próprio envelope SOAP. Adicione o bloco wsse no cabeçalho do envelope antes do soap:Body.
A estrutura geral fica assim:
<soap:Envelope>
<soap:Header>
<!-- Bloco wsse de segurança -->
</soap:Header>
<soap:Body>
<!-- Operação SOAP -->
</soap:Body>
</soap:Envelope>
A mecânica de envio não muda:
- Configure o
Content-Type. - Defina o corpo como XML.
- Inclua o envelope completo, com segurança e operação.
- Envie a requisição.
- Valide a resposta.
Automatize cenários com a CLI do Apidog
Depois de salvar suas requisições SOAP ou operações importadas por WSDL como cenários de teste, use a CLI do Apidog para executá-los pela linha de comando.
Instale a CLI com Node.js v16 ou superior:
npm install -g apidog-cli
apidog login --with-token <YOUR_ACCESS_TOKEN>
Execute um cenário salvo com o ambiente criado pela importação do WSDL:
apidog run --access-token $APIDOG_ACCESS_TOKEN -t <scenario_id> -e <env_id> -r cli
Parâmetros:
-
-t: ID do cenário de teste. -
-e: ID do ambiente. -
-r: reporter, comocli,htmloujunit.
Para gerar vários formatos de relatório, separe os reporters por vírgula.
A documentação confirma a execução de cenários e suítes salvos. No entanto, ela não afirma especificamente se cenários construídos em etapas SOAP são executados sem interface gráfica. Trate a CLI como o runner dos cenários HTTP do projeto e valide seu fluxo SOAP no pipeline antes de depender dele em produção.
Para integrar esses testes à automação, veja o guia CI/CD da CLI do Apidog.
FAQ
Qual Content-Type devo usar em uma requisição SOAP?
Use um destes valores:
text/xml; charset=utf-8
application/soap+xml
SOAP 1.1 geralmente usa text/xml; charset=utf-8, enquanto SOAP 1.2 geralmente usa application/soap+xml. Confirme no WSDL ou na documentação do serviço.
Preciso de um plano pago para testar SOAP no Apidog?
O requisito documentado é usar o Apidog na versão 2.1.31 ou superior. Não há uma restrição documentada de plano ou hospedagem própria para suporte a SOAP ou importação de WSDL.
Posso importar um WSDL por URL?
A importação documentada aceita arquivos .wsdl e .xml. A importação por URL ou por colagem do conteúdo WSDL não é documentada, então use o upload do arquivo.
Como testo SOAP e REST no mesmo projeto?
Mantenha ambos no mesmo workspace. Você pode salvar operações SOAP e endpoints REST juntos e conectá-los em cenários de teste.
Se também trabalha com GraphQL, consulte o guia para testar APIs GraphQL no Apidog.
Minhas requisições importadas via WSDL estão indo para o servidor errado. O que verificar?
Verifique dois pontos:
- O endereço configurado em
Environmentsdurante a importação. - O ambiente ativo no canto superior direito antes de enviar a requisição.
Se necessário, reimporte o WSDL, corrija a URL do serviço antes de confirmar e selecione o ambiente correto.
Conclusão
Para testar um serviço SOAP no Apidog, escolha o fluxo que melhor se encaixa no seu caso:
-
Chamada isolada: configure o
Content-Type, defina o corpo comoxml, monte o envelope e valide a resposta. - Serviço com várias operações: importe o WSDL, revise o ambiente e execute os endpoints gerados.
Nos dois casos, o objetivo é o mesmo: transformar uma chamada SOAP manual em uma verificação repetível do contrato do serviço.
Baixe o Apidog, use a versão 2.1.31 ou superior, importe seu WSDL e inclua serviços legados na mesma estratégia de testes do restante das suas APIs.
Top comments (0)