zoukankan      html  css  js  c++  java
  • QC OTA

    Note: First make sure QTP connect to QC.(转自:http://blog.csdn.net/franktan2010/article/details/7243314)

    27.1 QC Path:

    QC path’s root folder is “Subject”. So all QC path startwith “[QualityCenter]Subject”. Set QC path into QTP’s Toolsà Options…àFolder(Tab)

    QTP use QC paths:

    DataTable.Import “[QualityCenter]SubjectInputTestCase1.xls”

    DataTable.ImportSheet “[QualityCenter]SubjectInputTestCase1.xls”, “Global”, “Global”

    ExecuteFile “[QualityCenter]SubjectScriptConfiguration.vbs”

    Note: QTP cannot use relative path, but you can write a function.

    27.2 QCUtil Object

    QCUtil Object provides the following properties:

    Returns the Quality Center OTA Run object (QC: Test Plan).

    Returns the collection of tests (QC: Test Lab).

    Returns the Quality Center OTA TSTest object (QC: Test Lab).

    Boolean value indicates whether QTP is currently connected to a QC.

    Returns the Quality Center OTA QCConnection objectd

    Returns the Quality Center OTA Test object (QC: Test Plan).

    Example to use QCUtil object:

    'Are we connecting to QC?

    IsQCConnected = Not (QCUtil.QCConnection Is Nothing)

    'Is the test stored in QC

    IsTestPresentInQC = Not (QCUtil.CurrentTest Is Nothing)

    'Is the test running from QC

    IsTestRunningFromQC = Not (QCUtil.CurrentRun Is Nothing)

     

    27.3 QC Open Test Architecture (OTA)

    即QCCOM, 略。最顶层是TDConnectionObject.TDConnection Object TDConnectionObject TDConnection Object TDConnection Object TDConnection Object

    27.4 TDConnectionObject

    If QC connected:

     

    Set TDConnection = QCUtil.QCConnection

    print TDConnection.Connected

     

    If QC not connected:

    Set qtApp = CreateObject("QuickTest.Application")

    qtApp.Launch

    qtApp.Visible = True

    qtApp.TDConnection.Connect "http://qcserver ", _
                  "MY_DOMAIN", "My_Project", "James", "not4you", False

    If qtApp.TDConnection.IsConnected Then

                   print "Connect to qc is successful" & qtApp.TDConnection.User & “log in”

    End if

    27.4 TheCommand and Recordset  Object

    The Command and Recordset object allow us to get data from QC DB.

    Note:注意DB返回数据的格式,如果是HTML格式,就得再写一个fucntion转换成plainText格式。

    'Get the TD OTA object reference

    Set TDConnection = QCUTil.QCConnection

    'Get the ID of the current test in the Data base

    TestID = QCutil.CurrentTest.Field ("TS_TEST_ID")

    'Get all the design steps present in the Test and

    'read the Step Description and Expected Text

    Set TDCommand = TDConnection.Command

    TDCommand.CommandText =  _

      "Select DS_DESCRIPTION, DS_EXPECTED From DESSTEPS where DS_TEST_ID = " & TestID

    'Execute the query

    Set TDRes = TDCommand.Execute

    'Loop throuh all the results in the recordset

    While Not TDRes.EOR

      Msgbox TDRes.FieldValue("DS_DESCRIPTION")

      Msgbox TDRes.FieldValue("DS_EXPECTED")

      TDRes.Next

    Wend

    27.5  The AttachmentFactory Collection

    AttachmentFactory collection can access attachments present in thefollowing object:

    Requirement Tab;

    Test Plan Tab: Folder, Test, Design steps;

    Test Lab Tab: Folder, Test, TestSet, TestRun, TestStep

    Defect;

    Here is the example to get attachment:

      Set oAttachments = FromPlace.Attachments

    'Get a collection of all attachments present

      Set allAttachment = oAttachments.NewList("")

    For Each oAttachment In allAttachment

    ‘process each attachments

    Next

    Download attachment as the “process each attachments” (above)

    Set FSO = CreateObject("Scripting.FileSystemObject")

    oAttachment.Load True,""

    'Copy the file from temporary downloaded location to the TOPlace folder

        FSO.CopyFile oAttachment.FileName, _

                     TOPlace & oAttachment.Name(1),True

    27.6  Simple way to download files from QC:PathFinder & Locate method

    Note: 1PathFinder based on the folders specified in the Folder Tab (ToolsàOptionàFolders)

                 2 The method only used on foldersor tests present in the test plan tab

                 3 If QTP local temporary fileshave same name file, will not download. So clear                              temporary files beforedownload.

    sFilePath = PathFinder.Local(“QCcommon.vbs”)

    ‘Or full path

    sFilePath = PathFinder.Local(“[QualityCenter] SubjectAllTestQCcommon.vbs”)

    27.7  Uploading attachment to QC

      'Get attachments (AttachmentFactory)

       Set oAttachments = QCUtil.CurrentTest.Attachments

      'Now just upload the new one

      Set oNewAttachment = oAttachments.AddItem(Null)

      oNewAttachment.FileName = NewFileName

      oNewAttachment.Type = 1 'TDATT_FILE

      oNewAttachment.Post

     

    27.8  Getting the Current Test location

    'Function to get the current test path is running from

    Public Function GetCurrentTestPath()

      GetCurrentTestPath = ""

      'The test in not in QC

      If QCUtil.CurrentTest is Nothing Then Exit Function

      'Get the test name

      testName = CurrentTest.Name

      'Get the ID of the parent folder

      parentFolderID = CurrentTest.Field("TS_SUBJECT").NodeID

      'Get the complete path of parent folder

      parentFolderPath = QCUtil.QCConnection.TreeManager.NodePath(parentFolderID)

      GetCurrentTestPath = parentFolderPath & "" & testName

    End Function

     

    27.9 Gettingthe Current Test Set Location:

        'Path for the folder where the Test Set exists

        testSetFolder = QCUtil.CurrentTestSet.TestSetFolder.Path

     

    27.10Enumerating all the tests in test lab tab

     The Test Lab folderstructure is managed by TestSetTreeManager object. TestSet object are managedby TestSetFactory object, Each TestSet object contains test managed byTSTestFactory object.

    --TestSetFactory –TestSet –ConditionFactory –Condition

                                                    --TSTestFactory--TSTest--RunFactory

    --TestSetTreeManager--TestSetFolder—TestSetFactory

    Here is the sample code:

    'This function can be used to enumerate all the test present inside a testSet.

    Set allTests = oTestSet.TSTestFactory.NewList("")

      For each oTest in allTests

        Print "Test - " & oTest.name

      Next

     

    Function EnumerateAllTestSets(ByVal FolderPath)

      'Check if the folder object has been passed or a string path

      If isObject(FolderPath) Then

        Set oTestSetFolder = FolderPath

      ElseIf FolderPath = "" or LCase(FolderPath) = "root" then

        'Root folder needs special handling

        Set oTestSetFolder = QCUtil.QCConnection.TestSetTreeManager.Root

      Else

        'Get the object from the path

        Set oTestSetFolder = QCUtil.QCConnection.TestSetTreeManager.NodeByPath(FolderPath)

      End If

      'A root folder cannot have any test set. So we need not check

      'for any testsets in case of the Root Folder.

      If oTestSetFolder.name <> "Root" Then

        Print oTestSetFolder.Path

        'Loop through all the test sets present in the folder

        Set allTestSets = oTestSetFolder.TestSetFactory.NewList("")

        For each oTestSet in allTEstSets

          Print "Test Set - " & oTestSetFolder.Path & "" & oTestSet.Name

          'Call another function to enumerate all the test inside the current test set

          EnuemrateTestInTestSet oTestSet

        Next

      End If

     

    27.11Enumerating all the tests in test plan tab

    QC OTA model’s TreeManager object manage the folderstructure of test plan tab. Each folder contains folders/tests. Tests aremanaged by a TestFactory object.

    --TestFactory--Test--DesignStepFactory--DesignStep

    --TreeManager--SysTreeNode

    Here is the sample code:

    Public Function EnumerateAllTestsinTestPlan(ByVal folderPathOrObject)

      If IsObject(folderPathOrObject) Then

        'We already have a reference to the folder object

        Set oTestPlanFolder = folderPathOrObject

      ElseIf folderPathOrObject = "" or lcase(folderPathOrObject) = "subject" Then

        'Get the root subject folder

        Set oTestPlanFolder = QCutil.QCConnection.TreeManager.NodeByPath("Subject")

      Else

       'Get the folder using the string path

        Set oTestPlanFolder = QCUTil.QCConnection.TreeManager.NodeByPath(folderPathOrObject)

      End If

    ‘And then use NewList on that object to get the collection of tests present in the folder

    Set oTestFactory = oTestPlanFolder.TestFactory.NewList("")

      For each oTest in oTestFactory

            MsgBox oTestPlanFolder.Path & "" & oTest.Name

      Next

      'Recursively call this function for each sub folder

      Set allSubFolders = oTestPlanFolder.NewList()

      For each oFolder in allSubFolders

        EnumerateAllTestsinTestPlan oFolder

      Next

    End Function

  • 相关阅读:
    TASK1
    CSS再学
    Html再学
    Python的hasattr() getattr() setattr() 函数使用方法详解
    GET/POST/g和钩子函数(hook)
    cookie和session
    SQLAlchemy外键的使用
    jquery树形菜单插件treeView
    linux设置防火墙
    linux解压命令
  • 原文地址:https://www.cnblogs.com/ellie-test/p/4354112.html
Copyright © 2011-2022 走看看