版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/wuq757693255/article/details/82805896
一、运行环境
- 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