Skip to main content

Esegui test E2E notturni sull'ambiente di staging

Pianifica Devin perché esegua la tua suite di test end-to-end sull'ambiente di staging ogni notte e apra ticket per i test falliti.
AuthorCognition
CategoryAutomazioni
FeaturesAPI, Pianificazioni, Playbook
Questa guida illustra come gestire le pianificazioni tramite le API v3, utili per flussi di lavoro di automazione e infrastructure-as-code. È anche possibile creare e gestire le pianificazioni direttamente nell’interfaccia utente di Devin senza alcuna configurazione API.
1

Configura un utente di servizio per l'accesso alle API

Le sessioni pianificate create tramite l’API richiedono un service user con le autorizzazioni appropriate. Ne configurerai uno una volta sola, quindi userai la sua API key in tutte le chiamate riportate di seguito.
  1. Vai su app.devin.ai > Settings > Service Users e fai clic su Create Service User
  2. Assegna un ruolo che includa l’autorizzazione ManageOrgSchedules
  3. Salva l’API key mostrata dopo la creazione — viene visualizzata una sola volta e la utilizzerai come token Bearer
Per ottenere il tuo organization ID, chiama l’endpoint List Organizations con il token del tuo service user:
curl "https://api.devin.ai/v3/enterprise/organizations" \
  -H "Authorization: Bearer $DEVIN_API_KEY"
Esporta entrambi i valori in modo che i comandi in questa guida funzionino senza modifiche:
export DEVIN_API_KEY="sk-your-service-user-key"
export ORG_ID="your-org-id"
Consulta la documentazione sull’autenticazione delle API per ulteriori informazioni sugli utenti di servizio e sulle autorizzazioni.
2

Crea un playbook per l'esecuzione del test

Prima di creare la pianificazione, scrivi un playbook che indichi a Devin esattamente come eseguire la tua suite E2E e cosa fare con i risultati. Vai su Settings > Playbooks e crea un nuovo playbook — oppure usa Advanced Devin per generarne uno a partire da una descrizione del tuo workflow di test. Ecco un esempio per una suite Playwright:Prendi nota dell’ID del playbook dopo averlo salvato: ti servirà per la chiamata all’API. Puoi trovarlo nell’URL quando visualizzi il playbook (app.devin.ai/.../playbooks/{playbook_id}).
Installa l’integrazione Linear in modo che Devin possa creare ticket come parte del playbook. Quando crei la pianificazione, puoi anche impostare un canale Slack (ad esempio #qa-results) in modo che il tuo team riceva notifiche automatiche. Fornisci a Devin accesso in sola lettura ai secret del tuo ambiente di staging (URL del database, API key) tramite i secret dell’organizzazione, se i tuoi test ne hanno bisogno.
3

Crea la pianificazione notturna tramite l’API

Ora utilizza l’endpoint POST /v3/organizations/{org_id}/schedules per registrare la pianificazione. In questo esempio viene eseguito ogni notte alle 2:00 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 risposta include uno schedule_id che utilizzerai per gestire questa pianificazione in seguito. Salvalo:
export SCHEDULE_ID="a1b2c3d4-e5f6-7890-abcd-ef1234567890"  # dalla risposta
Il campo frequency utilizza la sintassi cron standard. Alcune alternative utili:
PatternQuando viene eseguito
0 2 * * *Ogni notte alle 2:00 UTC
0 2 * * 1-5Solo nei giorni feriali (lun-ven)
0 6 * * 1Ogni lunedì alle 6:00 UTC
Perché le 2:00? Vuoi che i test vengano eseguiti dopo che l’ultimo deploy della giornata si è stabilizzato in staging, ma abbastanza presto perché eventuali errori siano visibili quando gli ingegneri iniziano a lavorare. Regola l’orario in base al fuso orario del tuo team e alla frequenza dei deploy.Consulta la documentazione dell’endpoint Create schedule per tutti i campi disponibili.
4

Verificare la prima esecuzione e ottimizzare il prompt

Dopo che la pianificazione è scattata per la prima volta, controlla la sessione per assicurarti che Devin abbia eseguito i test correttamente e che l’output corrisponda alle tue aspettative.
  1. Apri la dashboard di Devin e trova la sessione sotto Past Sessions — sarà etichettata con il nome della pianificazione
  2. La suite Playwright è stata eseguita? Sono stati creati ticket in Linear per i reali errori (non per i test instabili)?
  3. Controlla il canale Slack #qa-results per il messaggio di riepilogo
Problemi comuni alla prima esecuzione e come risolverli:
  • Devin non può accedere allo staging: aggiungi le variabili d’ambiente dell’ambiente di staging (come STAGING_API_KEY o DATABASE_URL) come segreti dell’organizzazione in modo che siano disponibili in ogni sessione pianificata
  • Troppi ticket dovuti a test instabili (flaky): aggiungi un retry al tuo playbook: “Esegui nuovamente qualsiasi test non superato una volta prima di aprire un ticket. Apri ticket solo per i test che falliscono due volte.”
  • I test richiedono troppo tempo: limita l’ambito della suite — ad es., “Esegui solo i test in tests/critical/ e tests/smoke/” — oppure aumenta il timeout della sessione
5

Gestisci le pianificazioni come codice

Una volta che l’esecuzione notturna è stabile, vorrai gestirla insieme alle altre pianificazioni — mettendola in pausa durante i periodi di blocco dei deploy, aggiornando il prompt quando la tua suite di test cambia o avviando una seconda pianificazione per un ambiente diverso.Metti in pausa la pianificazione durante un periodo di blocco dei deploy o una finestra di manutenzione:
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}'
Riattivalo quando il freeze termina:
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}'
Elenca tutte le pianificazioni per controllare cosa è in esecuzione:
curl "https://api.devin.ai/v3/organizations/$ORG_ID/schedules" \
  -H "Authorization: Bearer $DEVIN_API_KEY"
Per i team che gestiscono più pianificazioni, chiedete a Devin di creare una CLI che sincronizzi le definizioni di pianificazione da un file di configurazione YAML, così da poter versionare le pianificazioni insieme alla configurazione dei test: