0

保存テストとテスト結果にはMercury Quality Center 9を使用しています。テスト計画
からテスト データを読み取り、テスト結果をjava経由でテスト ラボに書き込む必要があります。 これについてグーグルで見つけようとしましたが、何も見つかりませんでした。

アップデート:

次のコードで MQC 9 を操作するために qctools4j を使用しようとしました。

public void connect() {
try{
    IQcConnection conn = QcConnectionFactory.createConnection("http://qc/qcbin");                           
    conn.connect("login", "password", "DEFAULT","project");                         
    TestClient tc = conn.getTestClient();
    System.out.println("Connection success!!!");
}
catch (QcException e) {
    System.out.println(e.getMessage());
    e.printStackTrace();
}
}

次の例外メッセージが表示されました。

*org.qctools4j.exception.QcException: Can't co-create object
    at org.qctools4j.clients.QcConnectionImpl.initConnection(Unknown Source)
    at org.qctools4j.clients.QcConnectionImpl.<init>(Unknown Source)
    at org.qctools4j.QcConnectionFactory.createConnection(Unknown Source)
    at automation_framework1.automation_framework1.QCWorker.connect1(QCWorker.java:38)
    at automation_framework1.automation_framework1.Main.main(Main.java:12)
Caused by: com.jacob.com.ComFailException: Can't co-create object
    at com.jacob.com.Dispatch.createInstanceNative(Native Method)
    at com.jacob.com.Dispatch.<init>(Dispatch.java:99)
    at com.jacob.activeX.ActiveXComponent.<init>(ActiveXComponent.java:58)
    at org.qctools4j.clients.QcConnectionImpl.initConnection(Unknown Source)*

私は何を間違っていますか?

4

2 に答える 2

1

私は QC 9 の開発に参加しましたが、Java API があるかどうかはわかりません。ただし、COM インターフェイスまたはOTA APIがあります。Java から COM API を呼び出すのに役立つライブラリを使用できます。

例えば:

  1. ジェイコブはオープンソースであり、ここにいくつかの例があります.
  2. Nevaobject - 商用ですが、より安定しています。

幸運を!

編集:

qctools4j (Jacob に基づいています) を見ただけで、試したことはありません。

于 2012-09-26T11:12:43.410 に答える
0

問題を解決する方法を見つけました。次のコードでgroovy scriptomを使用しました(誰かの助けになるかもしれません):

def tdc;
public QualityCenterController(){
static{
System.load("C:\\WINDOWS\\system32\\OTAClient.dll");
System.load("D:\\Work\\automation_framework\\libs\\lib\\jacob-1.16-M2-x86.dll");
}

public void connect(){
    tdc = new ActiveXObject ("TDApiOle80.TDConnection");
    tdc.InitConnectionEx("http://qc/qcbin");
    tdc.Login("username", "password");
    tdc.Connect("DEFAULT","PROJECT");
    System.out.println("login is success");
}

//ReqFactory Object
public void getRequirements(){
    def requironmetns = tdc.ReqFactory();
    def listReq = requironmetns.NewList("");
    for (def iterReq : listReq) {
        getRequirement(iterReq);
    }
    println listReq.count();
}

//Req Object
public void getRequirement(def itemReq){
    println 'ID: '+itemReq.ID();
    println 'Name:' + itemReq.Name();
    println 'Path:' + itemReq.Path();
    println 'Reviewed:' + itemReq.Reviewed();

    println 'Author:' + itemReq.Author();
    println 'Priority: ' + itemReq.Priority();
    println 'Comment: '+removeHtmlTag(itemReq.Comment());
    println 'Type: ' + itemReq.Type();



}
public Test getTestsFromTestLab(String path){

    Test resultTest = new Test();
    def labFolder = tdc.TestSetTreeManager.NodeByPath(path);
    def tsList = labFolder.FindTestInstances("");

    for (def iterable_element : tsList){

        Test test = getTestData(iterable_element);
        def steps =  iterable_element.Test().DesignStepFactory();
        TestStep  testStep = getTest(steps);
    }
    return resultTest;
}

public TestStep getTest(def testData){
    TestStep testStep = new TestStep();
    def listSteps = testData.NewList("");
    for(def item1 : listSteps){
        testStep = getTestStepData(item1);
        showTestStep(testStep);
    }
    return testStep;
}

private TestStep getTestStepData(def stepData){
    TestStep testStep =  new TestStep();
    testStep.setId(stepData.ID());
    testStep.setName(stepData.StepName());
    testStep.setDescription(removeHtmlTag(stepData.StepDescription()));
    testStep.setExpected(removeHtmlTag(stepData.StepExpectedResult()));
    testStep.setStepOrder(stepData.Order());
    return testStep;
}

public Test getTestData(def testData){
    Test test = new Test();
    test.setId(Integer.parseInt(testData.Id()));
    test.setName(testData.Name());
    test.setExecStatus(testData.Status());
    showTest(test);
    return test;
}

private String removeHtmlTag(String html){
    String result = "";
    result = Jsoup.parse(html).text();
    return result;
}

public void showTestStep(TestStep testStep){
    println testStep.getId();
    println testStep.getName();
    println testStep.getDescription();
    println testStep.getExpected();
    println testStep.getStepOrder();
}
public void showTest(Test test){
    println test.getId();
    println test.getName();
    println test.getExecStatus();
}
于 2012-10-03T14:35:51.963 に答える