Python呼叫QC(Quality Center) API 獲取缺陷資料
阿新 • • 發佈:2018-12-11
一、執行環境
- XP系統/Win7 32bit旗艦版(部分Win7 系統不可呼叫QC客戶端元件,原因未明)
- 安裝QC客戶端(QCExplorerAddIn9.0.exe)及對應服務端
- Python 2.7.11
- 需要安裝pywin32 (pip install pywin32 )
二、Python呼叫QC常用操作
2.1 登入連線QC
win32com是Pywin32下面的一個模組,專門負責操作com元件使用。使用Dispatch方法得到可得到一個Application物件,該物件就是QC客戶端應用程式。這裡有個坑,啟動QC客戶端作為獨立程序啟用時無需初始化Com元件,其它使用方式請加pythoncom.CoInitialize()。
from win32com.client import Dispatch
import pythoncom
qcServer = "http://**.**.**.**:80/qcbin/"
qcUser = "qcUser"
qcPassword = "qcPassword "
qcDomain = "qcDomain "
qcProject = "qcProject"
def ConnectToQC(qcServer, qcUser, qcPassword, qcDomain, qcProject):
pythoncom.CoInitialize()
TD = Dispatch( "TDApiOle80.TDConnection")
print("TD Dispatch")
TD.InitConnectionEx(qcServer)
print("TD InitConnect")
TD.Login(qcUser, qcPassword)
print("Logged in")
TD.Connect(qcDomain, qcProject)
print("Connect")
return TD #登入成功可得到一個QC連線物件
2.2 獲取QC符合條件的缺陷資料
參考QC開發指南(VBS示例),常用獲取QC缺陷資料步驟:
- 得到BugFactory缺陷庫
- 得到缺陷庫過濾器物件且使用SetFilter方法設定過濾條件
- BugFilter.NewList()得到缺陷資訊,獲取具體Field內容
- BugFilter.NewList().Count返回符合條件缺陷個數
try:
qcCon = ConnectToQC(qcServer, qcUser, qcPassword, qcDomain, qcProject)
BugF1 = qcCon.BugFactory
except:
print "Connect QC Fail !"
BugF1=None
BugFilter = BugF1.Filter
BugFilter.SetFilter("BG_USER_07","not 已關閉 and not 已否決".decode('utf-8'))
BugFilter.SetFilter("BG_USER_28", "''")
bugsCount = BugFilter.NewList().Count
buglist = BugFilter.NewList()
for bug in buglist:
tem_bug={}
tem_bug["BugsCount"] = bugsCount
tem_bug["strSummary"] = bug.Field("BG_SUMMARY")
tem_bug["strDept"] = bug.Field("BG_USER_11")
tem_bug["strModule"] = bug.Field("BG_USER_04")
2.3 獲取缺陷附件資訊
- bug.HasAttachment 判斷缺陷是否存在附件
- 得到附件示例,設定儲存路徑下載即可
if bug.HasAttachment :
print "Have Attachment"
attrDir = "D:\\QCAttachment"
print attrDir
if not os.path.exists(attrDir):
os.makedirs(attrDir)
for Bug_attach in bug.Attachments.NewList(""):
objAttrSt = Bug_attach.AttachmentStorage
objAttrSt.ClientPath = attrDir
objAttrSt.Load(Bug_attach.Name, True)
2.4 獲取測試集/用例資料
操作步驟和獲取缺陷資料差不多,參考QC指南的示例將VBS指令碼方法對應轉換為python方法操作即可。
三、使用總結
- QC 是一款古老且經典的缺陷管理工具,提供的QC指南有非常豐富的VBS呼叫 其API介面的示例教程,呼叫這些介面方便測試整合工作。比如整合自動化測試框架,提取測試資料,登記缺陷,傳送郵件等。
- 注意python設定過濾條件的方法為SetFilter(),而VBS使用Filter(),網上使用Python呼叫QC資料較少,使用時結合QC測試管理資料組織方式和API介面文件,轉換為python的方法呼叫即可。
- 使用過程坑較多,勇敢去嘗試,參考vbs示例多看介面文件。
四、參考資料
最後提供一份 QC指南,提取碼: k6jr