2016-05-12 2 views
1

Existe-t-il un moyen d'utiliser OTA pour manipuler les plans de test dans ALM? Par exemple, j'ai 350 plans de test dans ALM et je veux changer les paramètres pour chacun d'entre eux. C'est idiot de le faire manuellement.Modifier les valeurs des paramètres dans le plan de test ALM à l'aide d'OTA

Mise à jour 1:

Après avoir fait des recherches sur OTA pendant de nombreuses heures, voici ce que je suis maintenant:

En utilisant les codes ci-dessous, je peux aller à un plan de test et obtenir son nom, mais toujours ne savent pas comment obtenir une liste complète des BPComponents en elle ...

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 semble fournir un moyen de modifier les valeurs des paramètres. Mais le problème est que l'objet Test ne prend pas en charge la méthode Test.Load.

Mise à jour 2:

Après plus des recherches, je ne pense pas que nous pouvons le faire par UFT/QTP. La raison en est que: selon OTA guide officiel (lien here), nous devons «cast le Test à BusinessProcess». Semble que cela ne peut pas être fait dans VBScript parce que VBS n'a pas quelque chose comme Dim As ou CType. Etape suivante: peut-être que je peux essayer de le faire au niveau du plan de test mais pas au niveau du composant?

Répondre

0

Résolu par moi-même.

Voici les détails:

Tout d'abord, en utilisant OTA, on ne peut pas toucher le niveau des composants; mais nous pouvons manipuler le plan de test/niveau de laboratoire. Ce qui signifie que si nous voulons changer les valeurs des paramètres en utilisant OTA, nous devons créer un paramètre global au niveau du plan de test et le changer.

Voici quelques exemples de codes:

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