Compartilhar via


Como trabalhar com o Test Studio

Neste início rápido, você criará testes para um aplicativo de tela chamado Kudos. Você também pode explorar e descobrir conceitos de teste e aplicá-los à criação de testes para seus próprios aplicativos de tela. O aplicativo de exemplo Kudos faz parte de um conjunto de aplicativos para participação de funcionários disponível para download em Employee Experience Starter Kit.

Assista a este vídeo para aprender a trabalhar com o Test Studio:

Abrir o Test Studio

  1. Entre no Power Apps.

  2. Crie um novo aplicativo ou edite um aplicativo existente.

  3. Salve seu aplicativo no Power Apps para abrir o Test Studio.

    Observação

    Você precisa salvar o aplicativo antes de poder criar testes para ele.

  4. Selecione Ferramentas avançadas no painel de navegação à esquerda.

  5. Selecione Abrir testes para abrir o Test Studio para este aplicativo. Essa ação abre o Test Studio em uma nova guia do navegador.

    Abrir o Test Studio.

Observação

Os testes são publicados e armazenados no pacote de aplicativos. Exportar e importar um pacote de aplicativos de tela para outro ambiente também incluirá todas as definições de teste, como pacotes de testes e casos de teste que você criou.

Criar um conjunto de testes

Por padrão, um pacote de testes e um caso de teste são criados para você no Test Studio. Os conjuntos de testes são usados para organizar seus casos de teste. Um aplicativo pode conter um ou mais conjuntos de testes. Você pode usar o conjunto e o caso de teste padrão para começar a criar seus testes imediatamente ou pode criar um conjunto de testes.

  1. Selecione Novo conjunto.

  2. Atualize o Nome e a descrição do conjunto de testes selecionando os campos na grade principal.

    Novo conjunto de testes.

Criar um caso de teste

Dependendo de como deseja organizar ou agrupar seus testes, você pode criar vários casos de teste em um conjunto de testes. Cada caso pode testar um recurso específico ou um subconjunto de funcionalidades em seu aplicativo.

  1. Selecione um conjunto de testes.
  2. Selecione Novo Caso no menu superior para criar um caso.
  3. Atualize o Nome e descrição do caso de teste selecionando os campos na grade principal.

Novo caso de teste.

Gravar um caso de teste

Um caso de teste é composto por etapas de teste que contêm ações. As ações de teste são criadas usando expressões do Power Apps que executam uma tarefa. Você pode usar o gravador para gerar automaticamente as etapas de teste conforme interage com seu aplicativo. Depois de gravar, você pode atualizar o caso de teste, adicionar novas etapas, excluir etapas e escrever declarações de teste para validar o resultado do teste.

Observação

Somente um aplicativo publicado é reproduzido no modo de gravação. Publique as alterações recentes no aplicativo antes de começar a gravar um caso de teste. Gravar sem publicar alterações recentes faz com que a última versão publicada do aplicativo seja reproduzida no modo de registro.

  1. Selecione Gravar no menu superior. Essa ação abre o aplicativo publicado com o modo de gravação em uma nova guia do navegador.

    Importante

    Gravar um caso de teste existente substitui todas as etapas de teste existentes já presentes.

    Gravar testes.

  2. Interaja com o aplicativo. Suas ações são gravadas no painel esquerdo.

  3. Quando a interação for concluída, selecione Concluído. Opcionalmente, você pode selecionar Cancelar para voltar para o Test Studio sem que suas interações sejam gravadas.

    Salvar a gravação.

  4. Exiba as etapas de teste e as expressões que foram geradas automaticamente para você no Test Studio.

  5. Edite o texto de descrição da etapa na grade principal, se necessário. Você também pode atualizar as ações da etapa de teste selecionando a fórmula na grade principal.

    Atualizar caso de teste.

Adicionar etapas de teste e declarações de teste

Todo caso de teste deve ter um resultado esperado. No exemplo do Kudos, um dos resultados esperados do envio de um kudo é a criação de um novo registro no banco de dados do Microsoft Dataverse (Dataverse). Agora, você atualizará o caso de teste e adicionará mais etapas de teste para validar que um registro foi criado com êxito.

Siga estas etapas para verificar a criação bem-sucedida de registro:

  • Inicialize uma variável para a contagem de gravações de kudo no banco de dados no início do caso de teste.
  • Inicialize uma variável para a contagem de gravações de kudo no banco de dados no final do caso de teste.
  • Escreva uma expressão de asserção de teste para validar sua incrementação em uma contagem. Se a contagem não aumentar em uma unidade, a asserção de teste falhará e o caso de teste falhará.

