Compartilhar via


Power Apps Motor de Teste Power Fx (prévia)

Observação

Os recursos de versão preliminar não foram criados para uso em ambientes de produção e podem ter funcionalidade restrita. Esses recursos são disponibilizados antes de um lançamento oficial para que os clientes possam ter acesso antecipado e forneçam comentários.

Você pode usar o Learning Playground para experimentar e colocar a mão na massa as funções documentadas neste guia.

O que é o Power Fx?

Microsoft Power Fx é uma linguagem de programação de baixo código e de propósito geral baseada em fórmulas semelhantes a planilhas. É uma linguagem tipada, declarativa e funcional, com lógica imperativa e geranciamento de estado disponíveis quando necessário. Sua história com o Excel o torna acessível a uma ampla gama de usuários, desde iniciantes até desenvolvedores experientes.

Cenários avançados Power Fx

Se você já estiver familiarizado com Power Fx, mergulhar em cenários avançados pode melhorar significativamente os recursos e a eficiência de seus aplicativos. Aqui estão alguns cenários avançados e por que eles podem ser interessantes:

  • Criação de funções personalizadas: A criação de funções personalizadas permite que os desenvolvedores encapsulem lógica complexa em componentes reutilizáveis. Essa abordagem não apenas simplifica o processo de desenvolvimento, mas também garante consistência e reduz a probabilidade de erros. Funções personalizadas podem ser adaptadas às necessidades comerciais específicas, tornando seu teste mais poderoso e flexível.

  • Integração com fontes de dados externas: A integração Power Fx com fontes de dados externas permite que seus testes interajam com uma ampla variedade de dados, de bancos de dados a serviços da web. Essa integração pode melhorar a funcionalidade dos seus aplicativos fornecendo acesso e atualizações de dados em tempo real. Ele também permite testes mais dinâmicos e responsivos, que podem se adaptar às mudanças de dados.

  • Otimizando o desempenho para testes em larga escala: À medida que seus testes aumentam em complexidade e escala, a otimização do desempenho se torna importante. Essas otimizações podem incluir desempenho, como tratamento eficiente de dados e uso de funções integradas do Power Fx para melhor desempenho. Essas otimizações garantem que seus testes permaneçam responsivos e eficientes, mesmo com grandes conjuntos de dados e lógica complexa.

Modelo de extensibilidade

O modelo de extensibilidade do Test Engines é um dos seus muitos recursos interessantes. Power Fx Você pode estender a linguagem com funções e ações personalizadas, tornando-a altamente adaptável a vários cenários. Aqui estão alguns aspectos principais do modelo de extensibilidade:

  • Reutilize as habilidades que você já possui: o modelo de extensibilidade do Power Fx permite que você use suas habilidades existentes em Power Fx e outras linguagens de programação, como C#. Usar essa abordagem significa que você pode trazer seu conhecimento e experiência para os testes baseados em dados, facilitando a criação de soluções poderosas e personalizadas. Power Fx

  • Permitir a reutilização de bibliotecas e recursos existentes: O modelo de extensibilidade permite a integração de bibliotecas e recursos existentes em Power Fx. A reutilização permite que os desenvolvedores reutilizem códigos testados e comprovados, reduzindo o tempo de desenvolvimento para aumentar a confiabilidade. Ao incorporar bibliotecas existentes, você pode melhorar a funcionalidade de seus Power Fx aplicativos sem reinventar a roda.

  • Forneça um modelo para encapsular a complexidade para usuários das funções: Uma das vantagens significativas do modelo de extensibilidade é sua capacidade de encapsular a complexidade. Criadores e desenvolvedores podem criar funções personalizadas que ocultam os detalhes complexos da lógica subjacente, fornecendo uma interface simples e amigável para usuários finais. A abstração torna mais fácil para todos usarem e se beneficiarem de funcionalidades avançadas sem precisar entender as complexidades por trás delas.

  • Aumente a colaboração e a consistência: as equipes podem criar um conjunto consistente de funções e ações personalizadas que podem ser compartilhadas e reutilizadas em diferentes projetos. Usar arquivos testSettings.yaml comuns pode promover a colaboração e garantir que as melhores práticas sejam seguidas, resultando em aplicativos mais robustos e fáceis de manter.

  • Facilitar a integração com sistemas externos: O modelo de extensibilidade permite uma integração perfeita com sistemas e serviços externos. Isso significa que você pode conectar seus Power Fx aplicativos a uma ampla variedade de fontes de dados e APIs, aprimorando seus recursos e fornecendo acesso a dados em tempo real.

  • Suporte para cenários avançados: O modelo de extensibilidade foi projetado para oferecer suporte a cenários avançados, como a criação de linguagens específicas de domínio e fluxos de trabalho personalizados. Essa flexibilidade garante que Power Fx pode ser adaptado para atender às necessidades exclusivas de diferentes setores e casos de uso.

