dbxapp Wissen dbxSelfTest – vollständige Systemtests und JavaScript-Prüfungen

dbxSelfTest – vollständige Systemtests und JavaScript-Prüfungen

Betrieb & Sicherheit · Qualitätssicherung

dbxSelfTest ausführen und Ergebnisse verstehen

dbxSelfTest prüft eine Installation reproduzierbar aus dem Adminbereich oder per Kommandozeile. Der Testkatalog wird aus dem tatsächlich installierten System aufgebaut, jeder Lauf dauerhaft protokolliert und jedes Ergebnis bis zur einzelnen Prüfung nachvollziehbar angezeigt.

Empfehlung Starten Sie nach Installation, Update, Moduländerung oder Serverumzug zuerst den Schnelltest. Vor einer Veröffentlichung oder nach größeren Änderungen folgt der Kompletttest.

SelfTest öffnen

Melden Sie sich als Administrator an und wählen Sie System → System-Selbsttest. Der direkte interne Aufruf lautet ?dbx_modul=dbxSelfTest&dbx_run1=dashboard. Die Übersicht zeigt Anzahl und Bereiche der erkannten Tests, den aktuellen Lauf, den filterbaren Testkatalog und die letzten Ergebnisse.

Welcher Lauf ist der richtige?

Schnelltest

Kurzer Betriebscheck für Laufzeit, Schutzregeln, Einstiegspunkte, Cache und alle als schnell markierten Modulprüfungen.

Kompletttest

Führt den gesamten vorhandenen Katalog aus und ergänzt unter anderem PHP- und JavaScript-Syntax sowie Composer-Prüfungen.

Auswahl testen

Führt nur die im Katalog markierten Prüfungen aus. Filter nach Name, Datei oder Bereich erleichtern die gezielte Regression.

Einzeltest

Startet genau eine Prüfung und eignet sich zur Diagnose nach einer Korrektur.

Die angezeigte Testanzahl ist absichtlich dynamisch. Ein kompaktes Produktionspaket enthält vor allem die integrierten Systemprüfungen; eine Entwicklungsinstallation erkennt zusätzlich die PHP- und JavaScript-Tests der vorhandenen Module. Entscheidend ist deshalb nicht eine feste Zahl, sondern dass der erkannte Katalog vollständig und ohne Fehler durchläuft.

Was wird geprüft?

  • Laufzeit: PHP 8.2 oder neuer, benötigte Erweiterungen und sichere Prozessausführung.
  • Dateisystem: erforderliche Verzeichnisse, lokale Konfiguration und Schutz vor ausgelieferten Geheimnissen.
  • Module und Verträge: Einstiegspunkte, DD/FD-, Template-, Routing- und Sicherheitsverträge der installierten Komponenten.
  • Syntax: alle eigenen PHP-Dateien sowie – wenn Node.js vorhanden ist – alle eigenen JavaScript-Dateien.
  • Browser-Verhalten: JavaScript-Tests mit DOM, Ereignissen und UI-Verhalten laufen im Web-Dashboard in einem isolierten, unsichtbaren Browserrahmen.
  • Abhängigkeiten: Composer-Konfiguration und, sofern das Werkzeug erreichbar ist, der Composer-Sicherheitsaudit.
  • Integrität: Konfliktmarker und die Konsistenz des Gastseiten-Caches.

JavaScript ohne Node.js auf dem Webserver

Node.js ist für den Onlinebetrieb nicht erforderlich. Beim Start im Web-Dashboard übernimmt der bereits geöffnete Browser die JavaScript-Verhaltenstests. Dadurch lassen sich DOM, Ereignisse und Benutzerinteraktionen in der realen Browserumgebung prüfen. Die umfassende JavaScript-Syntaxprüfung des gesamten Dateibaums verwendet dagegen node --check; fehlt Node.js, wird genau diese Prüfung nachvollziehbar als übersprungen gemeldet und nicht als Systemfehler gewertet. Für Release- und Entwicklungsrechner wird Node.js empfohlen.

Lauf beobachten, stoppen und fortsetzen

  1. StartenProfil oder Auswahl bestätigen. Fortschritt, aktueller Test und Zähler werden laufend aktualisiert.
  2. Details öffnenJede Prüfung zeigt Status, Dauer, Exit-Code und Ausgabe. Fehler bleiben damit reproduzierbar.
  3. Kontrolliert stoppen„Lauf stoppen“ beendet nach dem aktuellen Arbeitsschritt. Bereits protokollierte Ergebnisse bleiben erhalten.
  4. FortsetzenEin unterbrochener Lauf kann ab dem nächsten noch offenen Test fortgesetzt werden. Veraltete laufende Protokolle werden nach zehn Minuten als unterbrochen erkannt.
  5. ExportierenÜber „JSON“ steht der vollständige, maschinenlesbare Bericht für Support, Archiv oder CI-Auswertung bereit.

Status richtig lesen

  • Bestanden: Die Prüfung hat ihren definierten Vertrag erfüllt.
  • Fehler: Details und Ausgabe prüfen, Ursache beheben und zunächst den Einzeltest wiederholen.
  • Übersprungen: Eine optionale Laufzeit wie Node.js oder Composer war nicht verfügbar. Beurteilen Sie, ob sie für Ihren Einsatz benötigt wird.
  • Läuft: Der Lauf ist aktiv. Bei langen Syntax- oder Integritätsprüfungen kann ein einzelner Schritt sichtbar länger dauern.
  • Unterbrochen: Browser, PHP-Prozess oder Server wurde beendet. Der Lauf kann fortgesetzt oder neu gestartet werden.

Kommandozeile und Automatisierung

php dbx/modules/dbxSelfTest/tools/run.php --profile=quick
php dbx/modules/dbxSelfTest/tools/run.php --profile=full
php dbx/modules/dbxSelfTest/tools/run.php --test=<test-id>
php dbx/modules/dbxSelfTest/tools/run.php --profile=full --json

Der CLI-Lauf eignet sich für Deployment-Skripte und geplante Prüfungen. Für JavaScript- Browsertests bleibt das Web-Dashboard die maßgebliche Umgebung; auf Build-Rechnern ergänzt Node.js die vollständige Syntaxprüfung.

Protokolle und Datenschutz

Laufberichte liegen als JSON unter files/sys/selftest. Die Historie behält die letzten 20 Läufe. Die Schnittstellen akzeptieren ausschließlich serverseitig erkannte Testkennungen und schützen ändernde Aktionen mit Aktionstokens; eine Anfrage kann keinen beliebigen Shell-Befehl einschleusen. Trotzdem sollen Testausgaben niemals Passwörter, Tokens oder vollständige lokale Konfigurationen enthalten.

Grenze des Selbsttests Ein grüner Lauf ersetzt weder Backup und Wiederherstellungsprobe noch die fachliche Prüfung echter Geschäftsabläufe. Login, kritische Formulare, Medien, E-Mail und zentrale Seiten sollten nach einem Update zusätzlich manuell geprüft werden.

Empfohlener Abnahmeablauf

  1. Schnelltest ausführen und alle Fehler klären.
  2. Kompletttest bis zum abgeschlossenen Endstatus laufen lassen.
  3. Übersprungene Prüfungen bewusst bewerten und bei Bedarf Node.js oder Composer bereitstellen.
  4. Fehler per Einzeltest reproduzieren, korrigieren und den Kompletttest wiederholen.
  5. JSON-Bericht zusammen mit Versionsnummer, Backup-Nachweis und manueller Abnahme archivieren.

Weiterführende Anleitungen