테스트 요약 샘플 보고서
Azure DevOps Services | Azure DevOps Server 2022 | Azure DevOps Server 2020
파이프라인 실행을 실행하고 파이프라인 정의 내에 테스트 태스크를 포함하는 경우 여러 테스트 결과에 대한 테스트 실행 수를 나타내는 보고서를 만들 수 있습니다. 통과됨, 실패, 실행되지 않음, 영향을 받지 않음.
다음 이미지는 테스트 요약 보고서의 예를 보여줍니다.
이 문서에 제공된 쿼리를 사용하여 다음 보고서를 생성합니다.
- 빌드 워크플로에 대한 테스트 요약
- 릴리스 워크플로에 대한 테스트 요약
- 특정 분기에 대한 테스트 요약
- 특정 테스트 파일에 대한 테스트 요약
- 특정 테스트 소유자에 대한 테스트 요약
Important
Analytics Service의 OData 피드에 대한 Power BI 통합 및 액세스는 일반적으로 Azure DevOps Services 및 Azure DevOps Server 2020 이상 버전에서 사용할 수 있습니다. 이 문서에서 제공하는 샘플 쿼리는 Azure DevOps Server 2020 이상 버전에 대해서만 유효하며 v3.0 미리 보기 이상 버전에 따라 달라집니다. 이러한 쿼리를 사용하고 피드백을 제공하는 것이 좋습니다.
필수 조건
- 액세스: 최소한 기본 액세스 권한이 있는 프로젝트의 멤버여야 합니다.
- 사용 권한: 기본적으로 프로젝트 멤버는 분석을 쿼리하고 뷰를 만들 수 있는 권한이 있습니다.
- 서비스 및 기능 사용 및 일반 데이터 추적 활동과 관련된 기타 필수 구성 요소에 대한 자세한 내용은 Analytics에 액세스하기 위한 사용 권한 및 필수 구성 요소를 참조 하세요.
참고 항목
이 문서에서는 OData 쿼리를 사용하여 샘플 보고서 개요를 읽고 Power BI에 대한 기본적인 이해를 가지고 있다고 가정합니다 .
샘플 쿼리
엔터티 집합의 TestResultsDaily
다음 쿼리를 사용하여 서로 다르지만 유사한 파이프라인 테스트 요약 보고서를 만들 수 있습니다. 엔터티 집합은 TestResultsDaily
테스트별로 그룹화된 실행의 TestResult
일일 스냅샷 집계를 제공합니다.
참고 항목
필터 또는 보고서 용도 로 사용 가능한 속성을 확인하려면 Azure Pipelines에 대한 테스트 계획 분석 및 메타데이터 참조에 대한 메타데이터 참조를 참조하세요. 에서 사용할 수 있는 값 또는 아래 값을 Property
사용하여 쿼리를 EntityType
필터링하거나 NavigationPropertyBinding Path
속성을 반환할 수 있습니다 EntitySet
. 각각 EntitySet
은 .에 EntityType
해당합니다. 각 값의 데이터 형식에 대한 자세한 내용은 해당 EntityType
값에 대해 제공된 메타데이터를 검토하세요.
빌드 워크플로에 대한 테스트 요약
다음 쿼리를 사용하여 빌드 워크플로에 대한 파이프라인의 테스트 요약을 볼 수 있습니다.
다음 Power BI 쿼리를 복사하여 데이터>빈 쿼리 가져오기 창에 직접 붙여넣습니다. 자세한 내용은 OData 쿼리를 사용하는 샘플 보고서 개요를 참조 하세요.
let
Source = OData.Feed (
"https://analytics.dev.azure.com/mseng/AzureDevOps/_odata/v4.0-preview/TestResultsDaily?"
&"$apply=filter("
&"Pipeline/PipelineName eq '{pipelineName}' "
&"And DateSK ge {startdate} "
&"And Workflow eq 'Build' "
&")/aggregate("
&"ResultCount with sum as ResultCount, "
&"ResultPassCount with sum as ResultPassCount, "
&"ResultFailCount with sum as ResultFailCount, "
&"ResultNotExecutedCount with sum as ResultNotExecutedCount, "
&"ResultNotImpactedCount with sum as ResultNotImpactedCount"
&")",
null, [Implementation="2.0", OmitValues = ODataOmitValues.Nulls, ODataVersion = 4]
)
in
Source
쿼리의 실제 값으로 대체 {pipelineName}
합니다 {startdate}
.
릴리스 워크플로에 대한 테스트 요약
다음 쿼리를 사용하여 릴리스 워크플로에 대한 파이프라인의 테스트 요약을 볼 수 있습니다.
참고 항목
필터 또는 보고서 용도로 사용 가능한 속성을 확인하려면 테스트 계획 분석에 대한 메타데이터 참조를 참조 하세요. 에서 사용할 수 있는 값 또는 아래 값을 Property
사용하여 쿼리를 EntityType
필터링하거나 NavigationPropertyBinding Path
속성을 반환할 수 있습니다 EntitySet
. 각각 EntitySet
은 .에 EntityType
해당합니다. 각 값의 데이터 형식에 대한 자세한 내용은 해당 EntityType
값에 대해 제공된 메타데이터를 검토하세요.
다음 Power BI 쿼리를 복사하여 데이터>빈 쿼리 가져오기 창에 직접 붙여넣습니다. 자세한 내용은 OData 쿼리를 사용하는 샘플 보고서 개요를 참조 하세요.
let
Source = OData.Feed (
"https://analytics.dev.azure.com/mseng/AzureDevOps/_odata/v4.0-preview/TestResultsDaily?"
&"$apply=filter("
&"Pipeline/PipelineName eq '{pipelineName}' "
&"And DateSK ge {startdate} "
&"And Workflow eq 'Release'"
&")/aggregate("
&"ResultCount with sum as ResultCount, "
&"ResultPassCount with sum as ResultPassCount, "
&"ResultFailCount with sum as ResultFailCount, "
&"ResultNotExecutedCount with sum as ResultNotExecutedCount, "
&"ResultNotImpactedCount with sum as ResultNotImpactedCount"
&")",
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/mseng/AzureDevOps/_odata/v4.0-preview/TestResultsDaily?"
&"$apply=filter("
&"Pipeline/PipelineName eq '{pipelineName}' "
&"And DateSK ge {startdate} "
&"And Workflow eq 'Build'"
&")/groupby("
&"(Branch/BranchName),"
&"aggregate("
&"ResultCount with sum as ResultCount, "
&"ResultPassCount with sum as ResultPassCount, "
&"ResultFailCount with sum as ResultFailCount, "
&"ResultNotExecutedCount with sum as ResultNotExecutedCount, "
&"ResultNotImpactedCount with sum as ResultNotImpactedCount"
&")",
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/mseng/AzureDevOps/_odata/v4.0-preview/TestResultsDaily?"
&"$apply=filter("
&"Pipeline/PipelineName eq '{pipelineName}' "
&"And DateSK ge {startdate} "
&"And Workflow eq 'Build'"
&")/groupby("
&"(Test/ContainerName),"
&"aggregate("
&"ResultCount with sum as ResultCount, "
&"ResultPassCount with sum as ResultPassCount, "
&"ResultFailCount with sum as ResultFailCount, "
&"ResultNotExecutedCount with sum as ResultNotExecutedCount, "
&"ResultNotImpactedCount with sum as ResultNotImpactedCount"
&")",
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/mseng/AzureDevOps/_odata/v4.0-preview/TestResultsDaily?"
&"$apply=filter("
&"Pipeline/PipelineName eq '{pipelineName}' "
&"And DateSK ge {startdate} "
&"And Workflow eq 'Build'"
&")/groupby("
&"(Test/TestOwner),"
&"aggregate("
&"ResultCount with sum as ResultCount, "
&"ResultPassCount with sum as ResultPassCount, "
&"ResultFailCount with sum as ResultFailCount, "
&"ResultNotExecutedCount with sum as ResultNotExecutedCount, "
&"ResultNotImpactedCount with sum as ResultNotImpactedCount"
&")",
null, [Implementation="2.0", OmitValues = ODataOmitValues.Nulls, ODataVersion = 4]
)
in
Source
대체 문자열 및 쿼리 분석
다음 문자열을 값으로 바꿉니다. 대괄호를 대체에 {} 포함하지 마세요. 예를 들어 조직 이름이 "Fabrikam"{organization}
Fabrikam
{Fabrikam}
인 경우 .
{organization}
- 조직 이름입니다.{project}
- 팀 프로젝트 이름입니다.{pipelinename}
- 파이프라인 이름입니다. 예:Fabrikam hourly build pipeline
{startdate}
- 보고서를 시작할 날짜입니다. 날짜를 YYYYMMDD 형식으로 입력할 수 있습니다. 예를 들어20220815
2022년 8월 15일입니다.
쿼리 분석
다음 표에서는 쿼리의 각 부분을 설명합니다.
쿼리 파트
설명
$apply=filter(
Start filter()
절입니다.
Pipeline/PipelineName eq '{pipelineName}'
지정된 파이프라인에 대한 테스트 실행을 반환합니다.
and CompletedOn/Date ge {startdate}
반환 테스트는 지정된 날짜 또는 그 이후에 실행됩니다.
and Workflow eq 'Build'
또는 and Workflow eq 'Release'
반환 테스트는 또는 Release
워크플로로 지정된 파이프라인에 Build
대해서만 실행됩니다.
)
Close filter()
절입니다.
aggregate(
aggregate
필터 조건과 일치하는 모든 테스트 실행에 대한 절을 시작합니다.
ResultCount with sum as ResultCount,
총 테스트 실행 수를 .로 ResultCount
계산합니다.
ResultPassCount with sum as ResultPassCount,
통과된 총 테스트 실행 수를 .로 ResultPassCount
계산합니다.
ResultFailCount with sum as ResultFailCount
실패한 총 테스트 실행 수를 .로 ResultFailCount
계산합니다.
ResultNotExecutedCount with sum as ResultNotExecutedCount,
실행되지 않은 테스트 실행의 총 수를 .로 ResultNotExecutedCount
계산합니다.
ResultNotImpactedCount with sum as ResultNotImpactedCount
영향을 받지 않는 테스트 실행의 총 수를 .로 ResultNotImpactedCount
계산합니다.
)
절을 닫습니다 aggregate()
.
(선택 사항) 쿼리 이름 바꾸기
기본 쿼리 레이블인 Query1의 이름을 좀 더 의미 있는 것으로 바꿀 수 있습니다. 쿼리 설정 창에서 새 이름을 입력하기만 하면 됩니다.
(선택 사항) 열 필드 이름 바꾸기
열 필드의 이름을 바꿀 수 있습니다. 예를 들어 열 Pipeline.PipelineName
Pipeline Name
이름을 TotalCount
Total Count
열로 바꿀 수 있습니다. 방법을 알아보려면 열 필드 이름을 바꿉니다.
쿼리를 닫고 변경 내용 적용
모든 데이터 변환을 완료한 후 홈 메뉴에서 닫기 및 적용 을 선택하여 쿼리를 저장하고 Power BI의 보고서 탭으로 돌아갑니다.
도넛형 차트 보고서 만들기
Power BI의 시각화에서 도넛형 보고서를 선택합니다.
다음 필드를 지정된 순서대로 값에 추가합니다. 각 필드를 마우스 오른쪽 단추로 클릭하고 합계가 선택되어 있는지 확인합니다.
ResultPassCount
ResultFailCount
ResultNotExecutedCount
ResultNotImpactedCount
보고서는 다음 이미지와 비슷해야 합니다.