2012-04-13 67 views
0

我想以編程方式解析TestComplele 7日誌。具體來說,我想獲取每個測試的名稱和狀態(成功\失敗\警告)。爲什麼TestComplete保持更改狀態圖像名稱

根據手冊中,我用下面的命令來獲得測試運行日誌:

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

這就產生了一堆文件和文件夾,包括可以通過我的腳本解析個XML的。 這裏就是這樣一個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> 

正如你看到的,我可以得到幾乎一切我想要的,但數據的最有價值的部分,測試的狀態寫成的文件名顯示相應圖標的圖片!例如。 805039D.gif包含複選標記,並且905039C.gif包含感嘆號。

在我的腳本中將這些名稱硬編碼很容易,但問題是它們不斷變化!

問題

  1. 爲什麼他們決定改用圖像名稱一些枚舉 的輸出狀態?
  2. 爲什麼地圖上的圖標會改變他們的名字?
  3. 如何獲取測試狀態?

回答

1

我最討厭同一個問題。所以,我在C#寫了這個解決它:

我會得到的圖像是指文件的長度,然後

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

所以,如果它指的是長度爲610的文件,然後通過等...

1

導出的日誌的HTML格式不打算被解析。如果要分析導出的日誌,你需要使用XML格式:

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

這裏是生成的日誌文件的示例代碼段:

<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> 

由指定消息的順序「 id'字段,並且消息的類型由'類型'字段降級。

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

對不起,我不同意這種格式不打算被解析。根據TestComplete文檔http://support.smartbear.com/viewarticle/10992/「使用給定的方案,我們可以以所需的方式解析包含導出結果的XML文件。要執行此操作,可以使用任何XML解析器。 「 另外,HTML日誌格式比XML-s更可讀,這有點奇怪。我沒有看到使用僞XML的好處,因爲導出的結果來自大量的文件,就像HTML一樣。 – Monsignor 2012-04-16 01:00:07

+0

感謝您指出此主題。我相信這是文檔中的一個問題,並且此格式(解壓縮存儲)不應被描述爲推薦用於解析。我將向SmartBear報告這是一個問題。 – 2012-04-16 07:29:29

+0

順便說一句,解析日誌時你想得到什麼信息?如果您只需獲取有關當前項目測試執行的摘要信息,則可以找到一個示例腳本,演示如何在此處獲取它:http://support.smartbear.com/viewarticle/9047/ – 2012-04-16 07:31:29

相關問題