【发布时间】:2019-03-05 23:28:41
【问题描述】:
我使用的是 HP Quality Center 11.52 版,我的任务是复制一系列图表或 AnalysisItems,就像它们的正式名称一样。我还没有找到任何直接从 AnalysisItem 中检索图形显示数据的方法,因此我的方法是在这些 AnalysisItem 中提取过滤器,并将它们复制/细化到工作的 REST 调用或 URL 中。这在大多数情况下都有效,但我在使用链式连接时遇到了麻烦。以下是来自配置选项卡和过滤器文本框中的分析项之一的示例过滤器:
Filter: Test: Project["My Project"];
Cross Filter: <Cross Filter Test Instance-Test Set>Test Set Folder[^Root\My Path\My Project\My Tests^]
这里有两个过滤子句,用';'隔开
-
我可以通过名称轻松找到项目下的测试实例。它是这样的:
.../test-instances/?query={test.user-18["My Project"]}
当然,这需要我们使用 user-18 字段来存储项目名称,这是我公司使用的逻辑分区,在定义的项目中是一个 QC 实体。
-
但是,如果我想交叉过滤这些找到的测试实例,并且仅在特定文件夹中的测试集中找到实例,我将不得不进行链式连接,我预计它可能会写成这样:
.../test-instances/?query={test.user-18["My Project"]; test-set.test-set-folder.name["^Root\My Path\My Project\My Tests^"]}
但是,这给了我一个错误,指出“实体:test-set 没有名为:test-set-folder.name 的字段。现在我知道了,但我希望它能够理解之前的部分最后一个标点符号,也是一个关系。不是。
我也试过了:
.../test-instances/?query={test.user-18["My Project"];
test-set[test-set-folder.name["^Root\My Path\My Project\My Tests^"]]}
但是嵌套的方括号也不起作用。
最后我尝试了一个我在“filter-data”数据库中看到的语法,它看起来像这样:
.../test-instances/?query={test.user-18["My Project"];
test-set[x]test-set-folder.name["^Root\My Path\My Project\My Tests^"]}
这也是不允许的。
我对自己想要实现的目标充满信心,但文档并没有太大帮助。我认为是否可以在 QC 用户界面内的 AnalsisItem 中设置过滤器,在 REST-API 中也应该可以。我已尝试广泛搜索 API,但要么不可能,要么很难在文档中找到。
谁能帮我正确的语法,如果有的话,在这里?
【问题讨论】:
-
我不认为你可以在
test-set-folder.name=^Root\My Path\My Project\My Tests^中传递一个文件夹的完整路径,原因很简单是每个文件夹名称在数据库中以不同的 ID 存储并且没有简单的方法RESTAPI 遍历文件夹树以找到正确的 ID 以继续。 -
你是对的。我意识到文件夹名称不包括路径,所以这是我现在的方法。不过,过滤数据不能直接用于细化单个调用,这似乎很奇怪。
-
也许并不容易,但我会通过您提到的路径并获取文件夹或分层路径的最新 ID。然后我猜你可以使用文件夹 ID 来检索你的数据,因为它在 QC ALM 中是唯一的。
-
@Marcosmdm,你真的应该把它放在答案中,并对路径结构进行一些额外的解释。
-
@Matthiasdirickx:添加了答案,希望这能澄清一点:-)祝你有美好的一天。
标签: rest alm hp-quality-center