Anzeigen von Informationen, die vom WSH zurückgegeben wurden

Das WSH-Skript muss für das Ausführungsergebnis die Datei output.xml im aktuellen Arbeitsverzeichnis des WSH-Tests erzeugen. Alle in diesem Verzeichnis befindlichen Dateien werden in der Datenbank gespeichert und können über die Dateiliste der Testausführung heruntergeladen werden. Dateien können von der Speicherung ausgenommen werden, indem ihre Namenserweiterungen im Projektbereich mit der Option zum Ignorieren der Namenserweiterungen in Ergebnissen angegeben werden.

Anmerkung: Das Arbeitsverzeichnis wird während der Ausführung eines WSH-Skripts dynamisch erstellt. Geben Sie beim Erstellen der Datei keinen absoluten Pfad an. Mit einem relativen Pfad kann auf das aktuelle Arbeitsverzeichnis verwiesen werden.

Alle von einem Skript an die WSH-Standardausgabe gesendeten Informationen werden zusätzlich in die Datei log.txt im aktuellen Arbeitsverzeichnis eingetragen. Diese Datei wird in der Datenbank gespeichert und kann über die Dateiliste der Testausführung angezeigt werden.

Das folgende Beispiel zeigt, wie Protokollinformationen aus einem Skript gedruckt werden:

 WScript.Echo "This info will be written to the log.txt file"

Die XML-Struktur der Datei output.xml beginnt mit dem Element ResultElement, das ein Attribut namens TestItem definiert. Dieses Attribut legt den Namen von ResultElement fest.

ResultElement muss ein Element mit dem Namen ErrorCount enthalten. Optional können ein WarningCount-Element und eine Liste von Incident-Elementen vorhanden sein.

Die Elemente ErrorCount und WarningCount müssen den Wert Null oder eine positive Zahl enthalten. Die Elemente ErrorCount und WarningCount des ResultElement-Elements der obersten Ebene werden zur Auswertung der Erfolgsbedingungen verwendet, um zu ermitteln, ob der Test bestanden wurde. Die XML-Datei kann weitere Elemente enthalten, die in der Benutzeroberfläche von Silk Central nicht angezeigt werden. Die Datei output.xml wird jedoch in der Datenbank gespeichert und kann über die Dateiliste der Testausführung angezeigt werden.

Die Incident-Elemente entsprechen Ereignissen, die während der Ausführung des WSH-Tests aufgetreten sind. Message und Severity werden in der Meldungsliste der Testausführungen in der Benutzeroberfläche von Silk Central angezeigt. Ein Incident-Element muss ein Message- und ein Severity-Element enthalten.

Das Element Severity muss einen der folgenden Werte enthalten:

Sie können weitere Informationen in der Ergebnisdatei speichern. Das ResultElement kann eine beliebige Anzahl von sub-ResultElements enthalten, sodass Informationen auf einfache Weise gruppiert werden können. Die Unterelemente machen die Ergebnisdatei übersichtlicher. Zur Kompatibilität mit JUnit- und NUnit-Tests sollte ResultElement-Elementen der Name "TestSuite" oder "Test" zugewiesen werden.

ResultElement kann die folgenden zusätzlichen Elemente enthalten:

Das Element Incident kann eine Liste von Detail-Elementen enthalten.

Das Element Detail enthält detaillierte Informationen zu einem Incident-Element. Es muss die Elemente TestName und Info definieren. TestName liefert Informationen dazu, wo Incident aufgetreten ist. Das Element Info enthält Informationen zum Incident-Element (z. B. Stacktrace).

Anmerkung: Bis zu Silk Central-Version 8.1 musste der Wert der Elemente Message und Info URL-kodiert sein (ISO-8859-1). Seit Version 8.1.1 ist die URL-Kodierung nicht mehr zulässig.

Beispielergebnisdatei

<ResultElement TestItem="WshOutputTest">
  <ErrorCount>1</ErrorCount> 
  <WarningCount>1</WarningCount>
  <Incident>
    <Message>some unexpected result</Message>
    <Severity>Error</Severity>
    <Detail>
      <TestName>function main()</TestName>
      <Info>some additional info; eg. stacktrace</Info>
    </Detail>
  </Incident>
  <Incident>
    <Message>some warning message</Message>
    <Severity>Warning</Severity>
    <Detail>
      <TestName>function main()</TestName>
      <Info>some additional info; eg. stacktrace</Info>
    </Detail>
  </Incident>
