如何使用Java向测试计划中的测试用例添加参数?

如何使用Java向测试计划中的测试用例添加参数?,java,hp-quality-center,com4j,Java,Hp Quality Center,Com4j,我尝试了各种各样的方法,在谷歌上搜索了好几个小时,但都没有找到解决问题的方法 我通过Com4j使用质量中心OTA API让我的程序与QC进行通信。 它工作得很好,但现在我遇到了这个问题: 我想使用我的程序向“测试计划”中的测试用例添加新参数 如果我使用VB,它的工作原理如下: Dim supportParamTest As ISupportTestParameters Set supportParamTest = TDConnection.TestFactory.Item(5) Set tes

我尝试了各种各样的方法,在谷歌上搜索了好几个小时,但都没有找到解决问题的方法

我通过Com4j使用质量中心OTA API让我的程序与QC进行通信。 它工作得很好,但现在我遇到了这个问题:

我想使用我的程序向“测试计划”中的测试用例添加新参数

如果我使用VB,它的工作原理如下:

Dim supportParamTest As ISupportTestParameters
Set supportParamTest = TDConnection.TestFactory.Item(5)

Set testParamsFactory = supportParamTest.TestParameterFactory
Set parameter = testParamsFactory.AddItem(Null)
parameter.Name = name
parameter.Description = desc
parameter.Post

Set AddTestParameter = parameter
重要的部分是对TestParameterFactory调用AddItem()。它添加并返回一个参数,然后您可以给出该参数的名称和描述。在VB中,AddItem方法的参数为Null

使用Java一开始看起来很相似:

首先,我建立连接并获取TestFactory(以及测试用例列表)

qcTestList包含测试计划中的所有测试

ITest test = qcTestList.item(1);      
ISupportTestParameters testParam = test.queryInterface(ISupportTestParameters.class);
ITestParameterFactory paramFac = testParam.testParameterFactory().queryInterface(ITestParameterFactory.class);
到目前为止没有问题。所有的“演员阵容”都是成功的。 现在我想在TestParameterFactory上调用addItem方法,就像在VB中一样

Com4jObject com = paramFac.addItem(null);
这不起作用。addItem()方法始终返回null。我尝试过各种参数,比如随机字符串、随机整数、测试用例的ID等等,但都不起作用

如何在Java中正确使用此方法?

或者通常:如何使用Java向测试计划中的现有测试用例添加参数?


快速说明:将测试用例添加到测试计划的工作原理与将参数添加到此测试用例非常相似。您还可以使用factory和addItem方法。在VB中,您将null作为参数,但在Java中,您使用字符串(被解释为测试名称)。但正如我所说,这在这里不起作用。

您想要传递给AddItem的是DBNull和notnull。 在VB中是一样的,但在Java和.NET中不是

不确定如何使用Com4J公开DBNull


在网站上了解更多信息。

我终于找到了答案:

Com4jObject obj = iTestParameterFactory.addItem(new Variant(Variant.Type.VT_NULL));
iTestParameter = obj.queryInterface(ITestParameter.class);
iTestParameter.name("AAB");
iTestParameter.defaultValue("BBB");
iTestParameter.description("CCC");
iTestParameter.post();

注意。

这正是我所需要的。新变量(Variant.Type.VT_NULL)-显然;)
//C# code snippet -> You have to use DBNull.Value instead of null        
//Add new parameter and assign values
    TestParameter newParam =(TestParameter)tParamFactory.AddItem(DBNull.Value);
    newParam.Name = "ParamNew";
    newParam.DefaultValue = "DefaultValue";
    newParam.Description = "AnyDesc";
    newParam.Post(); 
//C# code snippet -> You have to use DBNull.Value instead of null        
//Add new parameter and assign values
    TestParameter newParam =(TestParameter)tParamFactory.AddItem(DBNull.Value);
    newParam.Name = "ParamNew";
    newParam.DefaultValue = "DefaultValue";
    newParam.Description = "AnyDesc";
    newParam.Post();