如何使用 VBA 和 QC OTA 在文件夹中查找测试集的数量?
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/28208747/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
How to find number of test sets in a folder using VBA and QC OTA?
提问by rakesh sharma
I am writing VBA code using QC OTA to pull execution report needed to sent to client daily, is there any way to find number of test sets withing a folder so that I can run the loop to find total number of passed, failed scripts? now I am using manually entered value sTestSetCount
我正在使用 QC OTA 编写 VBA 代码来提取每天需要发送给客户端的执行报告,有没有办法通过文件夹找到测试集的数量,以便我可以运行循环来查找通过的、失败的脚本总数?现在我正在使用手动输入的值sTestSetCount
'Piece of the whole script
For sCount = 1 To sTestSetCount
Set tsList = tsFolder.FindTestSets("P0049585")
Dim oTestSet: Set oTestSet = tsList.NewList("").Item(sCount).TsTestFactory 'Item(1) Refers to the 1st test set in the path
Dim testFilter1: Set testFilter1 = oTestSet.Filter
'To Filter by Passed status
testFilter1.Filter("TC_STATUS") = "Passed"
vPass = vPass + oTestSet.NewList(testFilter1.Text).Count
'To Filter by Failed Status
testFilter1.Filter("TC_STATUS") = "Failed"
vFail = vFail + oTestSet.NewList(testFilter1.Text).Count
'To Filter by No Run status
vNR = vNR + oTestSet.NewList("[Filter]{TableName:TESTCYCL,ColumnName:TC_STATUS,LogicalFilter:" & Chr(39) & "No" & Chr(32) & "Run" & Chr(39) & ",VisualFilter:" & Chr(39) & "No" & Chr(32) & "Run" & Chr(39) & ",NO_CASE:}").Count
'To Filter by Not Completed status
vNC = vNC + oTestSet.NewList("[Filter]{TableName:TESTCYCL,ColumnName:TC_STATUS,LogicalFilter:" & Chr(39) & "Not" & Chr(32) & "Completed" & Chr(39) & ",VisualFilter:" & Chr(39) & "Not" & Chr(32) & "Completed" & Chr(39) & ",NO_CASE:}").Count
'To Filter by N\A
testFilter1.Filter("TC_STATUS") = "N/A"
vNA = vNA + oTestSet.NewList(testFilter1.Text).Count
'To Filter by Blocked
testFilter1.Filter("TC_STATUS") = "Blocked"
vBlocked = vBlocked + oTestSet.NewList(testFilter1.Text).Count
Next sCount
Worksheets("Status").Range("C10").Value = vPass + vFail + vNR + vNC + vNA + vBlocked
Worksheets("Status").Range("D10").Value = vPass
Worksheets("Status").Range("E10").Value = vFail
Worksheets("Status").Range("F10").Value = vNC
Worksheets("Status").Range("G10").Value = vBlocked
Worksheets("Status").Range("H10").Value = vNA
Worksheets("Status").Range("H11").Value = (vPass + vFail) / (vPass + vFail + vNR + vNC + vBlocked) * 100 & " %"
Application.StatusBar = "Execution Percentage = " & ((vPass + vFail) / (vPass + vFail + vNR + vNC + vBlocked) * 100) & "%"
回答by Roland
Just get the TestSetFactory of the test lab folder and create a NewList without using a filter to get all test sets in that folder:
只需获取测试实验室文件夹的 TestSetFactory 并创建一个 NewList 而不使用过滤器来获取该文件夹中的所有测试集:
treeMgr = tdc.TestSetTreeManager
folder = treeMgr.NodeByPath("someTestLabPath")
testSetFact = folder.TestSetFactory
testSetList = testSetFact.NewList("")
sTestSetCount = testSetList.Count
回答by Purshottam Sharma
This statement will help to take the count of the no run test case but if you apply more filter on "no run" test case.then try below code
此语句将有助于计算未运行测试用例的数量,但如果您在“未运行”测试用例上应用更多过滤器。然后尝试下面的代码
testFilter1.Filter("TC_STATUS") = "'No Run'"
testFilter1.Filter("TS_STATUS") = "Complex"
this will help you to find the total no run test case and in no run how many test cases are in complex.
这将帮助您找到未运行的测试用例总数,以及在未运行的情况下有多少测试用例是复杂的。
vNR = vNR + oTestSet.NewList("[Filter]{TableName:TESTCYCL,
ColumnName:TC_STATUS,LogicalFilter:" & Chr(39) & "No" & Chr(32) & "Run" & Chr(39) &
",VisualFilter:" & Chr(39) & "No" & Chr(32) & "Run" & Chr(39) &
",NO_CASE:}").Count
Thanks PT :)
谢谢 PT :)