1. El Rol de STELA en la Cultura DevOps #
La adopción de DevOps busca acelerar la entrega, pero la velocidad sin control es un riesgo. STELA se integra en este ciclo como un auditor automático que responde: «¿Está este software listo para producción?».
Conceptos Clave: ¿Qué puedo ejecutar? #
La API permite orquestar tres niveles de automatización:
- Automatización (Robot): Un flujo de prueba individual (ej. «Crear Cliente»).
- Carpeta: Un conjunto de robots. Al ejecutarla, se disparan todos los robots contenidos en ella.
- Escenario: La herramienta más potente para pruebas con datos variables. Permite ejecutar uno o varios robots inyectando diferentes sets de datos (ej. probar un Login con usuario correcto, incorrecto y bloqueado).
2. Arquitecturas de Integración #
Seleccione el modelo que mejor se adapte a la seguridad de su red:
Modelo A: Ejecución Remota (Nube / Servidor) #
Ideal para aplicaciones públicas.
El orquestador envía una orden ligera (JSON). Los servidores de STELA descargan el robot y ejecutan la prueba en su propia infraestructura.
Modelo B: Ejecución Local (En Agente / On-Premise) #
Recomendado para Intranets, VPNs o redes cerradas.
El servidor de STELA no tiene acceso a su aplicación. La solución es descargar el robot desde la API y ejecutarlo usando el motor de STELA instalado en su agente de CI/CD.
- El Pipeline consume la API de descarga (
/download/...). - Recibe un archivo ZIP con los archivos fuente.
- Descomprime el ZIP en el espacio de trabajo.
- Invoca el motor local
stela.bat(Windows) ostela.sh(Linux).
3. Manual Técnico: API CI/CD #
Documentación de los servicios disponibles. Descargue la especificación oficial aquí:
Documento PDF con definiciones técnicas completas.
A. Prerrequisitos #
Obtenga su Token de Proyecto y los IDs necesarios siguiendo la guía de Obtención de ID y Token.
B. Servicios de Ejecución y Consulta (Modelo Remoto) #
| Método | Endpoint | Descripción y Cuerpo (Body) |
|---|---|---|
| POST | /execute/automation | Ejecuta un robot único. JSON: {"id_automation": "...", "token": "..."} |
| POST | /execute/folder | Ejecuta una carpeta completa. JSON: {"id_folder": "...", "token": "..."} |
| POST | /execute/scenario | Ejecuta un escenario de pruebas. JSON: {"id_Scenario": "...", "token": "..."} |
| GET | /execute/status | Consulta si terminó (1=En curso, 2=Fin). Params: ?exe_token=...&token=... |
| GET | /execute/result | ¡Nuevo! Consulta si pasó o falló (PASSED/FAILED). Params: ?exe_token=...&token=... |
| GET | /execute/evidence | Descarga un ZIP con logs y capturas. Params: ?exe_token=...&token=... |
C. Servicios de Descarga (Modelo Local) #
Utilice estos servicios para obtener el paquete ZIP y ejecutarlo en su infraestructura.
| Método | Endpoint | Parámetros (Query String) |
|---|---|---|
| GET | /download/automation | Descarga un robot.?token=TU_TOKEN&id=ID_ROBOT |
| GET | /download/folder | Descarga una carpeta.?token=TU_TOKEN&id=ID_CARPETA |
| GET | /download/scenario | Descarga un escenario.?token=TU_TOKEN&id=ID_ESCENARIO |
4. Implementación en Flujos de Trabajo (Pipelines) #
Escenario 1: Jenkins (Ejecución Remota) #
💡 Tip: Ver Guía Paso a Paso de Integración con Jenkins.
# Ejemplo para ejecutar un ROBOT individual
STELA_URL="https://stela.midominio.com/STELAUI_API_CICD"
ROBOT_ID="99"
echo "Iniciando Robot..."
# Nota: Para escenarios usar /execute/scenario e id_Scenario
RESPONSE=$(curl -s -X POST $STELA_URL/execute/automation \
-H "Content-Type: application/json" \
-d "{\"id_automation\": \"$ROBOT_ID\", \"token\": \"$STELA_TOKEN\"}")
EXE_TOKEN=$(echo $RESPONSE | jq -r '.exe_token')
echo "Ejecución iniciada. ID de Seguimiento: $EXE_TOKEN"
# (Aquí debería agregar un bucle consultando /execute/status hasta que finalice)
Escenario 2: Azure DevOps (Descarga y Ejecución Local) #
Este script completo realiza el ciclo: Descargar ZIP → Descomprimir → Ejecutar Localmente.
# --- CONFIGURACIÓN ---
$baseUrl = "https://stela.midominio.com/STELAUI_API_CICD"
$token = "$(STELA_TOKEN)" # Variable secreta definida en el Pipeline
$scenarioId = "55" # ID del escenario a descargar
$downloadPath = "$(System.DefaultWorkingDirectory)\scenario.zip"
$extractPath = "$(System.DefaultWorkingDirectory)\stela_scenario"
# Ruta donde está instalado el motor de STELA en el Agente
$stelaBin = "C:\Program Files\STELA\bin"
# 1. DESCARGAR ESCENARIO (ZIP)
$url = "$baseUrl/download/scenario?token=$token&id=$scenarioId"
Write-Host "Descargando escenario desde API..."
Invoke-WebRequest -Uri $url -OutFile $downloadPath
# 2. DESCOMPRIMIR
Write-Host "Descomprimiendo en: $extractPath"
Expand-Archive -LiteralPath $downloadPath -DestinationPath $extractPath -Force
# 3. EJECUTAR CON MOTOR LOCAL
Set-Location $stelaBin
Write-Host "Ejecutando stela.bat..."
# Ejecución: Apuntar al archivo .stela dentro de la carpeta descomprimida
.\stela.bat -project "$extractPath" -scenario "Default" -browser "Chrome"
# 4. VERIFICAR RESULTADO
if ($LASTEXITCODE -eq 0) {
Write-Host "##vso[task.complete result=Succeeded;]Prueba STELA Exitosa."
} else {
Write-Host "##vso[task.complete result=Failed;]La prueba falló."
exit 1
}
5. Resolución de Problemas #
Utilice la siguiente tabla para interpretar el código result devuelto por el servicio de estado (/execute/status):
| Código | Estado | Causa Probable y Solución |
|---|---|---|
| 1 | En Progreso | La prueba sigue corriendo. Solución: El pipeline debe esperar unos segundos y volver a consultar. |
| 2 | Finalizada | Ejecución completada con éxito. Acción: Puede consultar /execute/result para saber si pasó o falló. |
| -1 | No Existe | El exe_token es incorrecto o la sesión expiró. Solución: Verifique que capturó correctamente el ID en el paso de ejecución. |
| -2 | Error Inesperado | Fallo crítico en el motor de STELA (Crash). Solución: Verifique los logs del servidor STELA o contacte a soporte. |
| -3 | Sin Acceso | Permisos insuficientes. Solución: El Token usado no pertenece al proyecto del robot. Genere un nuevo token en el panel de administración. |
| 4 | Otros Errores | Error genérico o de parámetros. Solución: Valide el formato del JSON y los tipos de datos enviados. |