2012-09-22 59 views
0

我在QC中有大约800个奇数测试。我有一个vbscript,运行该脚本时,它将运行并将测试实验室中的所有测试用例标记为PASS。唯一的担忧是,脚本总是从第一次测试开始运行,直到我指定的最后一次测试(例如从第一次测试到第700次测试或从第一次测试到第140次测试)。我想更改代码,以便可以从中间运行脚本,如从第500次测试到第600次或从第430次测试到第450次测试等等。我尝试编辑我的代码中的所有可能的值,但没用。 有人可以帮我破解它吗?从QC中的测试实验室中选择测试

邮政代码

Option Explicit 

Dim j 
Dim qcServer 
Dim tdc 
Dim testset 
Dim TSetFact 
Dim tsTreeMgr 
Dim npath 
Dim tsFolder 
Dim tsList 
Dim tSetName 


qcServer = "http://testdirector.mot.com/qcbin" 
'nPath = "Root\Execution\Build_1.0" 
nPath = "Root\Execution\Build_1.0" 
tSetName = "Test Folder" 


WScript.Echo qcserver 

Set tdc = CreateObject("tdapiole80.tdconnection") 

tdc.InitConnectionEx qcServer 

tdc.Login "username", "password" 

tdc.Connect "DEFAULT", "TEAMMate" 

If tdc.ProjectConnected = True Then 
WScript.Echo "Connected to the Project Columbus" 
End If 

WScript.Echo "Logged in ??" 
WScript.Echo tdc.LoggedIn 
WScript.Echo "Connected ??" 
WScript.Echo tdc.Connected 
WScript.Echo "Server name" 
WScript.Echo tdc.ServerName 
WScript.Echo "Domain name" 
WScript.Echo tdc.DomainName 
WScript.Echo "Project name" 
WScript.Echo tdc.ProjectName 
WScript.Echo "username" 
WScript.Echo tdc.UserName 


Set TSetFact = tdc.TestSetFactory 
Set tsTreeMgr = tdc.TestSetTreeManager 
Set tsFolder = tsTreeMgr.NodeByPath(nPath) 

If tsFolder Is Nothing Then 
WScript.Echo "Testset folder not found" 
End If 
WScript.Echo "Test set folder exists" 

Set tsList = tsFolder.FindTestSets(tSetName) 

If tsList Is Nothing Then 
WScript.Echo "Testset not found" 
End If 

If tsList.Count > 1 Then 
WScript.Echo "Multiple Testsets found with same name" 
End If 
If tsList.Count < 1 Then 
WScript.Echo "Testset not found" 
End If 

WScript.Echo "Testset exists" 
Set testset = tsList.Item(1) 
WScript.Echo testSet.Name 

Dim TSTestFact 
Dim TestSetTestsList 
Dim thetest 



    Set TSTestFact = testSet.TSTestFactory 
    Set TestSetTestsList = TSTestFact.NewList("") 
    j = 0 

    Dim sID 
    Dim sName 

    For Each thetest In TestSetTestsList 
    j = j + 1 
    If j > 737 Then **j > 737 indicates run up to 737th test in the test lab) ** 
    Exit For 
    End If 
    'sID = thetest.ID 
    sName = thetest.Name 
    'WScript.Echo sID 
    If j > 0 Then 
    WScript.Echo "testcase found for execution" 
    Dim runName 
    Dim RunF 
    Dim theRun 
    Dim runStepF 
    Dim lst 
    Dim Item 
    Dim runtitle 

    'Set runtitle = "Run" 

    runName = thetest.ID 
    Set RunF = thetest.RunFactory 
    Set theRun = RunF.AddItem(runName) 
    theRun.Status = "Passed" 
    theRun.Post 

    theRun.CopyDesignSteps 
    theRun.Post 

    Set runStepF = theRun.StepFactory 
    Set lst = runStepF.NewList("") 
    For Each Item In lst 
    Item.Status = "Passed" 
    Item.Post 
    Next  
    End If  
    WScript.Echo sName 
    Next 

'Set ObjRun = QCUtil.CurrentRun 
'Dim sf1 as StepFactory 
'Dim s1 as step 

'Set sf1 = ObjRun.StepFactory 
'Set s1 = sf1.NewList("") 

'For i = 1 To s1.count 
's1.Item(i).Field("ST_EXPECTED") = "Your Expected" 
's1.Item(i).Field("ST_ACTUAL") = "Your Actual" 

'Next 

's1.Post 

'Disconnect 
If tdc.Connected Then 
tdc.Disconnect 
WScript.Echo "Disconnected QC session successfully" 
End If 

'Log off the server 
If tdc.LoggedIn Then 
tdc.Logout 
WScript.Echo "Logged off from the Server successfully" 
End If 

'Release the TDConnection object. 
tdc.ReleaseConnection 
WScript.Echo "Released the connection" 
'Check status 
Set tdc = Nothing 

回答

1

它出现的代码应该测试用例数737或更高的工作。同时检查质量中心对OTA参考的帮助可能有所帮助。你可以从这里下载两个美科利质量中心开放式测试架构API参考(OTA_API_Reference.chm)& 站点管理API参考(Site_Admin_API_Reference.chm)文件: http://technologicaguru.blogspot.com.au/2008/03/quality-center-open-test-architecture.html

没有没有尝试过自己,乍一看您可以尝试用以下代码替换部分代码,以指定较低和较高的测试用例编号范围进行查询:

Dim sID 
Dim sName 
Dim testCaseStart 
Dim testCaseEnd 
'Change testCaseStart and testCaseEnd to required test case range 
testStartVal = 500 
testEndVal = 600 

For Each thetest In TestSetTestsList 
    If j >= testCaseStart And j <= testCaseEnd then 
    'sID = thetest.ID 
    sName = thetest.Name 
    'WScript.Echo sID 
    If j > 0 Then 
     WScript.Echo "testcase found for execution" 
     Dim runName 
     Dim RunF 
     Dim theRun 
     Dim runStepF 
     Dim lst 
     Dim Item 
     Dim runtitle 

     'Set runtitle = "Run" 

     runName = thetest.ID 
     Set RunF = thetest.RunFactory 
     Set theRun = RunF.AddItem(runName) 
     theRun.Status = "Passed" 
     theRun.Post 

     theRun.CopyDesignSteps 
     theRun.Post 

     Set runStepF = theRun.StepFactory 
     Set lst = runStepF.NewList("") 
     For Each Item In lst 
     Item.Status = "Passed" 
     Item.Post 
     Next  
    End If  
    WScript.Echo sName 
    End If 
    j = j + 1 
Next 
相关问题