Vb.net 在QC中从测试实验室中间选择测试

Vb.net 在QC中从测试实验室中间选择测试,vb.net,visual-studio-2010,vbscript,hp-quality-center,Vb.net,Visual Studio 2010,Vbscript,Hp Quality Center,我有大约800多个QC测试。我有一个vbscript,当我运行脚本时,它将运行并将测试实验室中的所有测试用例标记为通过。唯一担心的是,脚本总是从第一个测试开始运行,直到我指定的最后一个测试(比如从第一个测试到第700个测试,或者从第一个测试到第140个测试)。我想修改代码,这样我就可以从中间运行脚本,比如从第500次测试到第600次测试,或者从第430次测试到第450次测试等等。我尝试编辑代码中所有可能的值,但没有用。 有人能帮我破解它吗 邮政编码 Option Explicit Dim j

我有大约800多个QC测试。我有一个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
选项显式
Dim j
Dim qcServer
Dim tdc
模糊测试集
暗色舌苔
暗淡的tsTreeMgr
暗npath
Dim TSF文件夹
Dim tsList
暗色采名
qcServer=”http://testdirector.mot.com/qcbin"
'nPath=“Root\Execution\Build\u 1.0”
nPath=“Root\Execution\Build\u 1.0”
tSetName=“测试文件夹”
Echo qcserver
设置tdc=CreateObject(“tdapiole80.tdconnection”)
tdc.InitConnectionEx qcServer
tdc.登录“用户名”、“密码”
tdc.连接“默认”、“队友”
如果tdc.ProjectConnected=True,则
Echo“已连接到Columbus项目”
如果结束
Echo“已登录??”
WScript.Echo tdc.LoggedIn
Echo“已连接??”
WScript.Echo tdc.Connected
Echo“服务器名称”
WScript.Echo tdc.ServerName
WScript.Echo“域名”
WScript.Echo tdc.DomainName
Echo“项目名称”
WScript.Echo tdc.ProjectName
WScript.Echo“用户名”
WScript.Echo tdc.UserName
设置TSetFact=tdc.TestSetFactory
Set tsTreeMgr=tdc.testsettreemager
设置tsFolder=tsTreeMgr.NodeByPath(nPath)
如果tsFolder什么都不是,那么
Echo“找不到测试集文件夹”
如果结束
Echo“测试集文件夹存在”
Set tsList=tsFolder.FindTestSets(tSetName)
如果tsList什么都不是,那么
Echo“找不到测试集”
如果结束
如果tsList.Count>1,则
Echo“找到具有相同名称的多个测试集”
如果结束
如果tsList.Count小于1,则
Echo“找不到测试集”
如果结束
Echo“测试集存在”
Set testset=tsList.Item(1)
WScript.Echo testSet.Name
模糊测试事实
暗淡的测试集列表
模糊测试
Set-TSTestFact=testSet.TSTestFactory
Set TestSetTestsList=TSTestFact.NewList(“”)
j=0
暗sID
暗礁
对于TestSetTestsList中的每个测试
j=j+1
如果j>737,则**j>737表示在测试实验室进行第737次测试)**
退出
如果结束
'sID=test.ID
sName=测试名称
'WScript.Echo sID
如果j>0,则
Echo“找到要执行的测试用例”
暗运行名
暗色符
暗色轮
暗淡的runStepF
暗lst
暗项
暗淡的跑步标题
'Set runtitle=“Run”
runName=thetest.ID
设置RunF=test.RunFactory
设置run=RunF.AddItem(runName)
theRun.Status=“已通过”
塞伦邮报
theRun.CopyDesignSteps
塞伦邮报
设置runStepF=theRun.StepFactory
Set lst=runStepF.NewList(“”)
对于lst中的每个项目
Item.Status=“已通过”
项目.邮寄
下一个
如果结束
回音sName
下一个
'Set ObjRun=QCUtil.CurrentRun
'将sf1调暗为步进式工厂
'将s1变暗为步骤'
'设置sf1=ObjRun.StepFactory
'集合s1=sf1.NewList(“”)
'对于i=1到s1.count
's1.项目(i).字段(“ST_预期”)=“您的预期”
's1.项目(i).字段(“ST_实际值”)=“您的实际值”
”“接着呢
“s1.邮政
“断开
如果tdc已连接,则
断开
Echo“已成功断开QC会话”
如果结束
'注销服务器
如果tdc.LoggedIn,则
tdc.注销
Echo“已成功从服务器注销”
如果结束
'释放TDConnection对象。
释放连接
Echo“已释放连接”
'检查状态
设置tdc=无

代码似乎适用于737号或更高的测试用例。另外,请在质量中心帮助中查看可能有帮助的OTA参考资料。您可以从以下位置下载Mercury Quality Center开放测试体系结构API参考(OTA_API_Reference.chm)和站点管理API参考(Site_Admin_API_Reference.chm)文件:

如果我自己没有尝试过,乍一看,您可以尝试用以下代码替换部分代码,指定要查询的测试用例编号的下限和上限范围:

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
Dim sID
暗礁
Dim testCaseStart
暗测试用例端
'将testCaseStart和testCaseEnd更改为所需的测试用例范围
testStartVal=500
测试值=600
对于TestSetTestsList中的每个测试
如果j>=testCaseStart和j 0,则
Echo“找到要执行的测试用例”
暗运行名
暗色符
暗色轮
暗淡的runStepF
暗lst
暗项
暗淡的跑步标题
'Set runtitle=“Run”
runName=thetest.ID
设置RunF=test.RunFactory
设置run=RunF.AddItem(runName)
theRun.Status=“已通过”
塞伦邮报
theRun.CopyDesignSteps
塞伦邮报
设置runStepF=theRun.StepFactory
Set lst=runStepF.NewList(“”)
对于lst中的每个项目
Item.Status=“已通过”
项目.邮寄
下一个
如果结束
回音sName
如果结束
j=j+1
下一个