QC:如何使用C#中的OTA API通过测试用例ID在QC中查找测试

时间:2013-09-23 10:16:04

标签: c# hp-quality-center qc

我在C#中使用OTA API。

如果我有测试用例ID,如何在QC中找到测试。 (按测试用例ID查找测试) 测试可以出现在测试计划中的任何文件夹下(即在SUbject下)。

2 个答案:

答案 0 :(得分:5)

假设您有一个开放的连接,并且知道存在该ID的测试(例如,来自先前查询的结果),您可以执行以下操作:

int testId = 1234;
TestFactory tf = connection.TestFactory;
Test t = tf[id];

对TestFactory索引器的调用将引发“项目不存在”的COMException。如果不存在具有该ID的测试。

如果您不确定是否存在具有该ID的测试,则可以执行以下操作:

int testId = 1234;
TestFactory tf = connection.TestFactory;
TDFilter filter = tf.Filter;
filter["TS_TEST_ID"] = id.ToString();
List tests = tf.NewList(filter.Text); // List collection is the ALM List, not .NET BCL List.
Test t = (tests.Count > 0) ? tests[1] : null; // ALM List collection indexes are 1-based, and test ID is guaranteed to be unique and only return 1 result if it exists.

答案 1 :(得分:2)

您可以在Conection上创建过滤器。下面的示例按其名称搜索测试,但如果您在“TS_TEST_ID”上更改“TS_TEST_NAME”,则可以使用测试ID进行搜索。

public int findTestCase(TDAPIOLELib.TDConnection connection, string testCaseName)
        {
            TestFactory tstF = connection.TestFactory as TestFactory;
            TDFilter testCaseFilter = tstF.Filter as TDFilter;
            testCaseFilter["TS_TEST_NAME"] = testCaseName;
            List testsList = tstF.NewList(testCaseFilter.Text);
            if(testsList != null && testsList.Count == 1)
            {
                log.log("Test case " +testCaseName+ " was found ");
                Test tmp =  testsList[0] as Test;
                return (int)tmp.ID;
            }

        return -1;
    }