使用Java和COM4J的Quality Center V11脚本统计信息

时间:2013-03-27 15:17:23

标签: java qc com4j hp-quality-center

我正在尝试使用Java访问ALM V11(QC)测试脚本详细信息,例如Passed / No Run,但我得到的是null。有人可以帮我这个吗?

我得到错误:

java.lang.NullPointerException
at com.testpack.HPTest2.main(HPTest2.java:53)

我用来连接的代码

        ITDConnection itd=ClassFactory.createTDConnection();
        System.out.println("Test1.1:"+ itd.connected());
        itd.initConnectionEx(url);
        System.out.println("Test1:"+ itd.connected());
        itd.connectProjectEx(domain,project,username,password);


        ITestFactory testFactory;
        //ITSTest2 testFactory;
        ITDFilter2 filterF;
        IList executinList;

        testFactory=(itd.testFactory()).queryInterface(ITestFactory.class);
        //testFactory=(ITestFactory)itd.testFactory().queryInterface(ITestFactory.class);
        filterF=testFactory.fields().queryInterface(ITDFilter2.class);
        String query="\"Passed\"";
        filterF.filter("TC_STATUS",query);
        executinList=filterF.newList();

我正在尝试这个比较我的VBScript

Set tdc = CreateObject("tdapiole80.tdconnection")
tdc.InitConnection serverName, domainName
tdc.ConnectProject projectName, projUserName, projPassword

'Get the test factory filter
Set TestSetFact = tdc.TSTestFactory
'TestSetFact.AddItem()
Set TestSetFilter = TestSetFact.Filter
stemp = ApplicationName
appsplit = Split(ApplicationName, "or")

irowtemp = 18
'----------------------------------------------------

'--------------------------------
For iLoop = 0 To UBound(appsplit)
    TestSetFilter.Filter("TS_USER_06") = appsplit(iLoop)

    If initiativeName <> "" Then
        TestSetFilter.Filter("TS_USER_04") = initiativeName
    End If
    TestSetFilter.Filter("TC_STATUS") = "Passed"


    Sheet1.Cells(irowtemp, 2).Value = Trim(appsplit(iLoop))

1 个答案:

答案 0 :(得分:3)

如果包装的COM对象不属于该类型,则Com4jObject.queryInterface()方法返回null。

这可能只是自动完成,搞砸了你的代码,但你应该使用

filterF=testFactory.filter().queryInterface(ITDFilter2.class);

获取过滤器,而不是字段()。