揭秘QTP之Reporter對象(2)

發表于:2011-12-15來源:未知作者:娃娃點擊數: 標簽:qtp
@Description 指定把日志寫入節點下 Public Function EnterNode(ByRef NodeName, ByRef NodeContent) 用一個Dictionary對象來存儲節點的信息 Set dicMetaDescription = CreateObject(Scripti

  '@Description 指定把日志寫入節點下

  Public Function EnterNode(ByRef NodeName, ByRef NodeContent)

  ' 用一個Dictionary對象來存儲節點的信息

  Set dicMetaDescription = CreateObject("Scripting.Dictionary")

  ' 設置節點的狀態

  dicMetaDescription("Status") = MicDone

  ' 設置節點的名稱

  dicMetaDescription("PlainTextNodeName") = NodeName

  ' 設置節點的詳細描述信息(可以使用HTML格式)

  dicMetaDescription("StepHtmlInfo") = NodeContent

  ' 設置節點的圖標

  dicMetaDescription("DllIconIndex") = 210

  dicMetaDescription("DllIconSelIndex") = 210

  ' 節點圖標從ContextManager.dll這個DLL文件中讀取

  dicMetaDescription("DllPAth") = "D:\Program Files\HP\QuickTest Professional\bin\ContextManager.dll"

  ' 使用Reporter對象的LogEvent寫入新節點

  intContext = Reporter.LogEvent("User", dicMetaDescription, Reporter.GetContext)

  ' 調用Reporter對象的SetContext把新寫入的節點作為父節點

  Reporter.SetContext intContext

  End Function

  (2)然后再定義一個與“EnterNode”相應的函數“ExitNode”,如圖5所示:

  圖5 定義函數ExitNode

  ExitNode函數用于退出當前日志節點,需要與EnterNode配對使用,函數的腳本如下所示:

  '@Description 退出當前日志節點(與EnterNode配對使用)

  Public Function ExitNode

  '調用Reporter對象的UnSetContext,返回上一層

  Reporter.UnSetContext

  End Function

  (3)有了EnterNode和ExitNode函數后,我們就可以像下面的例子一樣使用EnterNode和ExitNode,實現日志記錄的結構化、層次化寫入:

  ' 進入節點

  EnterNode "父節點","

這是一個擁有孩子的節點

Hello! How are you!.
"

 

  ' 在節點內寫Log

  Reporter.ReportEvent MicPass, "Step1", "Step1 Pass!"

  Reporter.ReportEvent MicWarnning, "Step2", "Step2 Pass With Warnning!"

  Reporter.ReportEvent MicFail, "Step2", "Step2 Fail!"

  ' 退出節點

  ExitNode

  ' 在節點之外寫Log

  Reporter.ReportEvent MicPass, "Case2", "Case2 Pass!"

  該腳本首先調用EnterNode,創建一個"父節點",并自動進入該節點的層次下,然后使用普通的ReportEvent方法寫日志,當需要退出該"父節點"時,就調用一下ExitNode,則后續的日志都在該節點之外寫。

  小結

  本文介紹了Reporter對象的幾個鮮為人知的方法,利用LogEvent、SetContext、UnSetContext這幾個方法,可以實現日志的結構化、層次化寫入,讓你的QTP測試報告看起來更加有條理、分類清晰。

  不知道為什么QTP的幫助文檔中沒有列出這幾個有用的方法,但是不管怎樣,在我們揭開了Reporter對象的這些隱藏的方法后,我們就可以充分利用它們為我們服務,讓我們的自動化測試腳本更加強大。

原文轉自:http://www.anti-gravitydesign.com

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97