【问题标题】:Change parameter values in ALM test plan using OTA使用 OTA 更改 ALM 测试计划中的参数值
【发布时间】:2016-05-12 19:50:32
【问题描述】:

有没有办法使用 OTA 来操纵 ALM 中的测试计划?

例如,我在 ALM 中有 350 个测试计划,我想更改每个测试计划的参数设置。手动做很傻。

更新 1:

在对 OTA 进行了数小时的研究之后,我得到了以下信息:

通过使用下面的代码,我可以转到一个测试计划并获取它的名称,但仍然不知道如何获取其中的 BPComponents 的完整列表...

set tdc = createobject("TDApiOle80.TDConnection")
tdc.InitConnectionEx "http://URL:8080/qcbin"
tdc.Login "Username","Password"
tdc.Connect "Domain","Project"

If tdc.Connected = true Then
    print "Connect successful!!!"
End If

Set TreeMgr = tdc.TreeManager
    Set SubjRoot = TreeMgr.NodeByPath("Subject\")
    Set TestFact = tdc.TestFactory
    Set SubjectNodeList = SubjRoot.FindChildren("", False, "")

 For Each oSubjectNode In SubjectNodeList
        'Print out the subject path
        'Print oSubjectNode.Path

        'Does this have any tests?
        Set TestFilter = TestFact.Filter
        TestFilter.Filter("TS_SUBJECT") = Chr(34) & oSubjectNode.Path & Chr(34)
        Set TestList = TestFact.NewList(TestFilter.Text)
        For Each oTest In TestList
            print oTest.Name
'=============get stuck here========================
                Set Components=oTest.BPComponent
                Set Component=Components.Item(1)
'=============trying to get components list==========
            Next

Next  

This post 似乎提供了一种编辑参数值的方法。但问题是Test 对象不支持Test.Load 方法。

更新 2:

经过更多研究,我认为我们不能通过 UFT/QTP 来做到这一点。原因是:根据OTA官方指南(链接here),我们需要“将Test转换为BusinessProcess”。似乎这不能在 VBScript 中完成,因为 VBS 没有 Dim As 或 CType 之类的东西。

下一步:也许我可以尝试在测试计划级别而不是组件级别?

【问题讨论】:

    标签: qtp hp-uft alm hp-quality-center


    【解决方案1】:

    自己解决。

    以下是详细信息:

    首先,通过OTA,我们无法触及组件级别;但我们可以操纵测试计划/实验室级别。这意味着如果我们想使用 OTA 更改参数值,我们需要在测试计划级别创建一个全局参数并进行更改。

    以下是一些示例代码:

    '=====================Initial ALM Connection=================='
    set tdc = createobject("TDApiOle80.TDConnection")
    tdc.InitConnectionEx "ALM URL"
    tdc.Login "UserName","Password"
    tdc.Connect "Domain","Project"
    
    If tdc.Connected = true Then
        print "Connect successful!!!"
    else
        'do something'
    End If
    '=====================Initial ALM Connection=================='
    
    
    
    '====================Get all test plans under a folder========================
        Set treeMng = tdc.TreeManager
        Set sourceFolder = treeMng.NodeByPath("Subject\Path")
        Set testF = sourceFolder.TestFactory
        ' Find the test ID.
         Set aFilter = testF.Filter
         Set TestList = testF.NewList("")
         For each test in TestList
            print test.Name
            '=========Can search a specific test plan here'
            If test.Name = "TestCaseName" Then
                set TestObj = test
            End If
         Next
    '====================Get all test plans under a folder========================
    
    
    '====================Modify test plan name===================='
    'After get a specific TestObj
    TestObj.Name = "New Name"
    TestObj.Post
    '====================Modify test plan name===================='
    
    
    '====================Change parameter value=====================
    Set para = TestObj.TestParameterFactory
    Set paraList = Para.NewList("")
    For each a in paraList
        If a.Name = "Para1" Then
            a.Name = "Modified1"
            a.DefaultValue = "ValueModified1"
            a.Post
            a.UnLockObject
        End If
    
        If a.Name = "para2" Then
            a.Name = "Modified2"
            a.DefaultValue = "ValueModified2"
            a.Post
            a.UnLockObject
        End If
    Next
    '====================Change parameter value=====================
    
    
    
    '====================Search a specific test plan, copy and paste==============
    Set treeMng = tdc.TreeManager
    Set sourceFolder = treeMng.NodeByPath("Subject\Path")
    Set testF = sourceFolder.TestFactory
    ' Find the test ID.
    Set aFilter = testF.Filter
    Set TestList = testF.NewList("")
    TestName = """Test_Case_Name"""
    aFilter.Filter("TS_NAME") = TestName
    Set TestsList = aFilter.NewList()
    Set Test = TestsList.Item(1)
    print Test.id
    Set iscp = testF
    clipboard = iscp.CopyToClipBoard(Test.ID, 0, "")
    Set destFolder = treeMng.NodeByPath("Subject\Path")
    Set testF = destFolder.TestFactory
    Set iscp = testF
    iscp.PasteFromClipBoard clipboard,destFolder.NodeID,0,1
    destFolder.Refresh
    '====================Search a specific test plan, copy and paste==============
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多