Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
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 estão disponíveis antes de um lançamento oficial para que os clientes possam obter acesso antecipado e fornecer comentários.
Os testes são definidos no YAML seguindo as mesmas diretrizes que o Power Fx. Saiba mais sobre a gramática da fórmula YAML do Power Fx.
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íficas para o conjunto de testes |
| testSettings | Define as configurações do conjunto de testes que são reutilizados em vários casos de teste |
| environmentVariables | Define variáveis que podem ser alteradas à medida que o aplicativo é portado em diferentes ambientes |
testSuite
Usado para definir um teste.
| Propriedade | Tipo | Description |
|---|---|---|
persona |
cadeia | Obrigatório O usuário que está conectado para executar o teste. Deve corresponder a uma persona listada na seção Usuários . |
testCases |
TestCases | Obrigatório Define casos de teste no conjunto de testes. Os casos de teste contidos em conjuntos de testes são executados sequencialmente. O estado do aplicativo é mantido em todos os casos de teste em um pacote. |
testSuiteName |
cadeia | Obrigatório O nome do conjunto de testes. |
appLogicalName |
cadeia | Optional. O nome lógico do aplicativo que deve ser iniciado. Ele pode ser obtido da solução. Para aplicativos de tela, você precisa adicioná-lo a uma solução para obtê-lo. Veja como identificar seu aplicativo no plano de teste |
appId |
Guid | Optional. A ID do aplicativo que será iniciado. Obrigatório e usado somente 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. Veja como identificar seu aplicativo no plano de teste |
networkRequestMocks |
NetworkRequestMocks | Optional. Define as simulações de solicitação de rede necessárias para o teste. |
onTestCaseComplete |
cadeia | Optional. Define as etapas que precisam ser disparadas para cada caso de teste em um conjunto após a conclusão da execução do caso. |
onTestCaseStart |
cadeia | Optional. Define as etapas que precisam ser disparadas para cada caso de teste em um conjunto antes que o caso comece a ser executado. |
onTestSuiteComplete |
cadeia | Optional. Define as etapas que precisam ser disparadas após a conclusão da execução do pacote. |
testSuiteDescription |
cadeia | Optional. Informações adicionais descrevem o que o conjunto de testes faz. |
Como identificar seu aplicativo no plano de teste
Você precisa definir ou appLogicalNameappId identificar seu aplicativo. O que você usa depende se seu aplicativo está definido em uma solução.
Aplicativos baseados em solução (recomendado)
Quando você define seus aplicativos em soluções, seus testes permanecem portáteis entre 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 seu aplicativo no Power Apps
- Use o nome (não o nome de exibição) na lista. O valor do nome inclui o prefixo de personalização para o editor da solução.
Aplicativos autônomos
Quando seu aplicativo não estiver definido em uma solução, você precisará usar a appId propriedade.
Para localizar a ID do aplicativo:
- Localizar o aplicativo na lista do Power Apps
- Abra detalhes e anote o GUID da ID do aplicativo
NetworkRequestMocks
| Propriedade | Tipo | Description |
|---|---|---|
requestURL |
cadeia | Obrigatório A URL de solicitação que obtém uma resposta simulada. Padrões glob são aceitos |
responseDataFile |
cadeia | Obrigatório Um arquivo de texto com o conteúdo da resposta simulada. Todo o texto neste arquivo é lido como a resposta |
headers |
matriz | Optional. Uma lista de campos de cabeçalho na solicitação no formato [fieldName: fieldValue] |
method |
cadeia | Optional. O método da solicitação (GET, POST etc.) |
requestBodyFile |
cadeia | Optional. 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 nulo, enviaremos de volta a resposta simulada seja qual for o método, desde que todas as outras propriedades correspondam.
Para aplicativos do Sharepoint/Dataverse/Connector e requestURLmethod pode ser o mesmo para todas as solicitações.
x-ms-request-method e x-ms-request-url em cabeçalhos pode precisar ser configurado nesse caso para identificar solicitações diferentes.
TestCases
| Propriedade | Tipo | Description |
|---|---|---|
testCaseName |
cadeia | Obrigatório O nome do caso de teste usado no relatório de êxito e falha |
testSteps |
TestSteps | Obrigatório Um conjunto de funções do Power Fx que descrevem as etapas necessárias para executar o caso de teste. Veja o exemplo testSteps |
testCaseDescription |
Não | Optional. Informações adicionais descrevem o que o caso de teste faz |
TestSteps
-
TestStepspode usar quaisquer funções do Power Fx do Mecanismo de Teste existentes ou funções de teste específicas definidas por essa 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 igual (=) para indicar que é uma expressão power fx - As funções devem ser separadas por um ponto-e-vírgula (
;). - Os comentários podem ser usados e devem começar com caracteres de barra invertida duplas (
//).
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 as configurações para os testes no plano de teste.
| Propriedade | Tipo | Description |
|---|---|---|
browserConfigurations |
BrowserConfiguration[] | Obrigatório Uma lista de configurações do navegador a ser testada. Pelo menos um navegador deve ser especificado. |
extensionModules |
extensionModules | Optional. Contém dados sobre extensões para habilitar. |
filePath |
cadeia | Optional. 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 |
boolean | Optional. O padrão é true. Se definido como false, o navegador aparecerá durante a execução do teste. |
locale |
cadeia | Optional. A sintaxe de localidade/cultura na qual os casos de teste ou as etapas de teste são gravados. Se não for especificado, CultureInfo.CurrentCulture será usado para a localidade por padrão para analisar as etapas de teste. Consulte as considerações sobre a região e o idioma |
recordVideo |
boolean | Optional. O padrão é false. Se definido como true, uma gravação de vídeo do teste será capturada. |
timeout |
inteiro | Optional. 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, ela terminará o teste em uma falha. |
powerFxTestTypes |
name
value par |
Optional. Uma lista de nomes de tipo e definições de tipo do Power Fx. Veja o exemplo de powerFxTestTypes |
testFunctions |
description
code par |
Optional. Uma lista de definições de descrição e de função do Power Fx. Veja o exemplo de testFunctions |
extensionModules
Contém dados sobre extensões para habilitar.
| Propriedade | Tipo | Description |
|---|---|---|
enable |
bool | Se os módulos de extensão estão habilitados ou não. |
allowPowerFxNamespaces |
lista | Lista dos namespaces do PowerFx a serem habilitados. |
parameters |
pares de valor de chave | Propriedades com valores para controlar módulos de extensão. Neste momento, somente o parâmetro booliano enableDataverseFunctions é válido para isso. |
Este exemplo mostra como habilitar o namespace do PowerFx Preview :
testSettings:
extensionModules:
enable: true
allowPowerFxNamespaces:
- Preview
Saiba mais sobre as funções de visualização
Considerações de região e idioma
O Mecanismo de Teste dá suporte a vários idiomas e configurações regionais, como separadores decimal e lista. A testSettings.locale propriedade controla esses comportamentos. Para obter mais informações, consulte Suporte Global no Microsoft Power Fx.
Examine estas configurações de exemplo no repositório githubPowerApps-TestEngine:
- 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 personalizados do Power Fx 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 das 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);
Esses exemplos de função de teste demonstram como definir funções personalizadas do Power Fx 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 do Dramaturgo. A função GetOptions recupera as opções para um controle especificado de um MDA ( Aplicativo Orientado por Modelo ), utilizando o controle Power Fx. Essas funções personalizadas aprimoram a flexibilidade e o poder das definições de teste, permitindo cenários de teste mais complexos e específicos.
BrowserConfiguration
Cada testSettings requer pelo menos um BrowserConfiguration.
| Propriedade | Tipo | Description |
|---|---|---|
browser |
cadeia | Obrigatório O navegador a ser iniciado durante o teste. Deve corresponder aos navegadores com suporte do Dramaturgo. |
device |
cadeia | Optional. O dispositivo a ser emulado ao iniciar o navegador. Deve corresponder aos dispositivos compatíveis com o Dramaturgo |
screenHeight |
inteiro | Optional. A altura da tela a ser usada ao iniciar o navegador. Se especificado, screenWidth também deve ser especificado. |
screenWidth |
inteiro | Optional. 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 é armazenar informações de credencial 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 personaName. Não há suporte para armazenar 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 como o usuário executará o teste.
Mecanismos de armazenamento de credenciais com suporte
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 email do usuário.
Exemplo de YAML:
- personaName: "User1"
emailKey: "user1Email"
Exemplo do PowerShell para definir credenciais de usuário com base no YAML:
$env:user1Email = "someone@example.com"
Consulte também
Visão geral do Mecanismo de Teste do Power Apps (versão prévia)
Power Apps Funções do Test Engine (prévia) Power Fx