Skip to main content

Nächtliche E2E-Tests in der Staging-Umgebung ausführen

Plane Devin so ein, dass deine End-to-End-Test-Suite jede Nacht gegen die Staging-Umgebung läuft und Tickets für fehlgeschlagene Tests erstellt.
AuthorCognition
CategoryAutomatisierungen
FeaturesAPI, Zeitpläne, Playbooks
Diese Anleitung beschreibt die Verwaltung von Zeitplänen über die v3 API, was für Automatisierungs- und Infrastructure-as-Code-Workflows nützlich ist. Sie können Zeitpläne auch direkt in der Devin-Benutzeroberfläche erstellen und verwalten – ganz ohne API-Einrichtung.
1

Servicebenutzer für den API-Zugriff einrichten

Über die API erstellte geplante Sitzungen benötigen einen Service User mit den richtigen Berechtigungen. Sie richten ihn einmal ein und verwenden dann seinen API key in allen folgenden Aufrufen.
  1. Gehen Sie zu app.devin.ai > Settings > Service Users und klicken Sie auf Create Service User
  2. Weisen Sie eine Rolle zu, die die Berechtigung ManageOrgSchedules enthält
  3. Speichern Sie den nach der Erstellung angezeigten API key — er wird nur einmal angezeigt und Sie verwenden ihn als Ihren Bearer-Token
Um Ihre organization ID zu erhalten, rufen Sie den Endpunkt List Organizations mit Ihrem Service-User-Token auf:
curl "https://api.devin.ai/v3/enterprise/organizations" \
  -H "Authorization: Bearer $DEVIN_API_KEY"
Exportieren Sie beide Werte, damit die Befehle in dieser Anleitung wie angegeben funktionieren:
export DEVIN_API_KEY="sk-your-service-user-key"
export ORG_ID="your-org-id"
Weitere Informationen zu Servicebenutzern und Berechtigungen finden Sie in der Dokumentation zur API-Authentifizierung.
2

Schreiben Sie ein Playbook für den Testlauf

Bevor Sie den Zeitplan erstellen, schreiben Sie ein Playbook, das Devin genau vorgibt, wie Ihre E2E-Suite auszuführen ist und was anschließend mit den Ergebnissen zu tun ist. Gehen Sie zu Settings > Playbooks und erstellen Sie ein neues Playbook – oder verwenden Sie Advanced Devin, um aus einer Beschreibung Ihres Testworkflows automatisch eines zu generieren. Hier ist ein Beispiel für eine Playwright-Suite:Notieren Sie sich die Playbook-ID nach dem Speichern – Sie benötigen sie für den API-Aufruf. Sie finden sie in der URL, wenn Sie das Playbook anzeigen (app.devin.ai/.../playbooks/{playbook_id}).
Installieren Sie die Linear-Integration, damit Devin im Rahmen des Playbooks Tickets erstellen kann. Wenn Sie den Zeitplan erstellen, können Sie außerdem einen Slack-Channel (z. B. #qa-results) festlegen, sodass Ihr Team automatisch benachrichtigt wird. Gewähren Sie Devin nur Lesezugriff auf die Secrets Ihrer Staging-Umgebung (Datenbank-URLs, API keys) über organization secrets, falls Ihre Tests sie benötigen.
3

Richten Sie den nächtlichen Zeitplan über die API ein

Verwenden Sie nun den Endpoint POST /v3/organizations/{org_id}/schedules, um den Zeitplan zu registrieren. In diesem Beispiel wird der Zeitplan jede Nacht um 2:00 Uhr UTC ausgeführt:
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"
  }'
Die Antwort enthält eine schedule_id, die Sie später zur Verwaltung dieses Zeitplans verwenden. Speichern Sie sie:
export SCHEDULE_ID="a1b2c3d4-e5f6-7890-abcd-ef1234567890"  # aus der Antwort
Das Feld frequency verwendet die Standard-Cron-Syntax. Einige nützliche Alternativen:
PatternWhen it runs
0 2 * * *Jeden Tag um 2 Uhr morgens UTC
0 2 * * 1-5Nur an Wochentagen (Mo–Fr)
0 6 * * 1Jeden Montag um 6 Uhr morgens UTC
Warum 2 Uhr morgens? Sie möchten, dass Tests laufen, nachdem das letzte Deployment des Tages in der Staging-Umgebung stabil ist, aber früh genug, damit Fehler sichtbar sind, wenn Engineers mit der Arbeit beginnen. Passen Sie dies an die Zeitzone und Deployment-Frequenz Ihres Teams an.Siehe die Dokumentation zum Create‑Schedule‑Endpoint für alle verfügbaren Felder.
4

Überprüfen Sie den ersten Lauf und verfeinern Sie den Prompt

Nachdem der Zeitplan das erste Mal ausgelöst wurde, überprüfe die Session, um sicherzustellen, dass Devin die Tests korrekt ausgeführt hat und die Ausgabe deinen Erwartungen entspricht.
  1. Öffne das Devin-Dashboard und suche die Session unter Past Sessions – sie ist mit dem Namen des Zeitplans getaggt.
  2. Wurde die Playwright-Suite ausgeführt? Wurden Linear-Tickets für tatsächliche Fehler (nicht für flaky Tests) erstellt?
  3. Überprüfe den #qa-results Slack-Channel auf die Zusammenfassungsnachricht.
Häufige Probleme beim ersten Durchlauf und wie du sie behebst:
  • Devin kann nicht auf Staging zugreifen: Füge deine Staging-Umgebungsvariablen (wie STAGING_API_KEY oder DATABASE_URL) als organization secrets hinzu, damit sie in jeder geplanten Session verfügbar sind.
  • Zu viele Tickets durch flaky Tests: Füge deinem Playbook einen Retry hinzu: “Führe jeden fehlgeschlagenen Test einmal erneut aus, bevor du ein Ticket erstellst. Erstelle nur Tickets für Tests, die zweimal fehlschlagen.”
  • Tests dauern zu lange: Schränke den Umfang der Suite ein – z. B. “Führe nur Tests in tests/critical/ und tests/smoke/ aus” – oder erhöhe das Session-Timeout.
5

Zeitpläne als Code verwalten

Sobald Ihr nächtlicher Durchlauf stabil ist, sollten Sie ihn gemeinsam mit Ihren anderen Zeitplänen verwalten — ihn während Deployment-Freezes pausieren, den Prompt aktualisieren, wenn sich Ihre Testsuite ändert, oder einen zweiten Zeitplan für eine andere Umgebung einrichten.Pausieren Sie den Zeitplan während eines Deployment-Freezes oder Wartungsfensters:
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}'
Aktiviere es wieder, sobald der Freeze endet:
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}'
Alle Zeitpläne auflisten, um zu prüfen, was aktuell läuft:
curl "https://api.devin.ai/v3/organizations/$ORG_ID/schedules" \
  -H "Authorization: Bearer $DEVIN_API_KEY"
Für Teams, die mehrere Zeitpläne verwalten müssen, können Devin bitten, ein CLI-Tool zu erstellen, das Zeitplandefinitionen aus einer YAML-Konfigurationsdatei synchronisiert — sodass Sie Ihre Zeitpläne zusammen mit Ihrer Testkonfiguration unter Versionskontrolle stellen können: