Utilizar o Test Studio

Neste guia de início rápido, irá criar testes para uma aplicação de tela denominada Kudos. Também pode explorar e descobrir conceitos de teste e aplicá-los à escrita de testes para as suas próprias aplicações de tela. A aplicação de exemplo Kudos pertence a um conjunto de aplicações de interação de colaboradores disponível para transferência em Employee Experience Starter Kit (Kit de Introdução de Experiência de Colaboradores).

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

Abrir o Test Studio

  1. Inicie sessão no Power Apps.

  2. Crie uma nova aplicação ou edite uma aplicação existente.

  3. Guarde a sua aplicação no Power Apps para abrir o Test Studio.

    Nota

    Tem de guardar uma aplicação antes de poder escrever testes para a mesma.

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

  5. Selecione Abrir testes para abrir o Test Studio para esta aplicação. Esta ação abre o Test Studio num novo separador do browser.

    Abrir o Test Studio.

Nota

Os testes são publicados e armazenados no pacote de aplicações. A exportação e importação de um pacote de aplicação de tela para outro ambiente também incluirá todas as definições de teste, tais como suítes de teste e incidentes de teste que tenha criado.

Criar um conjunto de testes

Por predefinição, são automaticamente criados um conjunto de testes e um caso de teste no Test Studio. Os conjuntos de testes são utilizados para organizar os seus casos de teste. Uma aplicação pode incluir um ou mais conjuntos de testes. Pode utilizar o conjunto de testes e caso de teste pré-definidos para começar a escrever os seus testes imediatamente ou criar um novo conjunto de testes.

  1. Selecione Novo conjunto.

  2. Atualize o Nome e descrição do conjunto de testes ao selecionar os campos na grelha principal.

    Novo conjunto de testes.

Criar um caso de teste

Consoante a forma como pretende organizar ou agrupar os seus testes, pode criar múltiplos casos de teste num conjunto de testes. Cada caso pode testar uma funcionalidade específica ou um subconjunto de funcionalidades na sua aplicação.

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

Novo caso de teste.

Gravar um caso de teste

Um caso de teste consiste em passos de teste que contêm ações. As ações de teste são escritas com expressões do Power Apps que executam uma tarefa. Pode utilizar o gravador para gerar automaticamente os passos de teste à medida que interage com a sua aplicação. Após ter gravado, pode atualizar o caso de teste, adicionar novos passos, eliminar passos e escrever asserções de teste para validar o resultado do seu teste.

Nota

Apenas uma aplicação publicada é reproduzida no modo de gravação. Publique todas as alterações recentes à aplicação antes de começar a gravar um caso de teste. Gravar sem publicar as alterações recentes faz com que a última versão publicada da aplicação seja reproduzida no modo de gravação.

  1. Selecione Gravar no menu superior. Esta ação abre a aplicação publicada com o modo de gravação num novo separador do browser.

    Importante

    A gravação num caso de teste existente substitui todos os passos de teste já existentes.

    Gravar testes.

  2. Interaja com a sua aplicação. As suas ações são gravadas no painel esquerdo.

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

    Guardar a gravação.

  4. Veja os passos de teste e as expressões que foram automaticamente geradas para si no Test Studio.

  5. Edite o texto de descrição do passo na grelha principal, se tal for necessário. Também pode atualizar as ações do passo de teste ao selecionar a fórmula na grelha principal.

    Atualizar o caso de teste.

Adicionar passos de teste e asserções de teste

Cada caso de teste deve ter um resultado esperado. No exemplo do Kudos, um dos resultados esperados de enviar um kudo é a criação de um novo registo na base de dados do Microsoft Dataverse (Dataverse). Irá agora atualizar o caso de teste e adicionar passos de teste adicionais para validar um registo foi criado com êxito.

Siga estes passos para confirmar que uma criação de registos foi efetuada com êxito:

  • Inicialize uma variável para a contagem de registo do kudo na base de dados no início de cada caso de teste.
  • Inicialize uma variável para a contagem de registo do kudo na base de dados no fim de cada caso de teste.
  • Escreva uma expressão de asserção de teste para a validar, com um incremento de uma unidade na contagem. Se a contagem não aumentar uma unidade, a asserção de teste irá falhar e o seu caso de teste também.

Para adicionar passos e asserções de teste na aplicação kudos:

  1. Selecione o Passo 1 ou o passo acima do qual pretende introduzir um novo passo.

  2. Selecione Introduzir um passo acima no menu superior ou ao selecionar a opção a partir da linha ativa. Esta ação cria um passo vazio.

    Inserir passo.

    Nota

    Quando selecionar Introduzir um passo acima, será adicionado um novo passo em branco acima do passo atual. Também pode utilizar as ações Assert, SetProperty, Select ou Trace. Isto adiciona um passo com uma respetiva fórmula de ação que pode editar.

  3. Atualizar a descrição do passo. Por exemplo, "Contar Kudos na base de dados".

  4. Introduza uma expressão ou fórmula na entrada de ação para contar os registos na base de dados antes de executar o teste.

    Pode utilizar qualquer expressão suportada. Também pode consultar quaisquer origens de dados, coleções, variáveis ou executar fluxos que estejam incluídos na sua aplicação, e criar novas variáveis ou coleções globais para utilizar nos 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. Aceda à parte inferior do caso de teste e introduza um novo passo para contar os registos na base 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)
    

    Kudos após a asserção de teste.

  10. Guarde o caso de teste a partir do menu superior no Test Studio.

