Zur Homepage www.HI-Tier.de
Öffentlicher Bereich für Entwickler

 

Hinweise

bulletDie Client HitTest ist ein einfaches Java-Programm zum senden beliebiger HITP-Befehle an einen HIT-Server.
bulletFür die sogenannten HIT-Unit-Tests gibt es noch ein neues wesentlich besseres Tool, siehe "Systematische Tests"
bulletEs dient zum Testen von Befehlen und Antwortabfolgen.
bulletHitTest kann auch zum Abholen von Daten dienen, insbesondere semikomplexe und komplexe Datenstrukturen
bulletDas Programm HitTest ist nicht der Batch-Client ! Es wird aber zusammen mit dem HitBatch-Client ausgeliefert und installiert
bulletZur Installation müssen Sie folgende zwei ZIP-Files herunter laden:   Datenbereich\HitUpros.zip und Datenbereich\HitBatch.zip
bulletBitte passen Sie die Steurdatei HitTest.INI immer an Ihre Bedürfnisse an!
bulletWeitere Hinweise siehe analog HitBatch-Client und HitPop.

Versionshistorie

Version Freigabe

Verfügbare Funktionen & Neuigkeiten

offen offen
  1. Aufbereitung komplexer Datenstrukturen, ggf. XML-Ausgabe
3 04.07.2003
  1. Einführen von  Schleifenstrukturen mit Wertersetzung
  2. Mehrstufige, aufeinander aufbauende Schritte sind möglich
  3. Aufbereitung der Zwischenergebnisse und Ausgaben mit der neuen POP ("Post-Processing") Funktionalität (siehe auch HitPop)
2 30.12.1999
  1. Vereinfachung des INI-Files
  2. Parameter zur definierten Ausgabe in LOGFILE und OUTFILE
  3. Bestimmen der Datenausgabe roh ins LOGFILE oder aufbereitet ins OUTFILE über SCHWERE..
1 24.03.1999
  1. Erste Version zur rohen Datenübertragung

Beschreibung

Übersicht

  1. Einfacher Client zum Testen der verschiedener Komponenten und zum universellen Senden beliebiger Befehle an den HIT-Server.
  2. Die Befehle stehen in der INFILE-Datei
  3. Ein ausführliches Protokoll steht im LOGFILE
  4. Antwortdaten stehen in OUTFILE, 
    außer durch Angabe von Schwere=-1..-3 wurde eine rohe Ausgabe in LOGFILE erzwungen.
  5. Der HitTest ist ein sehr gutes einfaches Werkzeug um das HITP Protokoll aus zu testen oder automatisierte Abläufe auf niedriger Protokollebene durch zu führen.
  6. Durch die neuen Möglichkeiten mit Schleifen Platzhalter zu ersetzen sind komplexe verschachtelte Abläufe
    realisierbar.
  7. Passwörter können durch die Schleifenkonstruktion LOOPASK wenigstens an der Konsole zur Eingabe gepromptet werden. Sie erscheinen damit aber immer noch auf dem Schirm und i.d.R. im LOG-File, außer das "EchoLevel" wurde entsprechend heruntergesetzt.

Anmeldeprobleme

Sollte die Anmeldung fehlschlagen, erhalten Sie allerdings bei mittel "ECHOLEV 0" ausgeschaltetem Output keinerlei Hinweise, lediglich die nachfolgenden Aktionen schlagen fehlt, weil der Server die Verbindung abgebrochen hat.

Wenn Sie also folgende Meldung sehen:

    "Fehler in Verbindung zum Server : Abbruch beim Transfer-String zur HIT-Zentrale.
    java.net.SocketException: Socket read failed: 10053"

deutet das auf ein falsches Anmeldepasswort hin. Ggf. müssen Sie dann test weise auf das Unterdrücken der
Ausgabe bei der Anmeldung verzichten.

Aufrufsyntax

[set CLASSPATH=HitBatch.jar;HitUpros.jar;%CLASSPATH%]
java.exe HitBatch.HitTest [HitTest.INI]

Erweiterte Funktionen der Version 3

