3.3 KiB
Agent Platform Certification Tests
Este pacote executa uma validação operacional sem pytest, usando chamadas curl contra o backend na porta 8000 e gerando evidências em arquivos JSON, HTML e logs.
Ele foi montado para o projeto agent_framework_oci, usando os endpoints reais do backend:
GET /healthGET /debug/envPOST /debug/routeGET /debug/mcp/toolsPOST /debug/mcp/call/{tool_name}POST /gateway/messageGET /sessions/{session_id}/messagesGET /sessions/{session_id}/checkpoint
Como instalar
Copie a pasta agent_certification_tests para a raiz do projeto, ao lado do .env e do docker-compose.yml.
Exemplo:
unzip agent_certification_tests.zip
cp -R agent_certification_tests/* ./agent_framework_oci/
cd agent_framework_oci
Como subir a aplicação
Na raiz do projeto:
docker compose up -d --build
Confirme manualmente:
curl http://localhost:8000/health
curl http://localhost:5173
curl http://localhost:8100/health
curl http://localhost:8200/health
Como executar a certificação
./run_certification.sh
Com parâmetros:
BACKEND_URL=http://localhost:8000 \
FRONTEND_URL=http://localhost:5173 \
ENV_FILE=.env \
LOAD_VUS=10 \
LOAD_REQUESTS_PER_VU=5 \
./run_certification.sh
Sem teste de carga:
./run_certification.sh --skip-load
Evidências geradas
Cada execução cria uma pasta:
evidencias/YYYYMMDD_HHMMSS/
├── json/
├── logs/
├── html/report.html
└── report.json
O arquivo principal é:
open evidencias/<execucao>/html/report.html
No WSL/Linux:
xdg-open evidencias/<execucao>/html/report.html
O que é validado
- Backend vivo em
:8000 - Configuração lida de
/debug/enve.env - Persistência local SQLite, quando
SQLITE_DB_PATHexistir - Lista de tools MCP
- Chamada direta às tools MCP
consultar_faturaeconsultar_pedido - Roteamento por
routerousupervisor - Fluxo E2E em
/gateway/message - Memória da sessão
- Checkpoint
- Guardrails básicos
- Langfuse, se habilitado no
.env - Frontend vivo
- Carga simples concorrente
Langfuse
Se ENABLE_LANGFUSE=true, o script tenta consultar a API pública do Langfuse usando:
LANGFUSE_HOST=http://localhost:3005
LANGFUSE_PUBLIC_KEY=...
LANGFUSE_SECRET_KEY=...
Se as chaves não existirem, a evidência registra que Langfuse está habilitado, mas a validação da API não conseguiu ser feita.
Teste de carga com k6 opcional
Além do teste de carga interno em Python, há um script k6:
BACKEND_URL=http://localhost:8000 K6_VUS=50 K6_DURATION=2m k6 run load/k6_gateway_load.js
Screenshot opcional do frontend
Instale Playwright no projeto:
npm init -y
npm i -D @playwright/test
npx playwright install chromium
Execute:
FRONTEND_URL=http://localhost:5173 npx playwright test playwright/frontend_smoke.spec.js
A screenshot será salva em:
evidencias/screenshots/frontend-smoke.png
Observação importante
Os testes de guardrail e judge dependem das regras ativas, do LLM configurado e da forma como o backend responde. Por isso, alguns cenários são tratados como validação de comportamento/evidência, não como teste unitário rígido.