</ResultElement>

Java Script-Beispiel

Mit dem folgenden Skript wurde die Beispieldatei erzeugt. Wenn Sie das Skript ausführen möchten, speichern Sie es mit der Dateierweiterung .js.

function dumpOutput(dumpFile)
{
  dumpFile.WriteLine("<ResultElement TestItem=\"WshOutputTest\">");
  dumpFile.WriteLine("  <ErrorCount>1</ErrorCount>");
  dumpFile.WriteLine("  <WarningCount>1</WarningCount>");
	dumpFile.WriteLine("  <Incident>");
	dumpFile.WriteLine("    <Message>some unexpected result</Message>");
	dumpFile.WriteLine("    <Severity>Error</Severity>");
	dumpFile.WriteLine("    <Detail>");
	dumpFile.WriteLine("      <TestName>function main()</TestName>");
	dumpFile.WriteLine("      <Info>some additional info; eg. stacktrace</Info>");
	dumpFile.WriteLine("    </Detail>");
	dumpFile.WriteLine("  </Incident>");
	dumpFile.WriteLine("  <Incident>");
	dumpFile.WriteLine("    <Message>some warning message</Message>");
	dumpFile.WriteLine("    <Severity>Warning</Severity>");
	dumpFile.WriteLine("    <Detail>");
	dumpFile.WriteLine("      <TestName>function main()</TestName>");
	dumpFile.WriteLine("      <Info>some additional info; eg. stacktrace</Info>");
	dumpFile.WriteLine("    </Detail>");
	dumpFile.WriteLine("  </Incident>");
  dumpFile.WriteLine("</ResultElement>");
}

function main()
{
  var outFile;
  var fso;
  fso = WScript.CreateObject("Scripting.FileSystemObject");
  outFile = fso.CreateTextFile("output.xml", true, true); 
  outFile.WriteLine("<?xml version=\"1.0\" encoding=\"UTF-16\"?>");
  
  dumpOutput(outFile);
  outFile.Close();
  WScript.Echo("Test is completed");	
}

main();
WScript.Quit(0);

Visual Basic-Skriptbeispiel

Das folgende Visual Basic-Skript generiert zudem die Beispielergebnisdatei und speichert sie als Output.xml. Wenn Sie das Skript ausführen möchten, speichern Sie es mit der Dateierweiterung .vbs.

WScript.Echo "starting"

Dim outFile
Dim errCnt
Dim warningCnt

outFile = "output.xml"
errCnt = 1 ' retrieve that from your test results
warningCnt = 1 ' retrieve that from your test results

Set FSO = CreateObject("Scripting.FileSystemObject")
Set oTX = FSO.OpenTextFile(outFile, 2, True, -1) ' args: file, 8=append/2=overwrite, create, ASCII

oTX.WriteLine("<?xml version=""1.0"" encoding=""UTF-16""?>") 
oTX.WriteLine("<ResultElement TestItem=""PerlTest"">")
oTX.WriteLine("  <ErrorCount>" & errCnt & "</ErrorCount>")
oTX.WriteLine("  <WarningCount>" & warningCnt & "</WarningCount>")
oTX.WriteLine("  <Incident>")
oTX.WriteLine("    <Message>some unexpected result</Message>")
oTX.WriteLine("    <Severity>Error</Severity>")
oTX.WriteLine("    <Detail>")
oTX.WriteLine("      <TestName>function main()</TestName>")
oTX.WriteLine("      <Info>some additional info; eg. stacktrace</Info>")
oTX.WriteLine("    </Detail>")
oTX.WriteLine("  </Incident>")
oTX.WriteLine("  <Incident>")
oTX.WriteLine("    <Message>some warning message</Message>")
oTX.WriteLine("    <Severity>Warning</Severity>")
oTX.WriteLine("    <Detail>")
oTX.WriteLine("      <TestName>function main()</TestName>")
oTX.WriteLine("      <Info>some additional info; eg. stacktrace</Info>")
oTX.WriteLine("    </Detail>")
oTX.WriteLine("  </Incident>")
oTX.WriteLine("</ResultElement>")