bulletInnerhalb der Folge der Inputlines sind Iterationen als Schleifen mit Parametern möglich.
bulletSie werden mit einem Loop-Beginn-Ausdruck eingeleitet (siehe unten Loop-Beginn).
bulletSie werden mit einem Loop-Ende-Ausdruck beendet  (siehe unten Loop-Ende).
bulletInnerhalb der LOOP können die einzelnen Werte der der Iteratorzeilen mit [x] x=1..n oder 0=Zeilennr. benutzt werden.
bulletAls Input-Separator zur Trennung der Argumente gilt das Semikolon. Dies kann aber mittels SEP_IN geändert werden.
bulletDie LOG- und OUT-Files sowie zugehörige Append-Parameter können auch im Ablauf durch Parameter-Befehle geändert werden (siehe unten Parameter-Befehle).
bulletDamit die Ausgabe in die OUT-Files flexibler angepasst werden kann,  um z.B. den Output direkt in Excel-gerechtes CSV zu wandeln (Dezimalpunkt-Problematik) oder um Timestamps als Input in einem späteren Step nutzen zu können, gibt es neue Befehle zum "Post-Processing" eingeführt (siehe unten POP-Befehle).
bulletEs kann eine beliebige Anzahl von POP-Befehlen nacheinander angegeben werden.
bulletDie Befehle können auf 6 Stellen gekürzt werden.
bulletAlle Befehle werden in der gegebenen Folge abgearbeitet. Der jeweils nächste Befehl arbeit auf die schon veränderten Inhalte und ggf. veränderten Strukturen (wenn z.B. eine Spalte ausgeschlossen wird, müssen die nachfolgenden Befehle das berücksichtigen).
bulletZiel ist es bestimmte Zeilen oder ganze Spalten zu verwerfen oder die Zeilen oder einzelne Spalten gezielt zu verändern.
bulletDas Post-Processing funktioniert nur wenn die Ausgabe explizit mit OUTFILE gesetzt wurde! 
bulletWenn ein neuer Satz von Befehlen benötigt wird, ist der vorhandene Befehlsstapel erst zu löschen.
bulletSeit der Version 4 dürfen LOOP-Iteratoren auch verschachtelt werden!

Befehle im Einzelnen

Loop-Beginn- Ausdruck

LOOPLIST <wertliste>   Nur eine Zeile möglich, Werte mit Input-Separator (i.d.R. Semikolon) getrennt, werden zu Spalten 1.n einer Zeile
LOOPLROW <wertliste>   Nur eine Zeile möglich, Werte mit Input-Separator getrennt, werden zu Spalten 1 von 1..n Zeilen
LOOPFN   <dateiname>   FILE NOHEAD   (m Zeilen mit n Spalten möglich) war früher LOOPFILE
LOOPFH   <dateiname>   FILE HEADLINE (m Zeilen mit n Spalten möglich) erste Zeile wird ignoriert
LOOPASK  <promptliste> nur eine Zeile möglich, Werte mit Input-Separator getrennt, werden zu Spalten 1.n einer Zeile

Loop-Ende-Ausdruck

LOOPNEXT               Schleifenende mit Iteration zur nächsten Zeile bis keine Zeilen mehr vorhanden sind.
LOOPEND                Schleifenende ohne weitere Iteration, d.h. nach Abarbeiten der ersten Zeile geschlossen, unabhängig ob weitere Zeilen vorhanden sind.

Parameter-Befehle

LOGFILE <dateiname>   setzt das LOG-File auf angegebene Datei, Append oder Overwrite je nach Parameter in INI
LOGFAPP <dateiname>   setzt das LOG-File auf angegebene Datei, mit Append, d.h. es wird an Datei angehängt
LOGFNEW <dateiname>   setzt das LOG-File auf angegebene Datei, mit Overwrite, d.h. die Datei wird überschrieben
OUTFILE <dateiname>   setzt das OUT-File auf angegebene Datei, Append oder Overwrite je nach Parameter in INI
OUTFAPP <dateiname>   setzt das OUT-File auf angegebene Datei, mit Append und ohne Spaltenüberschriften !!
OUTFNEW <dateiname>   setzt das OUT-File auf angegebene Datei, mit Overwrite und Spaltenüberschriften
SEP_IN  <separator>     setzt der Input-Separator für LOOP-Files und Parameterlisten (Default ist Semikolon)
SEP_OUT <separator>     setzt der Output-Separator (CSV-Filetrenner, Default ist Semikolon)
ECHOLEV <wert | DEFAULT>     setzt den Ausgabeumfang, z.B. vor LOGON-Verarbeitung herabsetzen.

POP - Post-Processing

