Início3 min

2025_08_20_Do Caus Manual à Confiança Autamatizada

Automação de testes de API no CSOnline

Da Necessidade ao Sistema: Como Construímos uma Suite de Testes Automatizados para APIs REST

2025_08_20_Do Caus Manual à Confiança Autamatizada

Christian Mulato 

Desenvolvedor Java Sênior | Especialista em Back-end | Jakarta, Spring Boot, REST APIs, Docker | Engenheiro Químico

20 de agosto de 2025

1.1     O Desafio Inicial

Durante o desenvolvimento do CSOnline, um sistema de gestão de entregas enterprise, nos deparamos com um problema comum mas crítico: como garantir que nossas APIs REST funcionassem consistentemente durante o desenvolvimento iterativo?

Com 7 módulos (Usuários, Entregadores, Clientes, Entregas, Equipes, SMS e Preços) e múltiplos endpoints CRUD, testar manualmente cada funcionalidade a cada deploy tornou-se insustentável.

1.2     A Primeira Abordagem

Tudo começou com um script simples: test-couriers.ps1. Era interativo, testava apenas um endpoint e requeria input manual. Funcionava, mas não escalava.

# Primeira versão - manual e limitada
Write-Host "Testando endpoint de couriers..."
$response = Invoke-RestMethod -Uri "http://localhost:8080/csonline/api/couriers"

1.3     A Virada: Pensamento Sistemático

Em agosto de 2025, decidimos abordar o problema de forma estruturada. A ideia foi simples: se temos padrões na API, podemos ter padrões nos testes.

Decisões arquiteturais tomadas:

1.4     A Implementação

Em uma tarde intensa, nasceram 7 scripts especializados:

Cada script seguia o mesmo padrão:

function Test-EntityCRUD {
    param([string]$BaseUrl, [string]$Entity)
 
    try {
        # GET - Lista
        $list = Invoke-RestMethod -Uri "$BaseUrl/$Entity"
        Write-Host "GET /$Entity : SUCESSO ($($list.Count) registros)" -ForegroundColor Green
 
        # GET - Individual (se lista não estiver vazia)
        if ($list.Count -gt 0) {
            $individual = Invoke-RestMethod -Uri "$BaseUrl/$Entity/$($list[0].id)"
            Write-Host "GET /$Entity/{id} : SUCESSO" -ForegroundColor Green
        }
 
        # POST, PUT, DELETE...
 
    } catch {
        Write-Host "ERRO em $Entity : $($_.Exception.Message)" -ForegroundColor Red
    }
}

1.5     As Ferramentas de Orquestração

Não bastava ter scripts individuais. Precisávamos de ferramentas para executá-los de forma inteligente:

1.6     As Descobertas

Os testes revelaram insights valiosos:

1.7     Os Benefícios Realizados

1.8     Lições Aprendidas

Técnicas:

Organizacionais:

1.9     O Resultado

Hoje, qualquer mudança no CSOnline pode ser validada em minutos:

# Um comando para testar tudo
.\run-tests.ps1
# Ou verificação rápida de saúde
.\run-tests.ps1 -HealthCheck

1.10  Próximos Passos

A jornada não para aqui. Estamos expandindo para:

1.11  Reflexão Final

Construir ferramentas de teste não é apenas sobre encontrar bugs. É sobre criar confiança. Confiança para refatorar, para experimentar, para inovar.

No desenvolvimento de software, a pergunta não é “se” algo vai quebrar, mas “quando”. Ter uma rede de segurança robusta transforma o medo de mudança em coragem para evolução.

1.12  Recursos e Contato

Call to Action: E você, como garante a qualidade das suas APIs durante o desenvolvimento? Compartilhe suas estratégias nos comentários!

Artigo baseado na experiência real de desenvolvimento do sistema CSOnline - um projeto enterprise de gestão de entregas com Jakarta EE, Vue 3 e WildFly.