Para adicionar etapas de teste e declarações de teste no aplicativo Kudos:

  1. Selecione a Etapa 1 ou a etapa acima da qual deseja inserir uma nova etapa.

  2. Selecione Inserir uma etapa acima no menu superior ou selecionando a opção da linha ativa. Essa ação cria uma etapa vazia.

    Inserir etapa.

    Observação

    Quando você selecionar Inserir etapa acima, uma nova etapa em branco será adicionada acima da etapa atual. Você também pode usar as ações Assert, SetProperty, Select ou Trace. Isso adiciona uma etapa com uma fórmula de ação respectiva que você pode editar.

  3. Atualize a descrição da etapa. Por exemplo, "Contar Kudos no banco de dados".

  4. Insira uma expressão ou fórmula na entrada da ação para contar os registros no banco de dados antes de executar o teste.

    Você pode usar qualquer expressão com suporte. Você também pode consultar qualquer fonte de dados, coleção, variável ou fluxo de execução contido em seu aplicativo, bem como criar novas variáveis globais ou coleções para usar em seus testes.

    Set(kudosBeforeTest, CountRows(Filter(Kudos, Receiver.Email = "someone@example.com")))```
    
    
  5. Select Step 2 or the step above which you want to insert a new step.

  6. Select Insert a step above from the top menu or by selecting the option from the active row. This action creates an empty step.

  7. Enter an expression or formula in the action input to Trace and write the kudosBeforeTest value to test the results record.

    Trace("kudosBeforeTest : " & kudosBeforeTest);
    

    Kudos antes do teste.

  8. Vá para o final do caso de teste e insira uma nova etapa para contar os registros no banco de dados após a conclusão do teste.

    Set(kudosAfterTest, CountRows(Filter(Kudos, Receiver.Email = "someone@example.com")))```
    
    
  9. Add a final step to validate that the record count in the database has increased by a count of 1, and enter the following assertion action to verify:

    Assert(kudosAfterTest = kudosBeforeTest + 1, "Kudos count incorrect. Expected : " & kudosBeforeTest + 1  & " Actual :" & kudosAfterTest)
    

    Declaração de Kudos após o teste.

  10. Salve o caso de teste no menu superior direito no Test Studio.

Reproduzir seu teste

Você pode reproduzir o teste gravado para validar a funcionalidade do aplicativo. Você pode reproduzir todos os testes em um conjunto de testes ou pode reproduzir apenas um caso de teste.

Antes de reproduzir a gravação com as alterações recentes, você precisará publicar o aplicativo:

Reproduzir sem publicar.

Importante

Se você ignorar a publicação, a reprodução da gravação não conterá as alterações recentes do teste. O último pacote ou caso de teste publicado será executado no aplicativo.

  1. Selecione Publicar para salvar e publicar automaticamente seu teste.

    Publicar Alterações.

  2. Selecione um conjunto de testes ou apenas um caso de teste.

  3. Selecione Reproduzir. O aplicativo publicado é aberto no modo Reproduzir e você pode ver as etapas de seu teste sendo executadas automaticamente. Uma marca de seleção verde indica quando uma etapa de teste é executada com êxito. Se uma etapa falhar, um indicador de falha vermelho, em conjunto com uma mensagem de falha, será exibido.

    Modo de reprodução.

  4. Selecione Concluído para voltar para o Test Studio.

Declaração com falha

Nesta seção, você vai alterar a declaração de teste para que ocorra um teste com falha:

  1. Edite a etapa de declaração ao marcar a caixa de expressão.

  2. Atualize + 1 para + 2 na ação de teste. Essa atualização significa que o teste espera que dois registros sejam criados, o que está incorreto. Se o teste for bem-sucedido, somente um registro deverá ser criado no banco de dados.

    Assert(kudosAfterTest = kudosBeforeTest + 2, "Kudos count incorrect. Expected : " & kudosBeforeTest + 2  & " Actual :" & kudosAfterTest)
    

    Atualização da contagem de declarações.

  3. Selecione Publicar.

  4. Selecione Reproduzir.

  5. Exiba a reprodução do teste. Agora, a etapa final falha e mostra um erro e a mensagem que você forneceu na etapa de declaração.

    Erro de reprodução.

Reproduzir testes em um navegador

Você pode copiar um link para reproduzir um teste em um navegador separado fora do Test Studio. Isso ajuda a integrar seus testes em um pipeline de build e de lançamento contínuos, como o Azure DevOps.

O link de reprodução para o teste selecionado é persistido. Ele não é alterado para o conjunto de testes ou o caso de teste. Você pode atualizar seus testes sem a necessidade de modificar os processos de build e lançamento.