POP_CLEAR Befehlsstapel löschen, entferne alle POP-Befehle aus der Befehlsliste
POP_RDROP <val> Verwerfe Output-Row wenn irgendwo in der Zeile der Wert <val> vorkommt
POP_CDROP <colnr>;<val> Verwerfe Output-Row wenn Spalte <colnr> (1..n) den Wert <val> hat
POP_RCHNG <old>;<new> Change Old-String <old> to New-String <new> für die ganze Zeile, unabhängig von Spalten
POP_CCHNG <c>;<o>;<n> Change in Spalte <c> Old-String <o> to New-String <n>
POP_TSTAMP <c>;<patt> Formatiere wenn Timestamp in Spalte <c> gemäß Format, z.B. yyyy-MM-dd-hh.MM.ss.SSSSSS
POP_DATE <c>;<patt> Formatiere wenn Datum     in Spalte <c> gemäß Format, z.B. dd.MM.yyyy
POP_TIME <c>;<patt> Formatiere wenn Zeit      in Spalte <c> gemäß Format, z.B. hh:MM
POP_NUM  <c>;<patt> Formatiere wenn Numerisch in Spalte <c> gemäß Format, z.B. ##0,00
POP_UCASE <c> Formatiere String    in Spalte <c> uppercase
POP_LCASE <c> Formatiere String    in Spalte <c> lowercase
POP_LOM <c> Formatiere String    in Spalte <c> als Alpha-Ohrmarke
POP_BNR <c> Formatiere String    in Spalte <c> als Alpha-Betriebsnummer
POP_CEXCL <colnr> Schließe die Spalte <colnr> generell von der Ausgabe aus (hilfreich bei #-Funktionen, ähnliche Effekte wie FUNCONLY erzielbar)
POP_CONST <c>;<konst> Ersetze Inhalt in Spalte <c> durch Konstante <konst>

Beispiele

Parameterdatei: HitTest.INI

[GLOBAL]
;
; Das ist die Parameterdatei für HitTest, nicht für den HitBatch-Client (siehe HitBatch.ini) !!
;
; Im Internet lauten die Namen der Server hitserver.hi-tier.de(Primary) und hitbackup.hi-tier.de(Secundary)
; nur im Notfall sollten die IP-Adressen: 212.18.9.51(Primary) und 194.94.221.3(Secundary) ! verwendet werden
; denn wir müssen uns vorbehalten die IP-Adressen zu ändern. Die DNS-Namen sollten immer gleich bleiben.
PRIMARYSERVER=hitserver.hi-tier.de

; Testsystem ist 2223, Produktion ist 2222
PRIMARYPORT=2223

; Anders als beim HitBatch-Client kommen alle Antworten mit Schwere >= 0 ins LOGFILE
; SCHWERE: -1=uniforme Daten, -2=semikomplexe Daten, -3=komplexe Daten
SCHWERE=-99

[SET-1]
INFILE=.\HitTest\HitTest.BEF
OUFILE=.\HitTest\HitTest.OUT
LOGFILE=.\HitTest\HitTest.LOG

Die jeweils aktuellen Informationen zu HI-Tier Internet-Adressen und Ports siehe IP-Adressen.

einfache Befehlsdatei: HitTest.BEF

;
; Diese Datei beinhaltet Testsätze für den einfachen HitTest-Client
; Zeilen mit Semikolon am Anfang werden ignoriert
; Jede Zeile ist eine Befehl und ist wie folgt aufgebaut
; <Einleitung>:<Befehl>:<Meldung>:<Feldliste>:<Datenliste>
; Feld- und Datenlisten sind im Strict-CSV
;
*1:XS:LOGON:VERBOSE;BNR15;PIN;MELD_WG:3;276000000000001;900001;2 
*2:XF:ABGANG:LOM;BNR15;ABGA_DAT:276000912345678;271099561230041;30.11.1998
*3:XF/E:ABGANG:
*4:XS:LOGOFF::

Befehlsdatei mit Schleife

LOOPASK Bitte Betriebsnummer eingeben;Bitte PIN eingeben
ECHOLEV 0
*1:XS:LOGON/BNR15;PIN;MELD_WG;TIMEOUT:#[1];#[2];3;1800
ECHOLEV DEFAULT
LOOPEND
;
LOOPFILE c:\tmp\xxx.csv
*2:XF:ABGANG:LOM;BNR15;ABGA_DAT:#[1];#[2];#[3]
LOOPNEXT
;
*3:XF/E:ABGANG:
*4:XS:LOGOFF::

Befehlsdatei mit Post-Processing

SEP_IN ;
LOOPASK Bitte Betriebsnummer eingeben;Bitte PIN eingeben
*1:XS:LOGON/BNR15;PIN;MELD_WG;TIMEOUT:#[1];#[2];3;1800
LOOPEND
;
POP_CLEAR
POP_RDROP Exception
POP_CDROP 1;%--
POP_RCHNG %--;
POP_CCHNG 1;.;,
POP_TSTAMP 2;yyyy-MM-dd-hh.MM.ss.SSSSSS
POP_DATE 4;dd.MM.yyyy
POP_TIME 1;hh:MM
POP_NUM 2;##0.00
POP_UCASE 2
POP_LCASE 3
;
LOOPFILE c:\tmp\xxx.csv
*2:XS:ABGANG:LOM;BNR15;ABGA_DAT;#VERBLEIB():#[1];#[2];#[3]
LOOPNEXT
;
*3:XF/E:ABGANG:
*4:XS:LOGOFF::

Zurück zum Anfang