Reproduza novamente o seu teste

Pode reproduzir novamente o seu teste gravado para validar a funcionalidade da aplicação. Pode reproduzir novamente todos os testes num único conjunto de testes ou um único caso de teste.

Antes de reproduzir novamente a gravação com as alterações recentes, tem de publicar a aplicação:

Reproduzir sem publicar.

Importante

Se ignorar a publicação, a nova reprodução da gravação não irá incluir as suas alterações de teste recentes. O último caso de teste ou conjunto de testes publicados será reproduzido comparativamente com a aplicação.

  1. Selecione Publicar para guardar e publicar automaticamente o seu teste.

    Publicar alterações.

  2. Selecione um conjunto de testes ou um único caso de teste.

  3. Selecione Reproduzir. A aplicação publicada abre no modo Reproduzir e pode ver os seus passos de teste a serem reproduzidos automaticamente. Uma marca de verificação verde indica quando um passo de teste é executado com êxito. Se um passo falhar, é apresentado um indicador de falha vermelho e uma mensagem de falha.

    Modo de reprodução.

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

Asserção falhada

Nesta secção, irá alterar a asserção de teste para observar um teste falhado:

  1. Edite o passo de asserção ao selecionar a caixa de expressão.

  2. Atualize + 1 para + 2 na ação de teste. Esta atualização significa que o teste espera que sejam criados dois registos, o que é incorreto. Se o teste for efetuado com êxito, apenas um registo deve ser criado na base de dados.

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

    Atualização da contagem de asserção.

  3. Selecione Publicar.

  4. Selecione Reproduzir.

  5. Veja a reprodução do teste. O passo final falha e apresenta um erro e a mensagem que forneceu no passo de asserção.

    Erro de reprodução.

Reproduzir testes num browser

Pode copiar uma ligação para reproduzir um teste num browser separado, fora do Test Studio. Isso ajuda a integrar os seus testes num pipeline contínuo de compilação e versão, como o Azure DevOps.

A ligação de reprodução do teste selecionado é persistente. Não se altera para o conjunto de testes ou caso de teste. Pode atualizar os seus testes sem ter de modificar os processos de criação e versão.

Para reproduzir testes no seu browser:

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

  2. Selecione Copiar ligação de reprodução.

    Copiar ligação de reprodução.

  3. É-lhe pedido que publique os seus testes caso existam alterações não publicadas.

    Publicar antes de copiar a ligação.

  4. Pode optar por ignorar o processo de publicação e copiar a ligação de reprodução. Se o ignorar, as novas alterações de teste não serão reproduzidas.

    Reproduzir a ligação copiada.

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

  6. Veja a reprodução do seu teste.

Configure os seus testes

A propriedade OnTestCaseStart de uma Suíte de Teste pode ser usada para configurar o seu teste. A expressão inserida para esta propriedade é ativada para cada caso de teste numa suite antes do caso começar a ser executado. O OnTestCaseStart ajuda-o a evitar escrever os mesmos passos de teste no início de cada caso. Pode personalizar esta propriedade para executar tarefas que são comuns a todos os casos na suite, tais como:

  • Sempre a iniciar a execução do primeiro ecrã.
  • Inicialização de coleções ou variáveis comuns.
  • Recolher dados de teste de um origem de dados para o teste de execução atual

O registo TestCaseInfo contém detalhes para o teste atual que está a ser executado. Contém as seguintes propriedades:

  • TestCaseName – o nome do caso de teste.
  • TestCaseDescription – a descrição do caso de teste.
  • TestCaseName – a identificação do caso de teste.
  • TestSuiteName – o nome do conjunto de testes ao qual o teste pertence.
  • TestSuiteDescription – a descrição da suite de teste.
  • TestSuiteName – a identificação do conjunto de testes ao qual o teste pertence.

No exemplo abaixo, irá personalizar a propriedade OnTestCaseStart para que cada caso de teste comece a partir do primeiro ecrã da sua aplicação. Também irá recolher os dados do teste de uma origem de dados que pode ser referenciada nos passos para o caso de teste.

  1. Selecione Teste no painel esquerdo ou clique em Ver no cabeçalho do conjunto.

    Testar ou ver a propriedade do conjunto.

  2. Selecione a ação OnTestCaseStart.

  3. Insira uma expressão para navegar para o primeiro ecrã e recolher os dados do teste para o seu 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.

