2012-04-13 15 views
0

Ich möchte TestComplele 7-Protokolle programmgesteuert analysieren. Insbesondere möchte ich Namen und Status (Erfolg \ Fehler \ Warnung) von jedem Test erhalten.Warum ändert TestComplete den Status Image-Name

Laut Handbuch, verwende ich den folgenden Befehl ein Testlauf Protokolle zu erhalten:

Log["SaveResultsAs"] ("PathToMyFolder", 1); 

Das eine Reihe von Dateien und Ordner erstellt, einschließlich XMLs, die durch mein Skript analysiert werden kann. Hier ist ein Beispiel für eine solche XML:

<ProjectLog> 
    <ProjectLogItem id="0" pid="-1" nety="False"> 
    <Status>805039D.gif</Status> 
    <No>1</No> 
    <Name><![CDATA[Script Test Log [cTaStoring\cTaStoring_Start]]]></Name> 
    <StartTime>13.04.2012 12:26:15</StartTime> 
    <EndTime>13.04.2012 12:27:47</EndTime> 
    <RunTime>0:01:32</RunTime> 
    <Details></Details> 
    <Messages/> 
    </ProjectLogItem> 
    <ProjectLogItem id="1" pid="-1" nety="False"> 
    <Status>905039C.gif</Status> 
    <No>2</No> 
    <Name><![CDATA[AutomaticStoring]]></Name> 
    <StartTime>13.04.2012 12:27:47</StartTime> 
    <EndTime>13.04.2012 12:30:42</EndTime> 
    <RunTime>0:02:55</RunTime> 
    <Details></Details> 
    <Messages/> 
    </ProjectLogItem> 
</ProjectLog> 

Wie Sie sehen können, kann ich fast alles, was ich will, aber das wertvollste Stück der Daten, wird der Status eines Tests als Dateinamen geschrieben von ein Bild mit dem entsprechenden Symbol! Z.B. 805039D.gif enthält ein Häkchen und 905039C.gif enthält ein Ausrufezeichen.

Es wäre einfach, diese Namen in meinen Skripten fest zu codieren, aber das Problem ist, dass sie sich ständig ändern!

Fragen:

  1. Warum haben sie Bildnamen anstatt einig Aufzählung zu Ausgangszuständen zu benutzen?
  2. Warum in aller Welt ändern Symbole ihre Namen?
  3. Wie erhalten Sie den Status der Tests?

Antwort

1

Ich war am meisten genervt von dem gleichen Problem. Also schrieb ich dies in C#, es zu lösen:

Ich würde die Länge der Datei, die das Bild bezieht, dann

  if (b.Length == 610) status = "Pass"; 
      if (b.Length == 1016) status = "Fail"; 
      if (b.Length == 353) status = "Inconclusive"; 

Wenn also die Datei verweist es 610 in der Länge, dann passieren usw.

1

Das HTML-Format der exportierten Protokolle wird nicht analysiert. Wenn Sie exportierte Protokolle analysieren möchten, müssen Sie das XML-Format verwenden:

Log["SaveResultsAs"] ("PathToMyResultsXMLFile", lsXML); 

Hier ist ein Beispiel Ausschnitt aus der generierten Protokolldatei:

<Node name="message 0"> 
    <Prp name="date" type="D" value="41012.4210564815"/> 
    <Prp name="priority" type="I" value="300"/> 
    <Prp name="owner id" type="I" value="-1"/> 
    <Prp name="color" type="I" value="-252645136"/> 
    <Prp name="id" type="I" value="0"/> 
    <Prp name="bkcolor" type="I" value="-252645136"/> 
    <Prp name="message" type="S" value="This is a usual message"/> 
    <Prp name="picture" type="S" value=""/> 
    <Prp name="link" type="S" value=""/> 
    <Prp name="unit id" type="I" value="0"/> 
    <Prp name="remarks" type="S" value=""/> 
    <Prp name="type" type="I" value="0"/> 
    <Prp name="line no" type="I" value="2"/> 
    <Prp name="child index" type="I" value="-1"/> 
</Node> 

Die Reihenfolge der Meldungen durch die angegeben wird " ID Feld und der Typ einer Nachricht wird durch das Feld "Typ" herabgestuft.

0 - Message 
1 - Event 
2 - Warning 
3 - Error 
+0

Sorry, ich kann nicht zustimmen, dass dieses Format nicht analysiert werden soll. Laut TestComplete-Dokumentation http://support.smartbear.com/viewarticle/10992/ "Mithilfe des angegebenen Schemas können wir die XML-Dateien, die die exportierten Ergebnisse enthalten, in der gewünschten Weise analysieren. Dazu können Sie einen beliebigen XML-Parser verwenden. " Auch das HTML-Protokollformat ist viel lesbarer als das XML-s, was irgendwie seltsam ist. Und ich sehe keinen Vorteil darin, dieses Pseudo-XML zu verwenden, da das Exportergebnis aus einer Unmenge von Dateien besteht, genau wie HTML es tut. – Monsignor

+0

Vielen Dank, dass Sie auf dieses Thema hingewiesen haben. Ich glaube, das ist ein Problem in der Dokumentation und dieses Format (Unpacked Storage) sollte nicht als zum Parsen empfohlen beschrieben werden.Ich werde dies als Problem an SmartBear melden. –

+0

BTW, was genau Informationen wollen Sie beim Parsen von Protokollen erhalten? Wenn Sie nur zusammenfassende Informationen über die aktuelle Ausführung des Projekttests benötigen, finden Sie ein Beispielskript, das zeigt, wie Sie es hier finden: http://support.smartbear.com/viewarticle/9047/ –

Verwandte Themen