如何在Java中添加HP QC中的测试步骤

时间:2014-06-09 18:15:15

标签: java qc

我正在尝试通过JAVA访问和修改HP QC中的测试用例。代码正在成功运行,但Step,status,Exec日期未更新。 这是我的代码

for (Com4jObject obj : testInstances)  
{  
  ITSTest testInstance = obj.queryInterface(ITSTest.class);  
  ITSTest tstest = obj.queryInterface(ITSTest.class);

  IRunFactory runfactory = tstest.runFactory().queryInterface(IRunFactory.class);
  IRun run=runfactory.addItem("RunNew").queryInterface(IRun.class);
  Com4jObject step = run.stepFactory();
  // run.field("Step #", "Step1");
  run.status("Passed");
  // Com4jObject steps = run.stepFactory();
  // System.out.println(run.field("Actual Result"));
  // run.field("Actual Result", "As Expected. Please find attachment with TC001");
  if(tstest.name().contains("[1]TC001"))
  {
    try {
      String fileName = new File(files.get(i)).getName();
      String folderName = new File(files.get(i)).getParent();
      System.out.println("FILE: "+fileName);
      System.out.println("FOLDER: "+folderName);

      IAttachmentFactory attachfac = tstest.attachments().queryInterface(IAttachmentFactory.class);
      IAttachment attach = attachfac.addItem(fileName).queryInterface(IAttachment.class);
      IExtendedStorage extAttach = attach.attachmentStorage().queryInterface(IExtendedStorage.class);
      extAttach.clientPath(folderName);  
      extAttach.save(fileName, true);
      //attach.description(Actual);
      attach.post();
      attach.refresh();
    } catch(Exception e) {
      System.out.println("QC Exceptione : "+e.getMessage());
    }
  }

  run.post();
  //AppLog.info("  Test Instance: %s", testInstance.name());
  System.out.println(("Test Instance: %s"+ testInstance.name()));
} 

1 个答案:

答案 0 :(得分:0)

您需要分别对每个项目调用post():测试运行和每个创建的步骤。 C#中的示例,从您检索步骤工厂的位置开始。

// Create test run
var oRunInstance = (QcClient.RunFactory)oTsTest.RunFactory;
var oRun = (QcClient.Run)oRunInstance.AddItem("Performance Test");
oRun.Status = "Passed";
oRun.Post();
oRun.Refresh();

// Create test run steps
var oTest = (QcClient.Test)oTsTest.Test;
var tsDesignStepList = oTest.DesignStepFactory.NewList("");
var oStepFactory = (QcClient.StepFactory)oRun.StepFactory;
foreach (QcClient.DesignStep oDesignStep in tsDesignStepList)
{
  var oStep = (QcClient.Step)oStepFactory.AddItem(oDesignStep.StepName);
  oStep.Status = "Passed";
  oStep.Post();
}