Apidog

Plataforma Colaborativa All-in-one para Desenvolvimento de API

Design de API

Documentação de API

Depuração de API

Mock de API

Testes Automatizados de API

Guia Completo Teste de Integração API com Código Prático

Oliver Kingsley

Oliver Kingsley

Updated on maio 20, 2025

O teste de integração de API garante que diferentes APIs funcionem juntas conforme o esperado. Este teste valida como vários componentes interagem, incluindo:

  • Autenticação de API
  • Paginação
  • Limite de taxa (Rate limiting)
  • Corpos de resposta (Response bodies)

Dica profissional: Para um teste de integração de API sem problemas, Apidog é a sua plataforma ideal. Ela simplifica o processo de simular fluxos de trabalho do mundo real, permitindo testar eficientemente como várias APIs interagem.

button

Principais Benefícios do Teste de Integração de API

  1. Confiabilidade e Precisão de Dados: Garante que os dados sejam transferidos corretamente entre sistemas e que as APIs funcionem de forma confiável.
  2. Tratamento de Erros: Ajuda a identificar e resolver erros, melhorando a forma como o sistema reage a respostas problemáticas de API.
  3. Otimização de Desempenho: Ajuda a identificar gargalos de desempenho, especialmente no tratamento de grandes volumes de dados.
  4. Manutenção de Compatibilidade: Garante que novas atualizações de API não quebrem o sistema.
  5. Segurança: Ajuda a detectar vulnerabilidades e proteger as trocas de dados.

Teste de Integração de API vs Teste Unitário

  • Teste Unitário: Testa componentes ou funções individuais isoladamente.
  • Teste de Integração: Testa como diferentes componentes (incluindo APIs) funcionam juntos. Ele verifica se a integração das APIs funciona como um todo.

Principais Etapas no Teste de Integração de API

  1. Desenvolver um Plano de Teste: Delinear os objetivos e cenários a serem testados.
  2. Criar Casos de Teste: Construir diferentes casos para cobrir vários casos de uso.
  3. Executar Testes: Executar os testes de integração.
  4. Rastrear, Relatar e Resolver Problemas: Identificar problemas dos testes, resolvê-los e rastrear o progresso.
  5. Retestar: Garantir que quaisquer correções resolvam o problema sem introduzir novos.
  6. Repetir: Melhorar continuamente a integração até que esteja livre de bugs.

Teste de Integração de API Usando Apidog

O Apidog simplifica significativamente o teste de integração de API, permitindo que engenheiros de QA projetem e executem cenários de teste complexos que simulam fluxos de trabalho do mundo real envolvendo várias APIs.

Por exemplo, em um processo de compra de animais de estimação, onde várias APIs interagem—como navegar por listas de animais, adicionar itens a um carrinho, fazer um pedido, realizar pagamentos e consultar detalhes do pedido—o Apidog facilita a configuração desses testes interconectados.

using Apidog for API integration testing

Engenheiros de QA podem criar cenários vinculando endpoints de API e transferindo dados entre eles, como passar um ID de pedido entre o endpoint "Criar Pedido" e os subsequentes endpoints de pagamento e consulta de pedido. O robusto tratamento de dados do Apidog permite isso salvando o ID do pedido como uma variável ou referenciando diretamente o valor de retorno da etapa anterior, simplificando o processo de teste.

data-transferring-between-apis

Para operações mais complexas, como ações em massa como adicionar vários animais a um carrinho, o loop ForEach do Apidog simplifica a tarefa inserindo automaticamente os IDs dos animais de um array em cada requisição de API.

Apidog ForEach loop for API integration testing

Uma vez que os cenários de teste são criados e executados, o Apidog gera relatórios de teste detalhados, que ajudam os engenheiros de QA a identificar e corrigir rapidamente problemas, garantindo que todas as APIs funcionem corretamente dentro de um fluxo de trabalho unificado.

api-integration-report-generated-by-apidog

Com as capacidades de teste de integração do Apidog, desenvolvedores podem simular eficientemente ações reais de usuários, testar múltiplos endpoints juntos e garantir trocas de dados contínuas entre APIs, tornando-o a plataforma ideal para desenvolvimento, teste e integração de API.

Saiba como o Apidog aprimora o teste de API e melhora a eficiência de teste para engenheiros de QA.

Melhores Práticas para Teste de Integração de API

  1. Usar Bibliotecas de Mocking: Use bibliotecas como requests_mock para simular interações de rede. Isso isola o teste e acelera o processo, evitando chamadas reais de API.
  2. Tratamento de Erros: Teste como seu sistema responde a vários erros de API (por exemplo, 404, 500) para garantir que ele não quebre.
  3. Testar Valores Limite: Use valores extremos para testar como o sistema os manipula.
  4. Compatibilidade Retroativa: Garanta que as alterações na API não quebrem sua funcionalidade existente.
  5. Dados Realistas: Use cenários realistas (por exemplo, dados reais de usuários, preços precisos) para testar como o sistema se comportará no mundo real.
  6. Manter Testes Atualizados: À medida que as APIs evoluem, atualize seus testes para permanecerem precisos e confiáveis.

