QTP実行時のエラーショットをQCテストセットにアップロードする


テスト実行時に各ステップのスクリーンショットをQCにアップロードすると、QCのシステムリソースが大量に消費されます.通常、エラーが発生した場合のスクリーンショットを表示したいだけです.デバッグと実行に失敗した後、原因を特定する必要がある場合、これらのスクリーンショットは問題の特定に迅速に役立ちます.
以下の手順により、上記の要件を簡単に実現することができる.
  • 共通関数ライブラリにクラスを作成し、このようなインスタンス
  • を作成します.
  • クラスの解析関数でエラーが発生するか否かを判断し、
  • を断面する.
  • は、QCの現在のテストセットのインスタンスに添付ファイルとしてスクリーンショットをアップロードする.

  • このクラスの完全なコードは次のとおりです.
    ' Class: QCImageErrorCapture
    ' WebSite:  http://KnowledgeInbox.com
    ' Author: Tarun Lalwani
    ' Description: This class captures the screen in case the current component fails or the current
    '				test fails. This is for QC only
    ' Parameters:	N/A
     
    Class QCImageErrorCapture
    	Sub Class_Terminate()
    		'Check if the current test has failed. If failed then only capture screenshot
    		If Reporter.RunStatus = micFail Then
    			CaptureAndAttachDesktop
    		End If
    	End Sub
     
    	Private Sub CaptureAndAttachDesktop()
    		'QC is not connected
    		If QCUtil.IsConnected = False then Exit Sub
     
    		'The test is not running from Test Lab
    		If QcUtil.CurrentRun is Nothing Then Exit Sub
     
    		On error resume next
    		'Hide QTP to make sure we don't get QTP in snapshot
    		Set qtpApp = CreateObject("QuickTest.Application")
     
    		qtpApp.visible = False
    		'GIve time for QTP to get hidden
    		Wait 2
     
    		'Capture the screenshot to the report folder
    		Desktop.CaptureBitmap Reporter.ReportPath & "/Report/ErrorImage.png", True
    		qtpApp.visible = True
     
    		'Add the capture to QC
    		Set oAttachments = QCutil.CurrentRun.Attachments
    		Set oAttachment = oAttachments.AddItem(null)
    		oAttachment.FileName = Reporter.ReportPath & "/Report/ErrorImage.png" 
    		oAttachment.Type = 1 'File
     
    		'Check if the current test is a QTP Test or Business Component
    		Select Case LCase(qtpApp.CurrentDocumentType)
    			Case "test"
    					oAttachment.Description = "Name: " & qtpApp.Test.Name & vbNewLine & "Error: " & qtpApp.Test.LastRunResults.LastError
    			Case "business component"
    					oAttachment.Description = "Name: " & qtpApp.BusinessComponent.Name & vbNewLine & "Error: " & qtpApp.BusinessComponent.LastRunResults.LastError
     
    					'We can also add the Business COmponent to a User Defined Field 
    					'QCUtil.CurrentTestSetTest.Field("TC_USER_01") = qtpApp.BusinessComponent.Name
    					'QCUtil.CurrentTestSetTest.Post
    		End Select		
     
    		'Add the attachment
    		oAttachment.Post
    	End Sub 
    End Class
     
    'Create the object in one of the attached libraries. When the Test or Business component ends 
    'the screenshot will be captured
    Set oErrorCapture = new QCImageErrorCapture
     QTP , QC。