Compartilhar via


Relatório de amostra de duração do teste

Azure DevOps Services | Azure DevOps Server | Azure DevOps Server 2022

Os relatórios de duração do teste, semelhantes ao mostrado na imagem a seguir, fornecem insights sobre o número de vezes que um teste é executado e o tempo médio necessário para que um teste específico seja executado durante uma execução de pipeline.

Captura de tela do relatório da Tabela de Duração do Teste.

Use as consultas fornecidas neste artigo para gerar os seguintes relatórios:

  • Duração do teste para o fluxo de trabalho de compilação
  • Duração do teste para o fluxo de trabalho de lançamento
  • Duração do teste para um ramo específico
  • Duração do teste para um arquivo de teste específico
  • Duração do teste para um determinado proprietário de teste

Observação

As consultas de exemplo neste artigo exigem versão prévia v3.0 ou posterior do feed OData do Analytics. Compartilhe seus comentários.

Categoria Requirements
Níveis de acesso - Membro do projeto.
- Pelo menos acesso básico .
Permissões Por padrão, os membros do projeto têm permissão para consultar o Analytics e criar visualizações. Para obter mais informações sobre outros pré-requisitos relacionados à ativação de serviços e recursos e atividades gerais de rastreamento de dados, consulte Permissões e pré-requisitos para acessar o Analytics.

Observação

Este artigo pressupõe que você tenha lido Visão geral de relatórios de exemplo usando consultas OData e tenha uma compreensão básica de Power BI.

Consultas de exemplo

Use as consultas a seguir do TestResultsDaily conjunto de entidades para criar relatórios de duração de teste diferentes, mas semelhantes. O conjunto de entidades TestResultsDaily fornece um agregado diário de instantâneos das execuções TestResult, agrupadas por teste.

Observação

Para localizar as propriedades disponíveis para filtragem ou relatório, consulte a referência Metadata para Análise de Planos de Teste e referência Metadata para Azure Pipelines. Você pode filtrar consultas ou retornar propriedades usando qualquer valor Property definido em um EntityType ou qualquer valor NavigationPropertyBinding Path listado para um EntitySet. Cada EntitySet mapeia para um EntityType, que documenta o tipo de dados de cada propriedade.

Duração do teste para o fluxo de trabalho de build

Use as consultas a seguir para exibir o relatório de duração do teste para um pipeline com um fluxo de Build.

Copie e cole a consulta Power BI a seguir diretamente na janela Get Data>Blank Query. Para obter mais informações, consulte Visão geral de relatórios de exemplo usando consultas 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

Duração do teste para o fluxo de trabalho de lançamento

Use as consultas a seguir para exibir o relatório de duração do teste de um pipeline com um fluxo de trabalho de liberação.

Copie e cole a consulta Power BI a seguir diretamente na janela Get Data>Blank Query. Para obter mais informações, consulte Visão geral de relatórios de exemplo usando consultas 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

Duração do teste filtrada por ramificação

Para exibir a duração dos testes de pipeline para um branch específico, use as consultas a seguir. Para criar o relatório, execute as etapas extras a seguir, juntamente com o que é especificado posteriormente neste artigo.

  • Expanda Branch para Branch.BranchName.
  • Selecione a Segmentação de Dados de Visualização no Power BI e adicione o campo Branch.BranchName ao Campo da segmentação de dados.
  • Selecione o nome da ramificação na segmentação de dados para a qual você precisa ver o resumo do resultado.

Para obter mais informações sobre como usar segmentações de dados, consulte Slicers no Power BI.

Copie e cole a consulta Power BI a seguir diretamente na janela Get Data>Blank Query. Para obter mais informações, consulte Visão geral de relatórios de exemplo usando consultas 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

Duração do teste filtrada por arquivo de teste

Para exibir a duração do teste de um pipeline para testes pertencentes a um proprietário de teste específico, use as consultas a seguir. Para criar o relatório, execute as etapas extras a seguir, juntamente com o que é definido posteriormente neste artigo.

  • Expanda Test para Test.ContainerName.
  • Selecione a Segmentação de Dados de Visualização no Power BI e adicione o campo Test.ContainerName ao Campo da segmentação de dados.
  • Selecione o arquivo de teste no visualizador do qual você precisa ver o resumo do resultado.

Copie e cole a consulta Power BI a seguir diretamente na janela Get Data>Blank Query. Para obter mais informações, consulte Visão geral de relatórios de exemplo usando consultas 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

Duração do teste filtrada pelo proprietário do teste

