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.
Flujo Técnico Local:
- 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. |
Mejores Prácticas de Seguridad en DevOps #
- Gestión de Secretos: Nunca escriba el token directamente en el código del script. Utilice las variables seguras (Secrets/Credentials) de su orquestador (Jenkins, Azure DevOps) para inyectar el token en tiempo de ejecución.
- Rotación de Tokens: Si un miembro del equipo deja la organización, regenere inmediatamente el Token de Proyecto en el panel de administración de STELA para revocar accesos antiguos.
- Timeouts (Tiempos de Espera): Configure siempre un
timeouten su paso de pipeline (ej. 15 minutos). Si por alguna razón la prueba se cuelga, esto evitará que el pipeline quede bloqueado indefinidamente consumiendo recursos. - Limpieza de Espacio (Clean Workspace): En el modelo de ejecución local, asegúrese de agregar un paso final en el script para borrar la carpeta del robot descomprimido. Esto evita que el disco del agente se llene con archivos temporales tras múltiples ejecuciones.