Como desenvolvedor ou criador avançado, entendendo e usando o modelo de extensibilidade, os desenvolvedores podem criar aplicativos mais poderosos, flexíveis e fáceis de usar com Power Fx. Este modelo não apenas aprimora as capacidades da linguagem como também a torna mais acessível e valiosa para uma gama mais ampla de usuários.

Tipos definidos pelo usuário

Tipos definidos pelo usuário (UDTs) no Test Engine permitem que você defina estruturas de dados personalizadas que podem ser usadas em seus planos de teste. Power Apps Esse recurso aumenta a flexibilidade e a reutilização dos seus casos de teste, permitindo que você crie tipos de dados complexos adaptados às suas necessidades específicas de teste.

Exemplo de UDT

Este exemplo mostra como definir e usar UDTs em um arquivo: testSettings.yaml

powerFxTestTypes:
 - name: ControlName
   value: |
      {ControlName: Text} 
 - name: Options
   value: |
      [{Name: Text, Value: Number}]   

Explicação do exemplo UDT

A powerFxTestTypes seção define dois novos tipos: ControlName e Options.

  • ControlName é um tipo simples com uma única propriedade ControlName de tipo Text.
  • Options são um tipo mais complexo, representando uma lista de objetos, cada um com Name (do tipo Text) e Value (do tipo Number).

Você pode usar esses tipos em seus casos de teste para definir variáveis e validar suas propriedades. Por exemplo, você pode definir uma variável do tipo Options e validar se ela contém os pares esperados Name e Value .

Funções definidas pelo usuário

Funções definidas pelo usuário (UDFs) no Test Engine permitem que você defina funções personalizadas que podem ser usadas em seus planos de teste. Power Apps Esse recurso aumenta a flexibilidade e a reutilização dos seus casos de teste, permitindo que você crie funções complexas adaptadas às suas necessidades específicas de teste.

Benefícios da UDF

  • Reutilização: UDFs permitem que você defina funções complexas uma vez e as reutilize em vários casos de teste. Isso reduz a redundância e garante consistência em seus planos de teste.
  • Legibilidade: Usar UDFs torna seus planos de teste mais legíveis e fáceis de manter. Ao definir funções personalizadas, você pode encapsular lógica complexa e tornar seus casos de teste mais compreensíveis.
  • Flexibilidade: UDFs fornecem a flexibilidade para criar funções personalizadas que se adaptam aos seus requisitos de teste específicos. Use essa abordagem para permitir que você adapte seus casos de teste para melhor atender às necessidades do seu aplicativo.
  • Manutenibilidade: Com UDFs, alterações em funções podem ser feitas em um só lugar, reduzindo o esforço necessário para atualizar vários casos de teste. Isso melhora a capacidade de manutenção dos seus planos de teste.

Exemplo de UDF

Este exemplo mostra como definir e usar UDFs em um arquivo: testSettings.yaml

testFunctions:
 - description: Wait until control is visible using Document Object Model (DOM) selector
   code: |
    WaitUntilVisible(control: Text): Void = 
      Preview.PlaywrightAction(Concatenate("//div[@data-id='", control, "']"), "wait");
 - description: Get the options for a control using Power Fx control from Model Driven App (MDA)
   code: |
    GetOptions(control: ControlName): Options =
      Preview.GetOptions(control);

Explicação do exemplo UDF

A testFunctions seção define duas novas funções:

  • WaitUntilVisible recebe um control parâmetro do tipo Text e espera até que o controle especificado fique visível usando um seletor DOM.
  • GetOptions recebe um control parâmetro do tipo ControlName e retorna as opções para o controle especificado usando Power Fx de um aplicativo orientado a modelo (MDA).

Use essas funções em seus casos de teste para executar ações específicas ou recuperar dados. Por exemplo, você pode usar WaitUntilVisible para garantir que um controle esteja visível antes de interagir com ele e GetOptions para recuperar e validar as opções disponíveis para um controle.