【问题标题】:How to add parameters to test cases in Test Plan using Java?如何在使用 Java 的测试计划中向测试用例添加参数?
【发布时间】:2016-09-21 18:31:11
【问题描述】:

我尝试了各种方法并在 Google 上搜索了多个小时,但找不到解决问题的方法。

我通过 Com4j 使用 Quality Center 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(以及测试用例列表)。

QcConnect qc = new QcConnect(server, login, password, domain, project);
ITDConnection qcConnection = qc.getConnection();

ITestFactory qcTestFactory = qcConnection.testFactory().queryInterface(ITestFactory.class);
IList qcTestList = qcTestFactory.newList("");   

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 的测试计划中向现有测试用例添加参数?

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

【问题讨论】:

    标签: java hp-quality-center com4j


    【解决方案1】:

    我终于找到了答案:

    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();
    

    问候。

    【讨论】:

    • 这正是我所需要的。
    • new Variant(Variant.Type.VT_NULL)——很明显;)
    【解决方案2】:

    您要传递给 AddItem 的是 DBNull 而不是 null。 在 VB 中是一样的,但在 Java 和 .NET 中则不同。

    不确定如何使用 Com4J 公开 DBNull。

    this 站点了解更多信息。

    【讨论】:

      【解决方案3】:
      //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(); 
      

      【讨论】:

        猜你喜欢
        • 2019-10-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多