Exemplo de Teste de Integração de API

Aqui está um exemplo prático de teste de integração de API usando Python e a biblioteca requests_mock.

Passo 1: Instalar Bibliotecas Necessárias

pip install requests requests_mock

Passo 2: Exemplo de Código de Integração de API

Este exemplo demonstra como integrar duas APIs públicas: uma para conversão de moeda e outra para verificar a disponibilidade de produtos com base em um código postal (zip code).

import requests

def get_converted_price(product_price: int, conversion_currency: str) -> float:
    converted_price = None
    base_currency = "usd"
    api_url = f"https://cdn.jsdelivr.net/gh/fawazahmed0/currency-api@1/latest/currencies/{base_currency}/{conversion_currency.lower()}.json"

    try:
        resp = requests.get(api_url)
        if resp.ok:
            currency_data = resp.json()
            converted_price = product_price * currency_data[conversion_currency]
            print(f"Converted price: {round(converted_price, 2)} {conversion_currency.upper()}")
        else:
            print(f"Error: {resp.text}")
    except Exception as ex:
        print(f"Exception: {ex}")
    finally:
        return converted_price

def get_product_availability(zipcode: int) -> bool:
    availability = None
    api_url = f"https://api.zippopotam.us/us/{zipcode}"

    try:
        resp = requests.get(api_url)
        if resp.ok:
            zip_data = resp.json()
            state = zip_data["places"][0]["state"]
            availability = False if state in ["Texas", "California"] else True
            print(f"Availability in {state}: {availability}")
        else:
            print(f"Error: {resp.text}")
    except Exception as ex:
        print(f"Exception: {ex}")
    finally:
        return availability

Passo 3: Testar Integrações de API

Você pode criar testes unitários para validar a integração usando unittest e requests_mock:

import unittest
import requests_mock
from api_integration import get_converted_price, get_product_availability

class TestAPIIntegrations(unittest.TestCase):

    def test_get_converted_price(self):
        test_data = {"usd": 82.6}
        expected_price = 8260
        with requests_mock.Mocker() as mock:
            mock.get("https://cdn.jsdelivr.net/gh/fawazahmed0/currency-api@1/latest/currencies/usd/inr.json", json=test_data)
            calculated_price = get_converted_price(100, "inr")
            self.assertEqual(calculated_price, expected_price)

    def test_get_converted_price_failure(self):
        with requests_mock.Mocker() as mock:
            mock.get("https://cdn.jsdelivr.net/gh/fawazahmed0/currency-api@1/latest/currencies/usd/inr.json", status_code=404)
            calculated_price = get_converted_price(100, "inr")
            self.assertIsNone(calculated_price)

    def test_get_product_availability_true(self):
        test_data = {"places": [{"state": "California"}]}
        with requests_mock.Mocker() as mock:
            mock.get("https://api.zippopotam.us/us/90210", json=test_data)
            availability = get_product_availability(90210)
            self.assertTrue(availability)

    def test_get_product_availability_false(self):
        test_data = {"places": [{"state": "Texas"}]}
        with requests_mock.Mocker() as mock:
            mock.get("https://api.zippopotam.us/us/75001", json=test_data)
            availability = get_product_availability(75001)
            self.assertFalse(availability)

    def test_get_product_availability_failure(self):
        with requests_mock.Mocker() as mock:
            mock.get("https://api.zippopotam.us/us/75001", status_code=500)
            availability = get_product_availability(75001)
            self.assertIsNone(availability)

if __name__ == '__main__':
    unittest.main(verbosity=2)

Passo 4: Executar os Testes de Integração de API

Para executar os testes, use o seguinte comando no seu terminal:

python api_integration_tests.py

Isso executará todos os testes e mostrará uma saída detalhada de cada um, incluindo se as respostas simuladas da API foram tratadas corretamente e se os resultados esperados foram alcançados.

Considerações Finais

O teste de integração de API garante que as APIs estejam funcionando juntas conforme o pretendido. Ao usar bibliotecas de mocking e casos de teste abrangentes, você pode verificar eficientemente o comportamento de integração do seu sistema. Sempre garanta que seus testes estejam atualizados à medida que suas APIs evoluem, e considere implementar testes automatizados para integração contínua.

Se você está procurando automatizar ainda mais o processo de integração, ferramentas como o Apidog oferecem uma API unificada para escalar e testar integrações rapidamente.