Para exibir a duração dos testes de um pipeline para testes pertencentes a um responsável específico, use as consultas a seguir. Para criar o relatório, execute as etapas extras a seguir, juntamente com o que é definido posteriormente neste artigo.

  • Expanda Test para Test.TestOwner.
  • Selecione a Segmentação de Dados de Visualização no Power BI e adicione o campo Test.TestOwner ao Campo da segmentação de dados.
  • Selecione o proprietário do teste no filtro para o qual você precisa ver o resumo do resultado.

Copie e cole a consulta Power BI a seguir diretamente na janela Get Data>Blank Query. Para obter mais informações, consulte Visão geral de relatórios de exemplo usando consultas 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

Cadeias de caracteres de substituição e detalhamento de consulta

Substitua as cadeias de caracteres a seguir por seus valores. Não inclua as chaves {} na substituição. Por exemplo, se o nome da sua organização for "Fabrikam", substitua {organization} por Fabrikam, não {Fabrikam}.

  • {organization} - Nome da sua organização.
  • {project} - Nome do seu projeto de equipe.
  • {pipelinename} - O nome do pipeline. Exemplo: Fabrikam hourly build pipeline.
  • {startdate} - A data para iniciar seu relatório. Formato: AAAA-MM-DDZ. Exemplo: 2021-09-01Z representa 1º de setembro de 2021. Não coloque entre aspas ou colchetes e use dois dígitos para mês e data.

Detalhamento da consulta

A tabela a seguir descreve cada parte da consulta.

Parte da consulta

Descrição


$apply=filter(

Iniciar cláusula filter().

Pipeline/PipelineName eq '{pipelineName}'

Retorne execuções de teste para o pipeline nomeado.

And Date/Date ge {startdate}

O teste de retorno é executado na data especificada ou após ela.

and Workflow eq 'Build'

Retorne execuções de teste para um Build fluxo de trabalho.

)

Fechar cláusula filter().

/groupby(

Iniciar cláusula groupby().

(TestSK, Test/TestName),

Agrupe pelo nome do teste.

aggregate(

Inicie a aggregate cláusula para somar diferentes resultados de execução de testes que atendem aos critérios de filtro.

ResultCount with sum as TotalCount,

Conte o número total de execuções de teste como TotalCount.

ResultDurationSeconds with sum as TotalDuration

Some a duração total de todas as corridas como TotalDuration.

))

Fechar cláusulas aggregate() e groupby().

/compute(

Iniciar cláusula compute().

TotalDuration div TotalCount as AvgDuration

Para todos os testes, calcule a duração média dividindo a duração total pelo número total de execuções.

)

Fechar cláusula compute().

(Opcional) Renomear consulta

Você pode renomear o rótulo de consulta padrão, Query1, para algo mais significativo. Insira um novo nome no painel Configurações de Consulta .

Screenshot das opções de menu de consulta do Power BI, opção para renomear a consulta.

Expandir a coluna Teste no Power BI

Expanda a coluna Test para mostrar a entidade expandida Test.TestName. Ao expandir a coluna, você achata o registro em campos específicos. Para obter mais informações, consulte Transformar dados de Analytics para gerar relatórios no Power BI, e expandir colunas.

Alterar o tipo de dados da coluna

  1. Em Editor do Power Query, selecione a coluna TotalCount. Selecione Tipo de Dados no menu Transformar e escolha Número Inteiro.

  2. Selecione as colunas TotalDuration e AvgDuration. Selecione Tipo de Dados no menu Transformar e escolha Número Decimal.

Para obter mais informações sobre como alterar o tipo de dados, consulte Transformar dados do Analytics para gerar relatórios Power BI, Transformar o tipo de dados de uma coluna.

Feche a consulta e aplique suas alterações

Ao concluir todas as transformações de dados, selecione Fechar &Aplicar no menu Página Inicial . Essa ação salva a consulta e retorna você para a guia Report no Power BI.

Captura de tela da opção Fechar e Aplicar no Editor do Power Query.

Criar o relatório de Tabela

  1. Em Power BI, em Visualizations, selecione Table. Arraste e solte os campos na área Colunas .

    Captura de tela das seleções de campos de visualização para o relatório da tabela de duração de teste.

  2. Adicione os campos a seguir à seção Colunas na ordem listada.

    • Test.TestName
    • TotalCount
    • AvgDuration
  3. Selecione o campo AvgDuration com o botão direito e escolha Média em vez de Soma.

Seu relatório deve ser semelhante à imagem a seguir.

Captura de tela do relatório da Tabela de Duração do Teste de Amostra.