2016-05-12 23 views
1

Gibt es eine Möglichkeit, OTA zu verwenden, um Testpläne in ALM zu bearbeiten?Parameterwerte im ALM-Testplan mit OTA ändern

Zum Beispiel habe ich 350 Testpläne in ALM und ich möchte die Parametereinstellungen für jede von ihnen ändern. Es ist dumm, es manuell zu machen.

Update 1:

Nach vielen Stunden Recherche über OTA tut, sind hier, was ich habe jetzt:

von Codes unter Verwendung kann ich zu einem Testplan gehen und seinen Namen bekommen, aber immer noch nicht wissen, wie eine vollständige Liste der BPComponents in ihm zu bekommen ...

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 scheint bietet eine Möglichkeit, um Parameterwerte zu bearbeiten. Aber das Problem ist, dass das Test Objekt Test.Load Methode nicht unterstützt.

Update 2:

Nach mehr Forschung, ich glaube nicht, dass wir es durch UFT/QTP tun können. Der Grund ist, dass wir gemäß dem offiziellen OTA-Leitfaden (Link here) "die Test zu BusinessProcess umwandeln" müssen. Scheint, dass dies in VBScript nicht möglich ist, da VBS nicht über Dim As oder CType verfügt.

Nächster Schritt: Vielleicht kann ich versuchen, es auf Testplanebene, aber nicht auf Komponentenebene zu tun?

Antwort

0

Gelöst von mir.

Hier sind Details:

Erstens durch OTA verwenden, können wir nicht auf Komponentenebene berühren; aber wir können den Testplan/Laborlevel manipulieren. Das heißt, wenn wir Parameterwerte mit OTA ändern wollen, müssen wir einen globalen Parameter auf Testplanebene erstellen und ändern.

Im Folgenden sind einige Beispielcodes:

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