使用API​​从QC中提取Requirements文件夹树结构

时间:2014-03-15 02:53:34

标签: qc hp-quality-center

我正在尝试从QC需求模块中提取需求。我可以提取QC项目的所有要求,但我想仅提取选定的要求。所以我需要给出文件夹路径并相应地提取需求。 目前我使用ReqFactory从QC中提取Reqs。你能帮助我,还是让我知道如何从选定的文件夹路径中提取需求。

我尝试了Req Path和父ID,但它仍然无法满足我的需要,因为有些子文件夹可能在父文件夹下有多个子文件夹。

1 个答案:

答案 0 :(得分:2)

我假设您希望使用OTA API获取需求的所有子要求?我能提供的唯一解决方案有点笨拙。首先,你必须得到你想要开始的要求,例如"要求\项目\ projectX创建&#34 ;.如何实现这一点在OTA API Reference中描述为ReqFactory对象的一个​​示例("在指定文件夹中查找指定的需求")。或者它发布在this forum。如果您知道启动要求的ID,则可以通过req_factory.Item(id)获得要求。

如果您的要求在您想要开始的地方,您可以使用ReqFactory的Find-method来获取其所有子项,分别为。所有Requirement对象都以与start-requirement相同的路径开头。这是Ruby中的一个示例方法:

def list_all_child_requirements(start_req)
  req_factory = @tdc.ReqFactory
  req_path_strange_format = start_req.Field("RQ_REQ_PATH")
  child_req_list = req_factory.Find(start_req.ID, "RQ_REQ_PATH", req_path_strange_format, 8)
  child_req_list.each do |list_req|
    puts list_req
  end
end

req_path_strange_format包含奇怪的质量中心表示法中的字符串,例如" AAAAAB"。 Find-method从start-requirement开始,并搜索所有需求路径以与start-requirement的路径相同的路径开始。参数8表示"以模式"开头。 (在API参考中描述,Enum tagTDAPI_REQMODE)。我只是不知道如何使用Ruby访问Enum,这就是使用魔法8的原因...... Find-method返回一个格式为" ID,NAME"的列表。从那里提取要求应该没有问题。

使用VAPI-XP-TEST直接在QC中执行相同操作,VB看起来像这样:

TDOutput.Clear
Dim reqPathStrangeFormat
Set reqF = tdConnection.ReqFactory
Set startReq = reqF.Item(14) ' ID of parent requirement
reqPathStrangeFormat = startReq.Field("RQ_REQ_PATH")
TDOutput.Print reqPathStrangeFormat
Set childReqList = reqF.Find(startReq.ID, "RQ_REQ_PATH", reqPathStrangeFormat, TDREQMODE_FIND_START_WITH)
For Each childReq in childReqList
    TDOutput.Print childReq
Next

此代码首先打印一些奇怪的字符串" AAAAAB"或类似的东西,然后是一个带有" ID,NAME"的列表。要求。