Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Observação
As caraterísticas de pré-visualização não se destinam à produção e poderão ter caraterísticas restritas. Esses recursos estão disponíveis antes de um lançamento oficial para que os clientes possam obter acesso antecipado e fornecer feedback.
Os testes são definidos no YAML seguindo as mesmas diretrizes do Power Fx. Saiba mais sobre a gramática da fórmula Power Fx YAML.
Exiba a pasta PowerApps-TestEngine/samples para obter exemplos detalhados.
Definições de esquema YAML
| Propriedade | Description |
|---|---|
| testSuite | Define um conjunto de testes, os casos de teste no conjunto de testes e a configuração específica para o conjunto de testes |
| testSettings | Define configurações para o conjunto de testes que são reutilizadas em vários casos de teste |
| environmentVariables | Define variáveis que podem mudar à medida que o aplicativo é portado em diferentes ambientes |
testSuite
Usado para definir um teste.
| Propriedade | Tipo | Description |
|---|---|---|
persona |
cadeia (de caracteres) | Required. O usuário que está conectado para executar o teste. Deve corresponder a uma persona listada na seção Usuários . |
testCases |
Casos de teste | Required. Define casos de teste no conjunto de testes. Os casos de teste contidos nos pacotes de teste são executados sequencialmente. O estado do aplicativo é mantido em todos os casos de teste em um pacote. |
testSuiteName |
cadeia (de caracteres) | Required. O nome do conjunto de testes. |
appLogicalName |
cadeia (de caracteres) | Opcional. O nome lógico do aplicativo que será iniciado. Pode ser obtido a partir da solução. Para aplicativos de tela, você precisa adicioná-lo a uma solução para obtê-lo. Consulte Como identificar sua aplicação no plano de teste |
appId |
Guia | Opcional. A ID do aplicativo que será iniciado. Obrigatório e usado apenas quando appLogicalName não está presente. A ID do aplicativo deve ser usada apenas para aplicativos de tela que não estão na solução. Consulte Como identificar sua aplicação no plano de teste |
networkRequestMocks |
NetworkRequestMocks | Opcional. Define simulações de solicitação de rede necessárias para o teste. |
onTestCaseComplete |
cadeia (de caracteres) | Opcional. Define as etapas que precisam ser acionadas para cada caso de teste em um pacote depois que o caso termina de ser executado. |
onTestCaseStart |
cadeia (de caracteres) | Opcional. Define as etapas que precisam ser acionadas para cada caso de teste em um pacote antes que o caso comece a ser executado. |
onTestSuiteComplete |
cadeia (de caracteres) | Opcional. Define as etapas que precisam ser acionadas após a conclusão da execução do conjunto. |
testSuiteDescription |
cadeia (de caracteres) | Opcional. Informações adicionais descrevem o que o conjunto de testes faz. |
Como identificar a sua aplicação no plano de teste
Você precisa definir um ou appLogicalNameappId para identificar seu aplicativo. O que você usa depende se seu aplicativo está definido dentro de uma solução.
Aplicativos baseados em soluções (recomendado)
Quando você define seus aplicativos dentro de soluções, seus testes permanecem portáteis em todos os ambientes. Defina a appLogicalName propriedade para indicar que o aplicativo é baseado em solução.
Para localizar o nome lógico do aplicativo:
- Abra a solução que contém a sua aplicação no Power Apps
- Use o Nome (não Nome para exibição) na lista. O valor do nome inclui o prefixo de personalização para o editor da solução.
Aplicações autónomas
Quando seu aplicativo não está definido em uma solução, você precisa usar a appId propriedade.
Para localizar o ID do aplicativo:
- Localize a aplicação na lista Power Apps
- Abra Detalhes e anote o GUID da ID do aplicativo
NetworkRequestMocks
| Propriedade | Tipo | Description |
|---|---|---|
requestURL |
cadeia (de caracteres) | Required. O URL da solicitação que recebe uma resposta simulada. Padrões de Glob são aceitos |
responseDataFile |
cadeia (de caracteres) | Required. Um arquivo de texto com o conteúdo da resposta simulada. Todo o texto neste ficheiro é lido como a resposta |
headers |
matriz | Opcional. Uma lista de campos de cabeçalho na solicitação no formato de [fieldName: fieldValue] |
method |
cadeia (de caracteres) | Opcional. O método da solicitação (GET, POST, etc.) |
requestBodyFile |
cadeia (de caracteres) | Opcional. Um arquivo de texto com o corpo da solicitação. Todo o texto neste arquivo é lido como o corpo da solicitação |
Para propriedades opcionais, se nenhum valor for especificado, o roteamento se aplicará a todos. Por exemplo, se method for null, enviaremos de volta a resposta simulada, seja qual for o método, desde que todas as outras propriedades correspondam.
Para aplicativos Sharepoint/Dataverse/Connector, requestURL e method pode ser o mesmo para todas as solicitações.
x-ms-request-method e x-ms-request-url em cabeçalhos pode ser necessário configurar nesse caso para identificar diferentes solicitações.
Casos de teste
| Propriedade | Tipo | Description |
|---|---|---|
testCaseName |
cadeia (de caracteres) | Required. O nome do caso de teste que é usado no relatório de sucesso e falha |
testSteps |
TestSteps | Required. Um conjunto de funções Power Fx que descreve as etapas necessárias para executar o caso de teste. Veja o exemplo de TestSteps |
testCaseDescription |
Não | Opcional. Informações adicionais descrevem o que o caso de teste faz |
TestSteps
-
TestStepspode usar quaisquer funções Fx de potência do motor de teste existentes ou funções de teste específicas definidas por esta estrutura. - O valor deve começar com um símbolo de pipe (
|) para permitir expressões YAML de várias linhas seguidas por um sinal de igual (=) para indicar que é uma expressão Power Fx - As funções devem ser separadas por ponto-e-vírgula (
;). - Os comentários podem ser usados e devem começar com caracteres de barra invertida dupla (
//).
Exemplo de TestSteps
testCases:
- testCaseName: Fill in a city name and do the search
testSteps: |
= Screenshot("connectorapp_loaded.png");
SetProperty(TextInput1.Text, "Atlanta");
Select(Button1);
Assert(Label4.Text = "You are seeing the mock response", "Validate the output is from the mock");
Screenshot("connectorapp_end.png");
testSettings
Usado para definir configurações para os testes no plano de teste.
| Propriedade | Tipo | Description |
|---|---|---|
browserConfigurations |
BrowserConfiguration[] | Required. Uma lista de configurações do navegador a serem testadas. Pelo menos um navegador deve ser especificado. |
extensionModules |
extensionModules | Opcional. Contém dados sobre extensões a serem habilitadas. |
filePath |
cadeia (de caracteres) | Opcional. O caminho do arquivo para um arquivo yaml separado com todas as configurações de teste. Se fornecido, ele substituirá todas as configurações de teste no plano de teste. |
headless |
Booleano | Opcional. A predefinição é verdadeira. Se definido como false, o navegador aparece durante a execução do teste. |
locale |
cadeia (de caracteres) | Opcional. A sintaxe de localidade/cultura na qual os casos de teste ou as etapas de teste são gravados. Se não especificado, CultureInfo.CurrentCulture é usado para a localidade por padrão para analisar as etapas de teste. Consulte Considerações sobre região e idioma |
recordVideo |
Booleano | Opcional. O valor padrão é falso. Se definido como true, uma gravação de vídeo do teste é capturada. |
timeout |
número inteiro | Opcional. Valor de tempo limite em milissegundos. O padrão é 30.000 milissegundos (30s). Se qualquer operação demorar mais do que o limite de tempo limite, termina o teste em uma falha. |
powerFxTestTypes |
name
value par |
Opcional. Uma lista de nomes de tipo e definições de tipo Power Fx. Veja o exemplo de powerFxTestTypes |
testFunctions |
description
code par |
Opcional. Uma lista de descrição e definições de função Power Fx. Veja o exemplo de testFunctions |
extensionModules
Contém dados sobre extensões a serem habilitadas.
| Propriedade | Tipo | Description |
|---|---|---|
enable |
bool | Se os módulos de extensão estão habilitados ou não. |
allowPowerFxNamespaces |
lista | Lista dos namespaces PowerFx a serem habilitados. |
parameters |
Pares de valores-chave | Propriedades com valores para controlar módulos de extensão. Neste momento, apenas o parâmetro booleano enableDataverseFunctions é válido para isso. |
Este exemplo mostra como habilitar o namespace PowerFx Preview :
testSettings:
extensionModules:
enable: true
allowPowerFxNamespaces:
- Preview
Saiba mais sobre as funções de pré-visualização
Considerações sobre região e idioma
O Test Engine suporta várias configurações regionais e de idioma, como separadores decimais e de lista. A testSettings.locale propriedade controla esses comportamentos. Para obter mais informações, consulte Suporte global no Microsoft Power Fx.
Veja estas configurações de exemplo no repositórioPowerApps-TestEngine GitHub:
- Para regiões que usam ponto-e-vírgula como separadores de lista
- Para regiões que usam vírgulas como separadores decimais
Exemplo de powerFxTestTypes
powerFxTestTypes:
- name: ControlName
value: |
{ControlName: Text}
- name: Options
value: |
[{Name: Text, Value: Number}]
Este exemplo demonstra como definir tipos de Power Fx personalizados para uso em seus casos de teste. O ControlName tipo é definido como um registro com um único Text campo, enquanto o Options tipo é definido como uma tabela de registros, cada um contendo um Name campo de tipo Text e um Value campo de tipo Number. Os tipos personalizados podem ser usados para criar cenários de teste mais complexos e específicos, aumentando a flexibilidade e o poder de suas definições de teste.
Exemplo de testFunctions
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);
Estes exemplos de funções de teste demonstram como definir funções Power Fx personalizadas para uso em seus casos de teste. A WaitUntilVisible função usa um seletor DOM para aguardar até que um controle especificado esteja visível, usando ações de Playwright. A função GetOptions recupera as opções para um controle especificado de um aplicativo controlado por modelo (MDA), utilizando o controle Power Fx. Essas funções personalizadas aumentam a flexibilidade e o poder de suas definições de teste, permitindo cenários de teste mais complexos e específicos.
Configuração do navegador
Cada testSettings requer pelo menos um BrowserConfiguration.
| Propriedade | Tipo | Description |
|---|---|---|
browser |
cadeia (de caracteres) | Required. O navegador a ser iniciado durante o teste. Deve corresponder aos navegadores suportados pelo Playwright. |
device |
cadeia (de caracteres) | Opcional. O dispositivo a ser emulado ao iniciar o navegador. Deve corresponder aos dispositivos suportados pelo Playwright |
screenHeight |
número inteiro | Opcional. A altura da tela a ser usada ao iniciar o navegador. Se especificado, screenWidth também deve ser especificado. |
screenWidth |
número inteiro | Opcional. A largura da tela a ser usada ao iniciar o navegador. Se especificado, screenHeight também deve ser especificado. |
environmentVariables
Você pode armazenar diferentes tipos de valores como valores ambientais, mas o caso mais comum é o armazenamento de informações de credenciais com uma lista de usuários.
users
Para garantir que as credenciais sejam armazenadas de maneira segura, a definição de teste faz referência aos usuários usando um personaNamearquivo . Não há suporte para o armazenamento de credenciais em arquivos de plano de teste.
Exemplo:
environmentVariables:
- users:
- personaName: "User1"
emailKey: "user1Email"
- personaName: "User2"
emailKey: "user2Email"
O personaName é usado como parte da definição de teste para indicar qual usuário executar o teste como.
Mecanismos de armazenamento de credenciais suportados
Para armazenar credenciais como variáveis de ambiente, você pode defini-las da seguinte maneira:
# In PowerShell - replace variableName and variableValue with the correct values
$env:variableName = "variableValue"
No YAML, duas propriedades precisam ser definidas para indicar que as credenciais desse usuário são armazenadas em variáveis de ambiente:
-
emailKey: A variável de ambiente usada para armazenar o e-mail do usuário.
Exemplo YAML:
- personaName: "User1"
emailKey: "user1Email"
Exemplo de PowerShell para definir credenciais de usuário com base em YAML:
$env:user1Email = "someone@example.com"
Consulte também
Visão geral do mecanismo de teste do Power Apps (visualização)
Power Apps Test Engine Power Fx funções (visualização)