2012-09-22 2 views
0

나는 QC에서 약 800 번의 테스트를하고있다. 스크립트를 실행할 때 테스트 랩에서 모든 테스트 사례를 통과로 표시하는 vbscript가 있습니다. 유일한 걱정은 스크립트가 항상 첫 번째 테스트에서 마지막으로 실행할 때까지 실행된다는 것입니다 (첫 번째 테스트에서부터 700 번째 테스트까지 또는 첫 번째 테스트에서 140 번째 테스트까지). 나는 500 번째 테스트부터 600 번째 테스트 또는 430 번째 테스트에서 450 번째 테스트와 같이 가운데에서 스크립트를 실행할 수 있도록 코드를 변경하려고합니다. 내 코드에서 가능한 모든 값을 편집했지만 사용하지 않았습니다. 누군가 그것을 부수는데 도움을 줄 수 있습니까?테스트 랩 중간에서 테스트 선택하기

게시 코드는

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 참조가 도움이 될 수있는 Quality Center 도움말을 확인하십시오. 당신은 여기에서 모두 머큐리 퀄리티 센터 오픈 테스트 아키텍처 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