Für den Konsolenbereich der testWare existieren einige Befehle, welche die Wartung der testWare auch ohne Browser ermöglichen.
Vorbereitungen
Mit der testWare Instanz verbinden
In den folgenden Abschnitten werden die vorhandenen Befehle aufgeführt. Dabei wird vorausgesetzt, dass man sich in der entsprechenden Instanz der testWare befindet.
Verbinden Sie sich zum Beispiel per ssh mit dem Server.
computer:~$
ssh system@domain.tld
Verwenden Sie einen traditionellen Webserver, wechseln Sie in das Stammverzeichnis z.B. /var/www/testware
cd /var/www/testware
Für Systeme mit einer Containerlaufzeit öffnen Sie einen Terminal in den testWare Container. Als Beispiel für einen Docker Container names testware-app
docker compose exec -ti testware-app /bash
Befehle ausführen
Die folgenden Befehle sind im Framework laravel eingebettet. Damit diese erfolgreich ausgeführt werden können, muss vor dem Befehl php artisan stehen. Daher wäre als Beispiel der Befehl testware:install die komplette Zeile:
php artisan testware:install
Für Instanzen mit Container-Laufzeitumgebung kann man auch direkt aus dem Terminal heraus den Befeh ausführen. Dem obigen Beispiel folgend würde die Zeile entsprechend lauten:
Dieser Befehl sollte nur für ein neue Instanz verwendet werden.
Eine produktiv laufende Instanz sollte vorher gesichert werden, da alle Daten gelöscht werden.
Im Stammverzeichnis wird der Installer mit folgendem Befehl gestartet:
php artisan testware:install
Nach der Eingabe des Befehels wir die obige Warnung im Terminal ausgegeben
computer:/var/www/testware$
php artisan testware:install
W A R N I N G
This installer will reset your database!
All data will be lost and cannot be restored!
Type [yes] to proceed or [no] to exit without changes [no]:
Der komplette Ablauf des Installers wird in dem entsprechenden Dokument beschrieben.
Das Feature Passwort vergessen ist in der testWare verfügbar jedoch deaktiviert, weil nicht immer ein E-Mail Server zur Verfügung steht. Damit ein vegessenes Passwort neu vergeben werden kann, ist dieser Befehl zu benutzen.
computer:/var/www/testware$
php artisan testware:resetuserpw 'benutzer.email@adresse.de'
Reseting password for user [benutzer.email@adresse.de]
Wurde das Konto mit der E-Mail Adresse nicht gefunden, wird eine entsprechende Fehlermeldung gegeben und der Befehl abgebrochen. Ist das Konto vorhanden, erscheint eine Abfrage, in der das neue Passwort eingetragen wird.
Provide new password (min. 8 charakters):
Confirm new password :
Bitte beachten, dass in den meisten Terminals keine Eingabe zu sehen ist. Viele Terminals zeigen ein Schlüsselsymbol, um zu zeigen, dass ein Passwort eingegeben wird.
Stimmen beide Passwörter überein, wird das Passwort gesetzt und eine Meldung generiert.
A new password has been set
Sobald das Passwort gesetzt ist werden alle aktiven Sitzungen (Sessions) des Nutzers abgemeldet. Nicht gespeicherte Datensätze gehen damit verloren!testware:promotesysadminErforderliche Parameter:Benutzer E-MailOptionale Schalter:keineBeispiel:testware:promotesysadmin 'benutzer.email@adresse.de'
Benutzerkonten mit SysAdmin-Status haben vollen Zugriff auf die testWare. Sie können u.a. Benutzer zu SysAdmin befördern oder diesen aberkennen. Dies kann über die Kontoverwaltung erfolgen, oder auch mit dem Befehl.
computer:/var/www/testware$
php artisan testware:promotesysadmin 'benutzer@adresse.de'
Promoting user : benutzer@adresse.de
User is promoted to SysAdmin
Mit diesem Befehl wird der Status des SysAdmin einem Nutzer entzogen.
computer:/var/www/testware$
php artisan testware:demotesysadmin 'benutzer@adresse.de'
Demoting user: benutzer@adresse.de
User was demoted successfully
testware:demoseederErforderliche Parameter:APP_ENV=demo oder APP_ENV=localOptionale Schalter:--forceBeispiel:testware:demoseeder --force
Warnung
Dieser Befehl sollte nur für ein neue Instanz verwendet werden.
Eine produktiv laufende Instanz sollte vorher gesichert werden, da alle Daten gelöscht und durch die Demodaten ersetzt werden.
Möchte man die testWare ausprobieren, kann man mit diesem Befehl die Datenbank mit Demodaten füllen. Mit ihnen erhält man einen kleinen Standort mit 3 Büroarbeitsplätzen und einer Prüfhistorie. Diese Daten kann man erweitern oder als Vorlage verwenden.
Es werden zwei Benutzer angelegt. Der erste ist ein Standardbenutzer mit folgenden Kontodaten:
Der Befehl prüft anhand des APP_ENV Wertes in der .env bzw. app.env, ob die testWare Instanz sich im Demo-Modus oder im lokalen Entwicklungsmodus befindet. Dafür muss der Wert demo oder local sein.
Ist dies nicht der Fall, wird eine entsprechende Warnung gegeben. Es bedarf einer Anmeldung eines Benutzerkontos mit SysAdmin-Status, damit der Seeder im produktiven Modus ausgeführt wird.
computer:/var/www/testware$
php artisan testware:demoseeder
W A R N I N G
Your testware instance is not running in demo mode.
Please use a SysAdmin account to continue.
E-Mail:
Unabhängig von dem Modus der testWare-Instanz wird nach der Prüfung eine Warnung ausgegeben.
computer:/var/www/testware$
php artisan testware:demoseeder
W A R N I N G
This seeder will reset your database!
All data will be lost and cannot be restored!
Type [yes] to proceed or [no] to exit without changes [no]:
Möchte man die Warnung überspringen, kann der Schalter --force benutzt werden.
php artisan testware:demoseeder --force
Sind die Prüfungen abgeschlossen wird die Instanz in den Wartungsmodus gesetzt. Danach werden die Tabellen geleert und mit den Demodaten gefüllt. Abschließend wird der Wartungsmodus abgeschaltet und die testWare ist mit den Demodaten nutzbar.
✓ Turning on maintenance mode
✓ Reset database and fill with Demo data
✓ Task completed. Switching off maintenance mode
Dieser Befehl erneuert den Schlüssel für den Konfigurationsparameter APP_HSKEY
Achtung! Wenn ein Schlüssel existiert, wird dieser überschrieben. Dies kann zu unerwarteten Effekten bei der Verwendung von generierten QR-Codes führen.
laravel Befehle
Die testWare baut auf dem php Framework laravel auf. Diese hat ebenfalls eine große Anzahl von Konsolenbefehle. Hier seien einige aufgeführt.
Dieser Befehl legt Tabellen mit entsprechenden Feldern (Attributen) an. Wenn die testWare erweitert wird, kann es möglich sein, dass weitere Datenbankfelder ersteltt werden müssen. In diesem Fall sollte der Befehl ausgeführt werden.
computer:/var/www/testware$
php artisan migrate
Je nach Stand werden die Änderungen ausgeführt, oder eine Meldung gegeben, dass keine ausgeführt werden müssen.
Sollte die testWare nach dem Ausführen des Befehls php artisan migrate nicht funktionieren, kann dies auf eine fehlerhafte Verknüpfung deuten. In diesem Fall kann die Migration rückgängig gemacht werden. Dadurch wird der alte Stand wiederhergestellt.