测试持续时间示例报告
Azure DevOps Services | Azure DevOps Server 2022 | Azure DevOps Server 2020
测试持续时间报告与下图所示的报表类似,可深入了解运行测试的次数,以及特定测试在管道运行期间执行的平均时间。
使用本文中提供的查询生成以下报告:
- 生成工作流的测试持续时间
- 发布工作流的测试持续时间
- 特定分支的测试持续时间
- 特定测试文件的测试持续时间
- 特定测试所有者的测试持续时间
重要
Power BI 集成 和对 分析服务的 OData 源 的访问权限通常用于 Azure DevOps Services 和 Azure DevOps Server 2020 及更高版本。 本文中提供的示例查询仅适用于 Azure DevOps Server 2020 及更高版本,具体取决于 v3.0-preview 或更高版本。 我们鼓励你使用这些查询并提供反馈。
先决条件
- Access:至少是具有基本访问权限的项目的成员。
- 权限: 默认情况下,项目成员有权查询 Analytics 和创建视图。
- 有关服务和功能启用和常规数据跟踪活动的其他先决条件的详细信息,请参阅 访问 Analytics 的权限和先决条件。
注意
本文假设你阅读 了使用 OData 查询 的示例报表概述,并基本了解 Power BI。
示例查询
可以使用实体集的以下查询 TestResultsDaily
来创建不同的但类似的测试持续时间报告。 实体 TestResultsDaily
集提供按测试分组的 TestResult
每日执行快照聚合。
注意
若要确定用于筛选器或报表目的的可用属性,请参阅 Azure Pipelines 的测试计划分析和元数据参考的元数据参考。 可以使用 提供的 EntitySet
或 NavigationPropertyBinding Path
值下EntityType
的任何Property
值筛选查询或返回属性。 每个对应 EntitySet
一个 EntityType
。 有关每个值的数据类型的详细信息,请查看为相应 EntityType
值提供的元数据。
生成工作流的测试持续时间
使用以下查询查看包含 生成 工作流的管道的测试持续时间报告。
将以下 Power BI 查询直接复制并粘贴到 “获取数据>空白查询” 窗口中。 有关详细信息,请参阅 使用 OData 查询的示例报告概述。
let
Source = OData.Feed (
"https://analytics.dev.azure.com/{organization}/{project}/_odata/v4.0-preview/TestResultsDaily?"
&"$apply=filter("
&"Pipeline/PipelineName eq '{pipelineName}' "
&"And Date/Date ge {startdate} "
&"And Workflow eq 'Build'"
&")/groupby("
&"(TestSK, Test/TestName),"
&"aggregate("
&"ResultCount with sum as TotalCount, "
&"ResultDurationSeconds with sum as TotalDuration"
&"))/compute("
&"TotalDuration div TotalCount as AvgDuration"
&")",
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/v4.0-preview/TestResultsDaily?"
&"$apply=filter("
&"Pipeline/PipelineName eq '{pipelineName}' "
&"And Date/Date ge {startdate}"
&")/groupby("
&"(TestSK, Test/TestName, Workflow),"
&"aggregate("
&"ResultCount with sum as TotalCount, "
&"ResultDurationSeconds with sum as TotalDuration"
&"))/compute("
&"TotalDuration div TotalCount as AvgDuration"
&")",
null, [Implementation="2.0", OmitValues = ODataOmitValues.Nulls, ODataVersion = 4]
)
in
Source
按分支筛选的测试持续时间
若要查看特定分支的管道测试的测试持续时间,请使用以下查询。 若要创建报表,请执行以下额外步骤以及本文后面的说明。
- 展开
Branch
到Branch.BranchName
- 选择 Power BI 可视化切片器,并将字段
Branch.BranchName
添加到切片器的 字段 - 从切片器中选择需要查看结果摘要的分支名称。
有关使用切片器的详细信息,请参阅 Power BI 中的切片器。
将以下 Power BI 查询直接复制并粘贴到 “获取数据>空白查询” 窗口中。 有关详细信息,请参阅 使用 OData 查询的示例报告概述。
let
Source = OData.Feed (
"https://analytics.dev.azure.com/{organization}/{project}/_odata/v4.0-preview/TestResultsDaily?"
&"$apply=filter("
&"Pipeline/PipelineName eq '{pipelineName}' "
&"And Date/Date ge {startdate} "
&"And Workflow eq 'Build'"
&")/groupby("
&"(TestSK, Test/TestName, Branch/BranchName),"
&"aggregate("
&"ResultCount with sum as TotalCount, "
&"ResultDurationSeconds with sum as TotalDuration"
&"))/compute("
&"TotalDuration div TotalCount as AvgDuration"
&")",
null, [Implementation="2.0", OmitValues = ODataOmitValues.Nulls, ODataVersion = 4]
)
in
Source
测试文件筛选的测试持续时间
若要查看特定测试所有者拥有的测试的管道的测试持续时间,请使用以下查询。 若要创建报表,请执行以下额外步骤以及本文稍后定义的内容。
- 展开
Test
到Test.ContainerName
- 选择 Power BI 可视化切片器,并将字段
Test.ContainerName
添加到切片器的 字段 - 从切片器中选择需要查看结果摘要的测试文件。
将以下 Power BI 查询直接复制并粘贴到 “获取数据>空白查询” 窗口中。 有关详细信息,请参阅 使用 OData 查询的示例报告概述。
let
Source = OData.Feed (
"https://analytics.dev.azure.com/{organization}/{project}/_odata/v4.0-preview/TestResultsDaily?"
&"$apply=filter("
&"Pipeline/PipelineName eq '{pipelineName}' "
&"And Date/Date ge {startdate} "
&"And Workflow eq 'Build'"
&")/groupby("
&"(TestSK, Test/TestName, Test/ContainerName),"
&"aggregate("
&"ResultCount with sum as TotalCount, "
&"ResultDurationSeconds with sum as TotalDuration"
&"))/compute("
&"TotalDuration div TotalCount as AvgDuration"
&")",
null, [Implementation="2.0", OmitValues = ODataOmitValues.Nulls, ODataVersion = 4]
)
in
Source
测试所有者筛选的测试持续时间
若要查看特定测试所有者拥有的测试的管道的测试持续时间,请使用以下查询。 若要创建报表,请执行以下额外步骤以及本文稍后定义的内容。
- 展开
Test
到Test.TestOwner
- 选择 Power BI 可视化切片器,并将字段
Test.TestOwner
添加到切片器的 字段 - 从切片器中选择需要查看结果摘要的测试所有者。
将以下 Power BI 查询直接复制并粘贴到 “获取数据>空白查询” 窗口中。 有关详细信息,请参阅 使用 OData 查询的示例报告概述。
let
Source = OData.Feed (
"https://analytics.dev.azure.com/{organization}/{project}/_odata/v4.0-preview/TestResultsDaily?"
&"$apply=filter("
&"Pipeline/PipelineName eq '{pipelineName}' "
&"And Date/Date ge {startdate} "
&"And Workflow eq 'Build'"
&")/groupby("
&"(TestSK, Test/TestName, Test/TestOwner),"
&"aggregate("
&"ResultCount with sum as TotalCount, "
&"ResultDurationSeconds with sum as TotalDuration"
&"))/compute("
&"TotalDuration div TotalCount as AvgDuration"
&")",
null, [Implementation="2.0", OmitValues = ODataOmitValues.Nulls, ODataVersion = 4]
)
in
Source
替换字符串和查询明细
将以下字符串替换为值。 不要在替换中包含括号 {} 。 例如,如果组织名称为“Fabrikam”,请将 替换为 {organization}
Fabrikam
,而不是 {Fabrikam}
。
{organization}
- 组织名称。{project}
- 团队项目名称。{pipelinename}
- 管道名称。 示例:Fabrikam hourly build pipeline
。{startdate}
- 开始报表的日期。 格式:YYYY-MM-DDZ。 示例:2021-09-01Z
表示 2021 年 9 月 1 日。 不要将引号或括号括起来,并且对月份和日期使用两个数字。
查询明细
下表描述了查询的每个部分。
查询部件
描述
$apply=filter(
Start filter()
子句。
Pipeline/PipelineName eq '{pipelineName}'
返回命名管道的测试运行。
And Date/Date ge {startdate}
返回在指定日期或之后运行的测试。
and Workflow eq 'Build'
返回工作流的测试运行 Build
。
)
Close filter()
子句。
/groupby(
Start groupby()
子句。
(TestSK, Test/TestName),
按测试名称分组。
aggregate(
Start aggregate
子句,用于对与筛选条件匹配的不同测试运行结果求和。
ResultCount with sum as TotalCount,
将测试运行总数计为 TotalCount
。
ResultDurationSeconds with sum as TotalDuration
将所有运行的总持续时间求和为 TotalDuration
。
))
Close aggregate()
和 groupby()
clauses。
/compute(
Start compute()
子句。
TotalDuration div TotalCount as AvgDuration
对于所有测试,通过将总持续时间除以运行总数来计算平均持续时间。
)
Close compute()
子句。
(可选) 重命名查询
可以将默认查询标签 Query1 重命名为更有意义的标签。 只需在 “查询设置” 窗格中输入新名称。
在 Power BI 中展开“测试”列
展开列 Test
以显示展开的实体 Test.TestName
。 展开列会将记录平展到特定字段中。 若要了解如何操作,请参阅 转换分析数据以生成 Power BI 报表,展开列。
更改列数据类型
在Power Query 编辑器中,选择
TotalCount
列;从“转换”菜单中选择“数据类型”,然后选择“整数”。TotalDuration
选择和AvgDuration
列;从“转换”菜单中选择“数据类型”,然后选择“十进制数字”。
有关更改数据类型的详细信息,请参阅 转换分析数据以生成 Power BI 报表,转换列数据类型。
关闭查询并应用更改
完成所有数据转换后,从“开始”菜单中选择“关闭和应用”以保存查询并返回到 Power BI 中的“报表”选项卡。
创建表报表
在 Power BI 的“可视化效果”下,选择“表格”,然后将字段拖放到“列”区域。
按列出的顺序将以下字段添加到 “列” 部分。
Test.TestName
TotalCount
AvgDuration
右键单击并选择
AvgDuration
“平均值”,而不是“求和”。
报表应如下图所示。