Para executar testes em seu navegador:

  1. Selecione um conjunto de testes ou caso de teste no painel direito.

  2. Selecione Copiar link de reprodução.

    Copiar link de reprodução.

  3. Será solicitado que você publique seus testes se houver alterações não publicadas.

    Publicar antes de copiar link.

  4. Você pode optar por ignorar o processo de publicação e copiar o link de reprodução. As novas alterações no teste não serão reproduzidas se você ignorar.

    Link de reprodução copiado.

  5. Abra um navegador e cole a URL na barra de endereços para reproduzir o teste.

  6. Exiba a reprodução de seu teste.

Configurar seus testes

A propriedade OnTestCaseStart de um conjunto de testes pode ser usada para configurar seu teste. A expressão inserida em relação a essa propriedade é acionada em cada caso de teste de um conjunto antes que o caso comece a ser executado. O OnTestCaseStart ajuda a evitar a gravação das mesmas etapas de teste no início de cada caso. Você pode personalizar esta propriedade para executar tarefas de configuração comuns a todos os casos no conjunto, como:

  • Sempre iniciar a execução do teste na primeira tela.
  • Inicializar coleções ou variáveis comuns.
  • Buscar dados de teste de uma fonte de dados para o teste de execução atual

O registro TestCaseInfo contém detalhes do teste atual em execução. Ele contém as seguintes propriedades:

  • TestCaseName – o nome do caso de teste.
  • TestCaseDescription – a descrição do caso de teste.
  • TestCaseId – a ID do caso de teste.
  • TestSuiteName – o nome do conjunto de testes ao qual o caso pertence.
  • TestSuiteDescription – a descrição do conjunto de testes.
  • TestSuiteId – a ID do conjunto de testes ao qual o caso pertence.

No exemplo abaixo, você personalizará a propriedade OnTestCaseStart para que cada caso de teste comece na primeira tela do seu aplicativo. Você também buscará os dados de teste de uma fonte de dados que pode ser referenciada nas etapas do caso de teste.

  1. Selecione Testar no painel esquerdo ou Exibir no cabeçalho do conjunto.

    Testar ou exibir propriedade do conjunto.

  2. Selecione a ação OnTestCaseStart.

  3. Insira uma expressão para navegar até a primeira tela e buscar os dados do teste.

    //Start every cases on the first screen in the Kudos app
    Navigate('Dashboard Screen');
    
    //Initialize my test data for the current case. 
    Set(currentTestData, LookUp(KudosTestData, TestCase = TestCaseInfo.TestCaseName));
    
    //Set kudosBeforeTest to 0
    Set(kudosBeforeTest, 0)
    

    Exemplo OnTestCaseStart.

Processamento dos resultados do teste

O painel de teste visível ao reproduzir testes no Test Studio não fica visível ao usar o navegador. Por causa desse comportamento, você não pode determinar a etapa de teste específica que é executada ou se o teste é aprovado ou falha.

Para determinar os resultados do teste fora do Test Studio, há duas propriedades chamadas OnTestCaseComplete e OnTestSuiteComplete disponíveis no objeto de teste que você pode usar para processar os resultados de seus testes. Ao integrar testes em um pipeline de build e de lançamento contínuos como o Azure DevOps, essas propriedades poderão ser usadas para determinar se você deve prosseguir com a implantação do aplicativo.

A expressão inserida para essas propriedades é disparada quando cada caso ou pacote é concluído. Você pode personalizar essas propriedades para processar e enviar os resultados de seus testes para várias fontes de dados ou serviços, como:

  • SQL Server.
  • Dataverse.
  • Power Automate.
  • Enviar email usando o Office 365.

Essas configurações se aplicam a todos os conjuntos ou casos de testes em seu aplicativo. Após a conclusão de cada conjunto ou caso de teste, os resultados do teste e as mensagens de rastreamento contidas nos testes ficam disponíveis nos registros TestCaseResult e TestSuiteResult.

O registro TestCaseResult contém as seguintes propriedades:

  • TestCaseName – o nome do caso de teste.
  • TestCaseDescription – a descrição do caso de teste.
  • TestCaseId – a ID do caso de teste.
  • TestSuiteName – o nome do conjunto de testes ao qual o caso pertence.
  • TestSuiteDescription – a descrição do conjunto de testes.
  • TestSuiteId – a ID do conjunto de testes ao qual o caso pertence.
  • StartTime – a hora de início da execução do teste.
  • EndTime – a hora de término da execução do teste.
  • Traces – o resultado das declarações do teste e qualquer mensagem da função Trace.
  • Success – indica se o caso de teste foi concluído com êxito.
  • TestFailureMessage – se o caso tiver falhado, a mensagem de falha.

