Clear Quest API

  最近公司的项目需要使用到通过QTP提交bug至Clear Quest。之前一直没接触过CQ,这两天抽空研究了一下。刚开始不知道有CQ的API可以调用,在装完CQ测试环境后,把它的数据库研究了一遍。除了迷茫还是迷茫,表和表之间的关系好复杂,要命的是关联ID样子都长的差不多,要想弄清楚实际数据表之间的关系,不是一般的难。
  后来在网上搜索CQ资料的时候,无意中发现有API提供,而且居然还支持VBS。太爽了,原本想自己写个dll访问CQ数据库进行操作,供QTP调用的。这下完全可以直接写在QTP里面了。

Private Sub APIInsert()
    PG_IniFileName=”C:\Documents and Settings\Administrator\桌面\CQClinet_bak\set.ini”
    
    AD_PRIVATE_SESSION = 1

    ‘——————–连接CQ
    Set G_CQSession = CreateObject(“CLEARQUEST.SESSION”)  

    tmpDBName = “TDB”        ‘连接CQ的数据库,非SQL实体数据库        
    tmpUser = “CQTest”        ‘登录CQ的账号        
    tmpPWD = “test”            ‘登录CQ的密码    
    
    G_CQSession.UserLogon tmpUser, tmpPWD, tmpDBName, AD_PRIVATE_SESSION, “”
    ‘——————–

    ‘——————–设置数据库字段值
    Set G_DefectEntity = G_CQSession.BuildEntity(“defect”)
    
    G_DefectEntity.SetFieldValue “headline”, “headline”
    G_DefectEntity.SetFieldValue “severity”, “1-Critical”
    G_DefectEntity.SetFieldValue “priority”, “2-Give High Attention”
    G_DefectEntity.SetFieldValue “description”, “description”
    G_DefectEntity.SetFieldValue “owner”, “admin”
    G_DefectEntity.SetFieldValue “keywords”, “keywords”
    G_DefectEntity.SetFieldValue “symptoms”, “symptoms”
    G_DefectEntity.SetFieldValue “project”, “Test1”                                
    ‘——————–

    ‘——————–上传附件
    Set fso = CreateObject(“Scripting.FileSystemObject”)
    Set tmpFile = fso.GetFile(“e:\1.txt”)       ‘需要上传的附件路径
    
    Set tmpAttachFields = G_DefectEntity.AttachmentFields
    Set tmpAttachField = tmpAttachFields.Item(0)
    Set tmpAttachObjs = tmpAttachField.attachments
    
    tmpAttachObjs.Add tmpFile.Path, “helloworld123”
    ‘——————–
    
    tmpStatus = G_DefectEntity.Validate
    
    If tmpStatus = “” Then
        G_DefectEntity.Commit
    Else
        G_DefectEntity.Revert
    End If
    
    MsgBox “OK”

End Sub

发表评论

电子邮件地址不会被公开。