打开 bug 或用户情景示例报告
Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019
若要生成列出打开的 bug 或用户情景的报表,请在 Power BI 中选择矩阵报表,并使用类似于本文中提供的查询。 生成的报告按“状态”和“分配给”字段细分的打开 bug 或用户情景,如下图所示。
注意
本文假设你阅读 了使用 OData 查询 的示例报表概述,并基本了解 Power BI。
先决条件
- Access:至少是具有基本访问权限的项目的成员。
- 权限: 默认情况下,项目成员有权查询 Analytics 和创建视图。
- 有关服务和功能启用和常规数据跟踪活动的其他先决条件的详细信息,请参阅 访问 Analytics 的权限和先决条件。
示例查询
提供了多个查询,这些查询按区域路径、迭代路径或团队筛选 bug 或用户情景。 所有这些查询都指定 WorkItems
实体集,因为它们返回当前数据而不是历史数据。
注意
若要确定用于筛选或报表的可用属性,请参阅Azure Boards元数据参考。 可以使用 提供的 EntitySet
或 NavigationPropertyBinding Path
值下EntityType
的任何Property
值筛选查询或返回属性。 每个对应 EntitySet
一个 EntityType
。 有关每个值的数据类型的详细信息,请查看为相应 EntityType
值提供的元数据。
按区域路径筛选的 Bug
将以下 Power BI 查询直接复制并粘贴到 “获取数据>空白查询” 窗口中。 有关详细信息,请参阅 使用 OData 查询的示例报告概述。
let
Source = OData.Feed ("https://analytics.dev.azure.com/{organization}/{project}/_odata/v3.0-preview/WorkItems?"
&"$filter=WorkItemType eq 'Bug' "
&"and StateCategory ne 'Completed' "
&"and startswith(Area/AreaPath,'{areapath}') "
&"&$select=WorkItemId,Title,WorkItemType,State,Priority,Severity,TagNames,AreaSK "
&"&$expand=AssignedTo($select=UserName),Iteration($select=IterationPath),Area($select=AreaPath) "
,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4])
in
Source
替换字符串和查询明细
将以下字符串替换为值。 不要在替换中包含括号 {} 。 例如,如果组织名称为“Fabrikam”,请将 替换为 {organization}
Fabrikam
,而不是 {Fabrikam}
。
{organization}
- 组织名称{project}
- 对于跨项目查询,团队项目名称或完全省略“/{project}”{areapath}
- 区域路径。 示例格式:Project\Level1\Level2
查询明细
下表描述了查询的每个部分。
查询部件
描述
$filter=WorkItemType eq 'Bug'
返回 Bug。
and StateCategory ne 'Completed'
筛选掉已完成的项目。 有关状态类别的详细信息,请参阅 如何在 Azure Boards 积压工作和板中使用工作流类别状态。
and startswith(Area/AreaPath,'{areapath}')
并筛选特定区域路径下的工作项。 若要按团队名称进行筛选,请使用 filter 语句 Teams/any(x:x/TeamName eq '{teamname})'
。
&$select=WorkItemId, Title, WorkItemType, State, Priority, Severity, TagNames
选择要返回的字段。
&$expand=AssignedTo($select=UserName), Iteration($select=IterationPath), Area($select=AreaPath)
选择可展开的属性字段AssignedTo
,, Iteration
。 Area
按团队筛选的用户情景
可以查询一个或多个团队(而不是区域路径)打开的 bug。
将以下 Power BI 查询直接复制并粘贴到 “获取数据>空白查询” 窗口中。 有关详细信息,请参阅 使用 OData 查询的示例报告概述。
let
Source = OData.Feed ("https://analytics.dev.azure.com/{organization}/{project}/_odata/v3.0-preview/WorkItems?"
&"$filter=WorkItemType eq 'Bug' "
&"and StateCategory ne 'Completed'' "
&"and (Teams/any(x:x/TeamName eq '{teamname}') or Teams/any(x:x/TeamName eq '{teamname}') or Teams/any(x:x/TeamName eq '{teamname}') "
&"&$select=WorkItemId,Title,WorkItemType,State,Priority,Severity,TagNames,AreaSK "
&"&$expand=AssignedTo($select=UserName),Iteration($select=IterationPath),Area($select=AreaPath) "
,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4])
in
Source
特定区域路径和迭代路径中的用户情景
以下查询支持筛选特定区域路径和迭代路径的用户情景。
将以下 Power BI 查询直接复制并粘贴到 “获取数据>空白查询” 窗口中。 有关详细信息,请参阅 使用 OData 查询的示例报告概述。
let
Source = OData.Feed ("https://analytics.dev.azure.com/{organization}/{project}/_odata/v3.0-preview/WorkItems?"
&"$filter=WorkItemType eq 'User Story' "
&"and startswith(Area/AreaPath,'{areapath}') "
&"and startswith(Iteration/IterationPath,'{iterationpath}') "
&"&$select=WorkItemId,Title,WorkItemType,State,Priority,Severity,TagNames,AreaSK "
&"&$expand=AssignedTo($select=UserName),Iteration($select=IterationPath),Area($select=AreaPath) "
,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4])
in
Source
(可选) 重命名查询
可以将默认查询标签 Query1 重命名为更有意义的标签。 只需在 “查询设置” 窗格中输入新名称。
展开 Power Query 编辑器 中的列
子 &$expand=AssignedTo($select=UserName), Iteration($select=IterationPath), Area($select=AreaPath)
句返回包含多个字段的记录。 在创建报表之前,需要展开记录以将其平展到特定字段。 在此实例中,需要展开以下记录:
AssignedTo
AreaPath
IterationPath
若要了解如何操作,请参阅 转换分析数据以生成 Power BI 报表。
(可选)重命名字段
展开列后,可能需要重命名一个或多个字段。 例如,可以将列 AreaPath
重命名为 Area Path
。 若要了解如何操作,请参阅 “重命名列字段”。
关闭查询并应用更改
完成所有数据转换后,从“开始”菜单中选择“关闭和应用”以保存查询并返回到 Power BI 中的“报表”选项卡。
创建矩阵报表
在 Power BI 中,选择可视化效果下的矩阵报表。
添加到
Assigned To
行。添加到
State
列。将 1WorkItemId1 添加到 值,然后右键单击 1WorkItemId 并确保 已选择 Count 。
显示示例报表。