Skip to main content

Ejecutar pruebas E2E nocturnas en staging

Programa a Devin para ejecutar cada noche tu suite de pruebas de extremo a extremo contra staging y crear tickets para los fallos.
AuthorCognition
CategoryAutomatizaciones
FeaturesAPI, Programaciones, Playbooks
Esta guía explica cómo gestionar programaciones a través de la API v3, lo cual resulta útil para flujos de trabajo de automatización e infraestructura como código. También puede crear y gestionar programaciones directamente en la interfaz de usuario de Devin sin ninguna configuración de API.
1

Configura un usuario de servicio para acceder a la API

Las sesiones programadas creadas a través de la API necesitan un usuario de servicio con los permisos adecuados. Lo configurarás una sola vez y luego usarás su API key en todas las llamadas que se muestran a continuación.
  1. Ve a app.devin.ai > Settings > Service Users y haz clic en Create Service User
  2. Asigna un rol que incluya el permiso ManageOrgSchedules
  3. Guarda la API key que se muestra después de crearlo: solo se muestra una vez y la usarás como tu token Bearer
Para obtener tu organization ID, llama al endpoint List Organizations con el token de tu usuario de servicio:
curl "https://api.devin.ai/v3/enterprise/organizations" \
  -H "Authorization: Bearer $DEVIN_API_KEY"
Exporta ambos valores para que los comandos de esta guía funcionen tal como se muestran:
export DEVIN_API_KEY="sk-your-service-user-key"
export ORG_ID="your-org-id"
Consulta la documentación de autenticación de la API para obtener más información sobre los usuarios de servicio y sus permisos.
2

Crea un playbook para la ejecución de prueba

Antes de crear la programación, escribe un playbook que indique a Devin exactamente cómo ejecutar tu suite E2E y qué hacer con los resultados. Ve a Settings > Playbooks y crea un nuevo playbook, o usa Advanced Devin para generar uno a partir de una descripción de tu flujo de pruebas. Aquí tienes un ejemplo para una suite de Playwright:Toma nota del ID del playbook después de guardarlo: lo necesitarás para la llamada a la API. Puedes encontrarlo en la URL cuando veas el playbook (app.devin.ai/.../playbooks/{playbook_id}).
Instala la integración con Linear para que Devin pueda crear tickets como parte del playbook. Al crear la programación, también puedes configurar un canal de Slack (por ejemplo, #qa-results) para que tu equipo reciba notificaciones automáticamente. Concede a Devin acceso de solo lectura a los secrets de tu entorno de staging (URL de bases de datos, API keys) mediante organization secrets si tus pruebas los necesitan.
3

Crear la programación nocturna mediante la API

Ahora utiliza el endpoint POST /v3/organizations/{org_id}/schedules para registrar la programación. Este ejemplo se ejecuta todas las noches a las 2:00 a. m. UTC:
curl -X POST "https://api.devin.ai/v3/organizations/$ORG_ID/schedules" \
  -H "Authorization: Bearer $DEVIN_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "title": "Nightly E2E — staging",
    "prompt": "Run the nightly E2E test suite against staging. Follow the playbook exactly.",
    "schedule_type": "recurring",
    "frequency": "0 2 * * *",
    "playbook_id": "your-playbook-id"
  }'
La respuesta incluye un schedule_id que usarás para gestionar esta programación más adelante. Guárdalo:
export SCHEDULE_ID="a1b2c3d4-e5f6-7890-abcd-ef1234567890"  # de la respuesta
El campo frequency usa la sintaxis estándar de cron. Algunas alternativas útiles:
PatternWhen it runs
0 2 * * *Cada noche a las 2 a. m. (UTC)
0 2 * * 1-5Solo noches de lunes a viernes
0 6 * * 1Todos los lunes a las 6 a. m. (UTC)
¿Por qué a las 2 a. m.? Quieres que las pruebas se ejecuten después de que el último despliegue del día se haya asentado en el entorno de staging, pero lo bastante temprano como para que los errores sean visibles cuando los ingenieros empiecen a trabajar. Ajústalo para que coincida con la zona horaria y la cadencia de despliegues de tu equipo.Consulta la documentación del endpoint Create schedule para ver todos los campos disponibles.
4

Revisa la primera ejecución y ajusta el prompt

Después de que la tarea programada se ejecute por primera vez, revisa la sesión para asegurarte de que Devin haya ejecutado las pruebas correctamente y que el resultado coincida con lo que esperas.
  1. Abre el panel de control de Devin y encuentra la sesión en Past Sessions — estará etiquetada con el nombre de la programación
  2. ¿Se ejecutó la suite de Playwright? ¿Se crearon tickets de Linear para fallos reales (no pruebas inestables)?
  3. Revisa el canal de Slack #qa-results para ver el mensaje de resumen
Problemas comunes en la primera ejecución y cómo solucionarlos:
  • Devin can’t access staging: Agrega tus variables de entorno de staging (como STAGING_API_KEY o DATABASE_URL) como organization secrets para que estén disponibles en cada sesión programada
  • Too many tickets from flaky tests: Agrega un reintento a tu playbook: “Vuelve a ejecutar cualquier prueba fallida una vez antes de crear un ticket. Crea tickets solo para las pruebas que fallen dos veces.”
  • Tests take too long: Acota el alcance de la suite — p. ej., “Solo ejecuta pruebas en tests/critical/ y tests/smoke/” — o aumenta el tiempo de espera de la sesión
5

Gestiona las programaciones como código

Una vez que tu ejecución nocturna sea estable, querrás gestionarla junto con el resto de tus programaciones: pausarla durante congelaciones de despliegue, actualizar el prompt cuando cambie tu suite de pruebas o crear una segunda programación para un entorno diferente.Pausa la programación durante una congelación de despliegue o una ventana de mantenimiento:
curl -X PATCH "https://api.devin.ai/v3/organizations/$ORG_ID/schedules/$SCHEDULE_ID" \
  -H "Authorization: Bearer $DEVIN_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"enabled": false}'
Vuelve a habilitarlo cuando finalice el período de congelación:
curl -X PATCH "https://api.devin.ai/v3/organizations/$ORG_ID/schedules/$SCHEDULE_ID" \
  -H "Authorization: Bearer $DEVIN_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"enabled": true}'
Enumera todas las programaciones para auditar qué se está ejecutando:
curl "https://api.devin.ai/v3/organizations/$ORG_ID/schedules" \
  -H "Authorization: Bearer $DEVIN_API_KEY"
Para equipos que gestionan múltiples programaciones, pídele a Devin que cree una CLI que sincronice las definiciones de programaciones a partir de un archivo de configuración YAML, para que puedas someter tus programaciones a control de versiones junto con tu configuración de pruebas: