Guia de autenticação para o Power Apps Test Engine (obsoleto)

Nota

O Test Engine está obsoleto e será removido numa versão futura. Use os exemplos do Power Platform Playwright para capacidades de automação de testes no Power Platform e nos serviços Dynamics 365.

Este guia fornece instruções passo a passo para configurar a autenticação no Test Engine. Para obter uma visão geral rápida das opções de autenticação, consulte Autenticação no mecanismo de teste.

Introdução à autenticação

O Test Engine suporta dois métodos de autenticação para testes baseados na Web para aplicativos orientados por modelo e tela:

  • StorageState - configuração padrão e fácil para desenvolvimento individual (para testes de aplicativos baseados na Web e orientados por modelos)
  • Dataverse - Abordagem baseada em equipa para compartilhamento de usuários de teste e CI/CD (para canvas baseado na web e testes de aplicativos orientados a modelos)

A autenticação é tratada de forma diferente para o provedor PowerFx e os testes diretos do Dataverse. Estes testes obtêm tokens de acesso diretamente da sua sessão de CLI do Azure logada usando comandos az para obter tokens de acesso a recursos. Certifique-se de que você está conectado com az login --allow-no-subscriptions antes de executar esses tipos de testes.

Configuração rápida: autenticação de estado de armazenamento

A autenticação StorageState é a maneira mais simples de começar. Utiliza a API de Proteção de Dados do Windows para armazenar de forma segura os tokens de autenticação na sua máquina local.

Etapa 1: Executar o teste com autenticação padrão

Execute o seguinte comando do PowerShell substituindo os parâmetros começando com your.

pac test run `
   --provider canvas `
   --test-plan-file your-test-plan.yaml `
   --tenant your-tenant-id `
   --environment-id your-environment-id

Nota

O parâmetro pac test run--user-auth não é usado neste exemplo porque o fornecedor padrão é StorageState. Você pode incluí-lo se desejar.

Etapa 2: concluir o login interativo

Insira as credenciais da sua conta de utilizador de teste

  1. Uma janela do navegador é aberta automaticamente
  2. Inicie sessão com a sua conta de utilizador de teste
  3. Se solicitado, aprove as solicitações de autenticação multifator (MFA) e os avisos de consentimento
  4. Selecione "Permanecer conectado" quando solicitado

A sua autenticação está agora guardada.

  • O Test Engine armazena sua autenticação com segurança
  • Execuções de teste futuras usam o estado salvo sem exigir o login
  • Os tokens são atualizados automaticamente quando necessário

Configuração de equipa: autenticação do Dataverse

A autenticação do Dataverse é perfeita para equipas e pipelines de CI/CD. Ele armazena com segurança, no Dataverse, os estados dos utilizadores autenticados, encriptados com certificados X.509.

Etapa 1: Baixe e importe a solução Test Engine

  1. Transfira a solução Power Platform a partir de https://aka.ms/TestEngineAuth.
  2. Inicia sessão no Power Apps.
  3. Selecione seu ambiente de destino.
  4. Vá para Soluções e selecione Importar solução.
  5. Siga o assistente para carregar e instalar a solução Test Engine.

Etapa 2: Criar um certificado para criptografia

Para um certificado autoassinado (somente desenvolvimento), execute o seguinte script do PowerShell:

$Params = @{
  DnsName = @("testengine", "testengine")
  CertStoreLocation = "Cert:\CurrentUser\My"
  NotAfter = (Get-Date).AddMonths(6)
  KeyAlgorithm = "RSA"
  KeyLength = 2048
}
New-SelfSignedCertificate @Params

Para produção, use um certificado da autoridade de certificação da sua empresa.

Etapa 3: configurar o utilizador de teste

Conclua as seguintes etapas para configurar seu utilizador de teste:

  1. Abra seu terminal e saia de todas as sessões existentes:

    # Clear Power Platform CLI credentials
    pac auth clear
    
    # Clear Azure CLI credentials
    az logout
    
  2. Iniciar sessão com CLI do Azure (necessário para autenticação Dataverse):

    az login --allow-no-subscriptions
    
  3. Defina o nome do certificado como uma variável de ambiente do PowerShell nomeada DataProtectionCertificateName:

    $env:DataProtectionCertificateName = "CN=testengine"
    
  4. Execute o teste com Dataverse autenticação:

    pac test run `
       --provider canvas `
       --user-auth Dataverse `
       --auth Certstore `
       --test-plan-file testplan.yaml `
       --tenant your-tenant-id `
       --environment-id your-environment-id
    

    Nota

    Ao contrário de StorageState, neste caso deve usar o parâmetro --user-auth com um valor de Dataverse.

  5. Conclua o login interativo quando solicitado.

Configurar principais de serviço (para CI/CD)

Para testes automatizados em pipelines de CI/CD, pode utilizar principais de serviço em vez de contas de utilizador interativas.

Passo 1: Criar um registo de candidatura no Microsoft Entra ID