Processar os resultados do teste

O painel do teste visível ao reproduzir os testes no Test Studio não está visível quando se utiliza um browser. Por causa deste comportamento, não pode determinar o passo de teste específico que executa ou se um teste passa ou falha.

Para determinar os resultados fora do Test Studio, existem duas propriedades denominadas OnTestCaseComplete e OnTestSuiteComplete, disponíveis no objeto de teste, que pode utilizar para processar os resultados dos seus testes. Ao integrar os testes num pipeline contínuo de compilação e versão como o Azure DevOps, estas propriedades podem ser utilizadas para determinar se deve proceder à implementação da aplicação.

A expressão introduzida para estas propriedades é acionada na conclusão de cada caso ou conjunto. Pode personalizar estas propriedades para processarem e enviarem os resultados dos seus testes para várias origens de dados ou serviços, tais como:

  • SQL Server.
  • Dataverse.
  • Power Automate.
  • E-mail utilizando o Office 365.

Estas definições aplicam-se a cada conjunto de testes ou caso de teste na sua aplicação. Após a conclusão de cada conjunto de testes ou caso de teste, os resultados de teste e todas as mensagens de rastreio nos testes estão disponíveis nos registos TestCaseResult e TestSuiteResult.

O registo TestCaseResult inclui as seguintes propriedades:

  • TestCaseName – o nome do caso de teste.
  • TestCaseDescription – a descrição do caso de teste.
  • TestCaseName – a identificação do caso de teste.
  • TestSuiteName – o nome do conjunto de testes ao qual o teste pertence.
  • TestSuiteDescription – a descrição da suite de teste.
  • TestSuiteName – a identificação do conjunto de testes ao qual o teste pertence.
  • StartTime – a hora de início de execução do teste.
  • EndTime – a hora de fim de execução do teste.
  • Traces – o resultado das asserções de teste e as mensagens da função Trace (Rastreio).
  • Success – indica se o caso de teste foi concluído com êxito.
  • TestFailureMessage – se o caso falhou, a mensagem de falha.

O registo TestSuiteResult inclui as seguintes propriedades:

  • TestSuiteName – o nome do conjunto de testes.
  • TestSuiteDescription – a descrição da suite de teste.
  • TestSuiteId – a identificação do conjunto de testes.
  • StartTime – a hora de início de execução do conjunto de testes.
  • EndTime – a hora de fim de execução do conjunto de testes.
  • TestsPassed – o número de casos de teste concluídos com êxito no conjunto.
  • TestsFailed – o número de casos de teste que falharam no conjunto.

Neste guia de início rápido, irá criar duas tabelas personalizadas na base de dados do Dataverse para armazenar os resultados do teste ao personalizar as propriedades OnTestCaseComplete e OnTestSuiteComplete:

  1. Selecione Teste no painel esquerdo ou clique em Ver no cabeçalho do conjunto.

    Testar ou ver a propriedade do conjunto.

  2. Selecione a ação OnTestCaseComplete.

  3. Introduza uma expressão para processar os resultados do seu teste. O seguinte exemplo guarda os resultados de cada caso de teste para a tabela personalizada AppTestResults em Dataverse. Os resultados do teste podem ser opcionalmente armazenados em SQL, SharePoint ou qualquer outra origem de dados. Poderá ter de definir ou aumentar o campo Trace na sua origem de dados, conforme necessário.

    Nota

    Os exemplos seguintes ligam-se ao Microsoft Dataverse. Pode criar uma aplicação simples ou criar uma aplicação do zero com o Dataverse. Além disso, consulte a referência de função Patch para obter mais detalhes para modificar os registos de uma origem de dados utilizada nos seguintes exemplos.

    //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
    }
    );
    

    OnTestCaseComplete example.

  4. Selecione a ação OnTestSuiteComplete.

  5. Introduza uma expressão para processar os resultados do seu teste. No exemplo seguinte, irá guardar os resultados de cada conjunto de testes para a tabela personalizada AppTestSuiteResults 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
        }
    );
    

    OnTestSuiteComplete example.

Outros exemplos de expressões que poderia utilizar nestas propriedades:

  • Enviar resultados para um fluxo no Power Automate.

    MyTestResultsFlow.Run(JSON(TestCaseResult))
    
  • Envie os seus resultados por e-mail.

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

    Por exemplo, receba uma notificação após a conclusão do teste ao reproduzir o teste num browser, fora do Test Studio.

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

Funções de Teste

Além das funções disponíveis no Power Apps, as seguintes funções são as que irá utilizar normalmente na criação de testes:

Passos seguintes

Nota

Pode indicar-nos as suas preferências no que se refere ao idioma da documentação? Responda a um breve inquérito. (tenha em atenção que o inquérito está em inglês)

O inquérito irá demorar cerca de sete minutos. Não são recolhidos dados pessoais (declaração de privacidade).