O registro TestSuiteResult contém as seguintes propriedades:

  • TestSuiteName – o nome do conjunto de testes.
  • TestSuiteDescription – a descrição do conjunto de testes.
  • TestSuiteId – a ID do conjunto de testes.
  • StartTime – a hora de início da execução do conjunto de testes.
  • EndTime – a hora de término da execução do conjunto de testes.
  • TestsPassed – o número de casos de teste concluídos com êxito no pacote.
  • TestsFailed – o número de casos de teste com falha no pacote.

Neste início rápido, você criará duas tabelas personalizadas no banco de dados do Dataverse para armazenar os resultados do teste, personalizando as propriedades OnTestCaseComplete e OnTestSuiteComplete:

  1. Selecione Testar no painel esquerdo ou Exibir no cabeçalho do conjunto.

    Testar ou exibir propriedade do conjunto.

  2. Selecione a ação OnTestCaseComplete.

  3. Insira uma expressão para processar os resultados do teste. O exemplo a seguir salva os resultados de cada caso de teste na tabela AppTestResults personalizada no Dataverse. Os resultados do teste também podem ser armazenados em SQL, no SharePoint ou em qualquer outra fonte de dados. Talvez seja necessário definir ou aumentar o campo Trace na fonte de dados, conforme necessário.

    Observação

    Os exemplos a seguir se conectam ao Microsoft Dataverse. Você pode criar um aplicativo simples ou criar um aplicativo do zero usando o Dataverse. Além disso, consulte a referência da função Patch para obter mais detalhes para modificar os registros de uma fonte de dados usada nos exemplos a seguir.

    //Save to Dataverse
    Patch(AppTestResults
    , Defaults(AppTestResults)
    , {
             TestPass: TestCaseResult.TestCaseName & ":" & Text(Now())
             ,TestSuiteId: TestCaseResult.TestSuiteId
             ,TestSuiteName: TestCaseResult.TestSuiteName
             ,TestCaseId: TestCaseResult.TestCaseId
             ,TestCaseName: TestCaseResult.TestCaseName
             ,StartTime: TestCaseResult.StartTime
             ,EndTime: TestCaseResult.EndTime
             ,TestSuccess: TestCaseResult.Success
             ,TestTraces: JSON(TestCaseResult.Traces)
             ,TestFailureMessage: TestCaseResult.TestFailureMessage
    }
    );
    

    Exemplo de OnTestCaseComplete.

  4. Selecione a ação OnTestSuiteComplete.

  5. Insira uma expressão para processar os resultados do teste. No exemplo a seguir, você salvará os resultados de cada conjunto de testes na tabela AppTestSuiteResults personalizada no Dataverse.

    //Save to Dataverse
    Patch(AppTestSuiteResults
        , Defaults(AppTestSuiteResults)
        , {
             TestSuiteId: TestSuiteResult.TestSuiteId
             ,TestSuiteName: TestSuiteResult.TestSuiteName
             ,StartTime: TestSuiteResult.StartTime
             ,EndTime: TestSuiteResult.EndTime
             ,TestPassCount: TestSuiteResult.TestsPassed
             ,TestFailCount: TestSuiteResult.TestsFailed
        }
    );
    

    Exemplo de OnTestSuiteComplete.

Outros exemplos de expressões que você pode usar nessas propriedades são:

  • Envie resultados para um fluxo no Power Automate.

    MyTestResultsFlow.Run(JSON(TestCaseResult))
    
  • Envie os resultados por email.

    Office365.SendMailV2("someone@example.com", "Test case results", JSON(TestCaseResult, JSONFormat.IndentFour))
    
  • Receba uma notificação do aplicativo sobre o resultado do teste.

    Por exemplo, receba uma notificação após o teste ser concluído ao reproduzir o teste em um navegador, fora do Test Studio.

    Notify(TestCaseResult.TestCaseName & " : "
            & If( TestCaseResult.Success
                , " Passed"
                , TestCaseResult.TestFailureMessage)
            ,If(  TestCaseResult.Success
                , NotificationType.Success
                , NotificationType.Error)
    )
    

Testar funções

Além das funções disponíveis no Power Apps, as ações a seguir são ações comuns que normalmente são usadas na criação de testes:

Próximas etapas

Observação

Você pode nos falar mais sobre suas preferências de idioma para documentação? Faça uma pesquisa rápida. (Observe que esta pesquisa está em inglês)

A pesquisa levará cerca de sete minutos. Nenhum dado pessoal é coletado (política de privacidade).