Complete os seguintes passos para criar um registo de candidatura no Microsoft Entra ID.

  1. Iniciar sessão no centro de administração Microsoft Entra
  2. Navegue até Applications>Registos de aplicações
  3. Selecione Novo registo
  4. Insira um nome (por exemplo, "Test Engine Automation")
  5. Mantenha as opções padrão e selecione Registrar
  6. Após a criação, anote o ID do aplicativo (cliente) e o ID do diretório (locatário)

Etapa 2: Configurar permissões de API para Dataverse

Conclua as etapas a seguir para configurar as permissões de API Dataverse.

  1. No registro do aplicativo, vá para permissões de API
  2. Selecione Adicionar uma permissão
  3. Escolher APIs que minha organização usa
  4. Procurar e selecionar Dataverse
  5. Selecione Permissões delegadas
  6. Verificar user_impersonation
  7. Selecione Adicionar permissões
  8. Selecione Conceder consentimento de administrador

Etapa 3: Criar um segredo do cliente

Conclua as etapas a seguir para criar um segredo do cliente.

  1. Ir para Certificados & segredos
  2. Selecione Novo segredo do cliente
  3. Adicionar uma descrição e escolher uma expiração
  4. Copie o valor secreto imediatamente (você não pode vê-lo novamente)

Etapa 4: Adicionar o utilizador do aplicativo a Dataverse

Conclua os passos a seguir para adicionar o utilizador da aplicação no Dataverse.

  1. Abra o Power Platform Centro de Administração
  2. Selecionar o seu ambiente
  3. Vá para Configurações>Usuários + permissões>Usuários do aplicativo
  4. Selecionar + Novo utilizador do aplicativo
  5. Pesquise e selecione a sua candidatura
  6. Atribua funções apropriadas de unidade de negócios e segurança (inclua a função "Usuário do mecanismo de teste")
  7. Guarde as alterações

Passo 5: Configurar o pipeline de CI/CD

Adicione estas variáveis ao seu pipeline:

AZURE_CLIENT_ID: (your application ID)
AZURE_CLIENT_SECRET: (your client secret)
AZURE_TENANT_ID: (your tenant ID)
DataProtectionCertificateValue: (base64 encoded certificate)
ENVIRONMENT_URL: (your Dataverse environment URL)

Para Azure DevOps, armazene-os de forma segura em Variables Groups com as permissões adequadas.

Autenticação de testes PowerFx e autenticação direta de testes do Dataverse

Para testes de fornecedor PowerFx e testes diretos Dataverse, a autenticação funciona de forma diferente dos testes baseados na Web.

** Como funciona a autenticação do PowerFx/Dataverse

  1. O Test Engine utiliza CLI do Azure para obter um token de acesso específico de recurso
  2. O token é usado para autenticar diretamente com Dataverse APIs
  3. Nenhum navegador ou autenticação baseada na Web está envolvido

Configuração da autenticação do PowerFx/Dataverse

  1. Garanta que o CLI do Azure está instalado e atualizado:

    winget install -e --id Microsoft.AzureCLI
    # Or update it if already installed
    az upgrade
    
  2. Iniciar sessão com CLI do Azure:

    # The --allow-no-subscriptions flag is important as you may not have Azure subscriptions
    az login --allow-no-subscriptions
    
  3. Execute seu teste com o fornecedor PowerFx:

    pac test run `
       --provider powerfx `
       --test-plan-file testplan.yaml `
       --tenant your-tenant-id `
       --environment-id your-environment-id `
       --domain "https://your-environment.crm.dynamics.com"
    

Solução de problemas de autenticação

Esta secção contém informações sobre como solucionar problemas de autenticação com o Test Engine.

Problemas comuns com o StorageState

  • Problema: O prompt de autenticação aparece em todas as execuções.

    • Solução: Verifique se você selecionou Permanecer conectado durante o login.
  • Problema: Cannot access secure storage erro.

    • Solução: Certifique-se de que tem acesso adequado à sua pasta de perfil de utilizador.

Problemas comuns com a autenticação do Dataverse

  • Problema: Certificate not found erro.

    • Solução: verifique se o nome do certificado corresponde exatamente ao que está no seu armazenamento de certificados.
  • Problema: Unable to connect to Dataverse erro.

    • Solution: Verifique se CLI do Azure está logado com az login --allow-no-subscriptions.
  • Problema: Access denied erro com o principal de serviço.

    • Solução: verifique se o aplicativo tem as permissões Dataverse corretas e as funções de segurança apropriadas.

Problemas comuns com a autenticação PowerFx/Dataverse

  • Problema: Unable to obtain access token erro

    • Solution: Verifique se iniciou a sessão com a CLI do Azure usando az account get-access-token
  • Problema: Access denied ao Dataverse

    • Solução: Certifique-se de que o utilizador com sessão iniciada no Dataverse tenha as permissões apropriadas no ambiente
  • Problema: Expiração do token durante longas execuções de teste

    • Solução: utilize um principal de serviço com expiração de token mais longa ou gerir a nova autenticação nos passos de teste

Arquitetura de segurança de autenticação
Testar aplicações de tela
Teste aplicativos orientados por modelo
Extensões de teste Dataverse