Извлечение древовидной структуры папки «Требования» из QC с использованием API

Я пытаюсь извлечь требования из модуля требований к контролю качества. я мог бы извлечь все требования проекта контроля качества, но я хотел бы извлечь только избранные требования. Поэтому мне нужно указать путь к папке и соответствующим образом извлечь требования. В настоящее время я использую ReqFactory для извлечения запросов из QC. Не могли бы вы помочь мне или дать мне идею для извлечения требований из выбранного пути к папке.

Я попробовал Req Path и идентификатор отца, но все равно это не удовлетворяет мои потребности, поскольку у некоторых может быть несколько подпапок в родительских папках.


person Srekk    schedule 15.03.2014    source источник


Ответы (1)


Я предполагаю, что вам нравится получать все дочерние требования требования с помощью OTA API? Единственное решение, которое я могу предложить, немного неуклюже. Сначала вы должны получить требование, с которого вы хотите начать, например. «Требования\Проекты\ProjectX». Как этого добиться, описано в Справочнике по OTA API на примере объекта ReqFactory («Найти указанное требование в указанной папке»). Или он размещен на этом форуме. Если вы знаете идентификатор начального требования, вы можете просто получить требование с помощью req_factory.Item(id).

Когда у вас есть требование, с которого вы хотите начать, вы можете использовать метод Find ReqFactory, чтобы получить все его дочерние элементы, соответственно. все объекты 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 начинается с начального требования и ищет все требования, путь которых начинается с того же пути, что и путь начального требования. Параметр 8 означает "начинается с шаблона" (описано в Справочнике по API, Enum tagTDAPI_REQMODE). Я просто не знаю, как получить доступ к Enum с помощью Ruby, поэтому используется волшебная восьмерка... Метод Find возвращает список в формате "ID,NAME". Оттуда не должно быть проблем с извлечением требований.

Выполнение того же самого непосредственно в QC с помощью VAPI-XP-TEST и 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" требований.

person Roland    schedule 18.03.2014
comment
Привет, Рональд! Я вижу, ты ответил на большинство моих вопросов, связанных с контролем качества HP. Спасибо. Когда дело доходит до этого вопроса, я использую vbscript для извлечения требований из QC. Поскольку приведенный вами пример написан на Ruby, я все еще его анализирую. - person Srekk; 26.03.2014
comment
Я добавил несколько примеров кода VB — возможно, это поможет. - person Roland; 26.03.2014