
| Current Path : /var/www/web-klick.de/dsh/90_akt/DEV1303/Documentation/ |
Linux ift1.ift-informatik.de 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64 |
| Current File : /var/www/web-klick.de/dsh/90_akt/DEV1303/Documentation/Technische_Doku_AutoTest.txt |
0. AutoTest beispielhaft zum Laufen bringen:
=============================================
a. Die Programmdateien unter svn+ssh://<user>@172.20.20.1/var/svnift/appserv
ins Verzeichnis C:\appserv auschecken.
b. Das Verzeichnis C:/ppl1 anlegen.
c. Die Datenbank test5.db aus U:/ift/projects/DEV.1302__AutoTest_Backend
nach C:/test5.db kopieren
d. Das Modul Gen6000.pm aus U:/ift/projects/DEV.1302__AutoTest_Backend
nach C:/ppl1 kopieren
e. Die Dateien ot.bat und ox.bat aus C:/appserv/DivBasicF kopieren nach
C:/perl/bin.
f. Die Datei sqlite3.exe aus U:/ift/projects/DEV.1302__AutoTest_Backend
kopieren nach C:/perl/bin.
g. Die Datei shell_gen6000.bat aus U:/ift/projects/DEV.1302__AutoTest_Backend
kopieren auf den Desktop.
Dann mit Doppelklick auf die shell_gen6000 auf dem Desktop eine Konsole
starten. Man ist nun automatisch im Verzeichnis C:\ppl1.
Jetzt Test-Items anschauen und editieren mit:
ot <test-item> edit (z.B. ot Gen6000::CVA::Einstellungen edit)
Test laufen lassen mit:
ot <test-item> run (z.B. ot Gen6000::CVA::Einstellungen run)
In einer zweiten Konsole muss im Verzeichnis C:/ppl1 ausserdem gestartet
werden: ox . In dieser zweiten Konsole laufen dann die wieder
aufgetauten Test-Items weiter.
Auflisten aller Test-Items:
Befehl: sqlite3 /test5.db
Dann eingeben:
select package from conn_store;
Weitere Spalten der Objekt-Tabelle conn_store:
conn,text,package,program,result,remark,user,maxresult,requirement
(man kann sich die Spalten per SQL anschauen):
select <spalte1>,<spalte2>,.... from conn_store
Ausserdem befinden sich Kopien der editierten Test-Items im Verzeichnisbaum
unter C:\ppl1.
1. Beschreibung der vier Module ObjTask, ObjClient, ObjServer und AutoTest
1.1. Der Task-Manager Obj-Task
Stichworte:
Kommunikation ueber die Datenbank,
Messages (auch zeitverzögerte)
Dump von Objekten mit der Methode push
Wiederauftauen von Objekten mit fetch, Schlüsselwort MESSAGE
(wenn eine Message für das LObjekt vorliegt, wird es
gehlot und aufgetaut)
Datenbank-Tabellen:
conn: Message-Tabelle
Wichtige Spalten:
replynr, msgid (20-stellige Message-Identifier)
msgtime (Zeitverzögertes Aktivieren der Message),
text: gedumpter Message-Inhalt
conn_store: Tabelle der gedumpten Objekte.
Wichtige Spalten:
text: Gedumptes Objekt
conn: damit verknüpfter Message-Identifier
Weitere Index-Spalten:
Die Index-Spalten werden in der Environment-Variable
procidx übergeben (kommaseparierte Liste).
Wenn man z.B. in $ENV{'procidx'} hat:
index1,index2
dann werden die Werte von $self->{'index1'} bzw.
$self->{'index2'} beim Dumpen des Objektes
$self in die entsprechenden Spalten index1 und
index2 geschrieben. Damit kann man Informationen
über das Objekt mit SQWL suchen und ausgeben, OHNE das
Objekt wieder auftauen zu müssen.
Ein zu dumpendes Objekt MUSS die Methode IDX haben,
die als letztes immer kurz vor dem Dumpen aufgerufen wird.
.....
1.2. ObjServer:
Ist eine Endlosschleife, die dafür sorgt, daß Objekte, für die
eine Message vorliegt, wieder aufgetaut werden. Mehrere ObjServer-
Prozesse können gleichzeitig laufen, was die Performance erhöht
(abhängig von der Leistung des Host).
1.3. ObjClient:
Methode run:
Hier die Aktionen
1. run: Läßt ein Test-Item als Programm laufen
2. edit: Editiert ein test-Item
3. import: Importiert ein Test-Item aus dem Datei-Baum in die
Datenbank
4. multi: Importiert einen ganzen Unterbaum
1.4. AutoProcess: Die Basisklasse für alle Test-Items.
Methoden test_start, test_end, sleep erlaütern.
Für die Objekt-Daten müssen die Indexe angelegt werden
(in der Environment-Variablen procidx):
package,program,result,remark,user,requirement
Die entsprechenden Objekt-Variablen werden in der Methode
IDX (wird aufgerufen kurz vor dem Dumpen) jeweils
aktualisiert:
package: Paktename = Test-Item-name
program: Eigentlicher Programmcode des Test-Items
result: Ergebis
remark: Bemerkung
user: User-Angaben
requirement: Liste von Requirement und deren Relevanzen:
[
requ1, wert1,
requ2, wert2,
....
maxresult]
Hier werden die konsolidierten Ergebnisse aus den Child-Items
berechnet und eingetragen, maxresult ist der Maximalwert
aller Results aller Child-Items (also der 'schlechteste'
vorgefundene Wert)
Wichtige Environment-Variablen:
procdb: Datenbank der Test-Items
procdir: Dateisystem-Repräsentation
procidx: Indexe der gedumpten Objekte (siehe oben)