Compartir por


Formato YAML do motor de probas de Power Apps (vista previa)

Nota

As funcionalidades de vista previa non se deseñaron para uso de produción e poden ter funcionalidade restrinxida. Estas funcionalidades están dispoñibles antes da versión oficial para que os clientes poidan obter acceso a elas rápido e fornecer comentarios.

As probas defínense en YAML seguindo as mesmas pautas que Power Fx. Máis información sobre a gramática da fórmula YAML de Power Fx.

Vexa o cartafol PowerApps-TestEngine/samples para obter exemplos detallados.

Definicións de esquemas YAML

Propiedade Descrición
Conxunto de probas Define un conxunto de probas, os casos de proba no conxunto de probas e a configuración específica do conxunto de probas
Configuración da proba Define a configuración do conxunto de probas que se reutilizan en varios casos de proba
Variables ambientais Define as variables que poderían cambiar a medida que a aplicación se porta a diferentes ambientes

Conxunto de probas

Utilízase para definir unha proba.

Propiedade Tipo Descrición
persona cadea Requirido. O usuario que iniciou sesión para realizar a proba. Debe coincidir cunha persoa listada na sección Usuarios .
testCases Casos de proba Requirido. Define os casos de proba no conxunto de probas. Os casos de proba contidos nos conxuntos de probas execútanse secuencialmente. O estado da aplicación persiste en todos os casos de proba dunha suite.
testSuiteName cadea Requirido. O nome da suite de probas.
appLogicalName cadea Opcional. Nome lóxico da aplicación que se vai lanzar. Pódese obter a partir da solución. Para as aplicacións de lenzo, debes engadilo a unha solución para obtelo. Vexa como identificar a túa aplicación no plan de probas
appId Guid Opcional. Identificación da aplicación que se vai lanzar. É necesario e só se usa cando appLogicalName non está presente. O ID da aplicación só debe usarse para as aplicacións de lenzo que non están na solución. Vexa como identificar a túa aplicación no plan de probas
networkRequestMocks Mocks de solicitude de rede Opcional. Define as simulacións de solicitudes de rede necesarias para a proba.
onTestCaseComplete cadea Opcional. Define os pasos que deben ser desencadeados para cada caso de proba nunha suite despois de que o caso remate de executarse.
onTestCaseStart cadea Opcional. Define os pasos que deben ser desencadeados para cada caso de proba nunha suite antes de que o caso comece a executarse.
onTestSuiteComplete cadea Opcional. Define os pasos que deben ser desencadeados despois de que a suite remate de executarse.
testSuiteDescription cadea Opcional. A información adicional describe o que fai a suite de probas.

Como identificar a túa aplicación no plan de probas

É necesario configurar appLogicalName ou appId identificar a súa aplicación. O uso depende de se a túa aplicación está definida dentro dunha solución.

Cando defines as túas aplicacións dentro das solucións, as túas probas permanecen portátiles en todos os ambientes. Establece a propiedade appLogicalName para indicar que a aplicación está baseada en solucións.

Para localizar o nome lóxico da aplicación:

  1. Abre a solución que contén a túa aplicación en Power Apps
  2. Utiliza o nome (non o nome de visualización) na lista. O valor do nome inclúe o prefixo de personalización para o editor da solución.

Aplicacións autónomas

Cando a túa aplicación non está definida dentro dunha solución, debes usar a propiedade appId .

Para localizar o ID da aplicación:

  1. Localiza a aplicación na lista de Power Apps
  2. Abrir Detalles e anotar o GUID do ID da aplicación

Mocks de solicitude de rede

Propiedade Tipo Descrición
requestURL cadea Requirido. URL da solicitude que recibe a resposta simulada. Os patróns globais son aceptados
responseDataFile cadea Requirido. Ficheiro de texto co contido da resposta simulada. Todo o texto deste ficheiro é lido como resposta
headers matriz Opcional. Unha lista de campos de cabeceira na solicitude no formato de [fieldName: fieldValue]
method cadea Opcional. O método da solicitude (GET, POST, etc.)
requestBodyFile cadea Opcional. Ficheiro de texto co corpo da solicitude. Todo o texto deste ficheiro lese como o corpo da solicitude

Para as propiedades opcionais, se non se especifica ningún valor, o enrutamento aplícase a todos. Por exemplo, se method é nulo, enviamos a resposta simulada sexa cal sexa o método, sempre que as outras propiedades coincidan.

Para aplicacións requestURL de Sharepoint/Dataverse/Connector e method pode ser o mesmo para todas as solicitudes. x-ms-request-method e x-ms-request-url nese caso podería ter que configurar as cabeceiras para identificar diferentes solicitudes.

Casos de proba

Propiedade Tipo Descrición
testCaseName cadea Requirido. O nome do caso de proba que se usa para informar de éxito e fracaso
testSteps Pasos de proba Requirido. Un conxunto de funcións de Power Fx que describen os pasos necesarios para realizar o caso de proba. Vexa o exemplo de TestSteps
testCaseDescription Non Opcional. A información adicional describe o que fai o caso de proba

Pasos de proba

  • TestSteps Pode usar calquera función de función de Power Fx do motor de proba existente ou funcións de proba específicas definidas por este framework.
  • O valor debe comezar cun símbolo de tubo (|) para permitir expresións YAML multiliña seguidas dun signo igual (=) para indicar que é unha expresión de Power Fx
  • As funcións deben estar separadas por un punto e virgula (;).
  • Os comentarios pódense usar e deben comezar con caracteres de barra inversa dobre (//).

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");

Configuración da proba

Utilízase para definir a configuración das probas no plan de probas.

Propiedade Tipo Descrición
browserConfigurations Configuración do navegador[] Requirido. Lista de configuracións do navegador a probar. Debe especificarse polo menos un navegador.
extensionModules módulos de extensión Opcional. Contén datos sobre as extensións a habilitar.
filePath cadea Opcional. A ruta do ficheiro a un ficheiro yaml separado con todos os axustes de proba. Se se proporciona, anulará todos os axustes de proba no plan de proba.
headless boolean Opcional. O valor predeterminado é verdadeiro. Se se establece en false, o navegador aparece durante a execución da proba.
locale cadea Opcional. Sintaxe local/cultura na que se escriben os casos de proba ou os pasos de proba. Se non se especifica, CultureInfo.CurrentCulture utilízase para a localización por defecto para analizar os pasos de proba. Consideracións sobre a rexión e a lingua
recordVideo boolean Opcional. O defecto é falso. Se se establece en true, capturarase unha gravación de vídeo da proba.
timeout Número enteiro Opcional. Valor de tempo límite en milisegundos. A duración predeterminada é de 30.000 milisegundos (30 segundos). Se algunha operación leva máis tempo que o límite de tempo límite, remata a proba nun fallo.
powerFxTestTypes name value Emparellar Opcional. Lista de nomes de tipo e definicións de tipo de Power Fx. Vexa o exemplo de powerFxTestTypes
testFunctions description code Emparellar Opcional. Lista de descricións e definicións de funcións de Power Fx. Vexa o exemplo de testFunctions

módulos de extensión

Contén datos sobre as extensións a habilitar.

Propiedade Tipo Descrición
enable boolCity name (optional, probably does not need Indica se os módulos de extensión están activados ou non.
allowPowerFxNamespaces lista Lista de espazos de nomes de PowerFx a habilitar.
parameters Pares de valor clave Propiedades con valores para controlar os módulos de extensión. Polo momento, só o parámetro booleano enableDataverseFunctions é válido para iso.

Este exemplo móstrase como habilitar o espazo de nomes de PowerFx Preview :

testSettings:
  extensionModules:
    enable: true
    allowPowerFxNamespaces:
    - Preview

Máis información sobre as funcións de vista previa

Consideracións lingüísticas e regionais

O motor de probas admite varias configuracións lingüísticas e rexionais, como separadores decimais e de lista. A propiedade testSettings.locale controla estes comportamentos. Para obter máis información, consulte Soporte global en Microsoft Power Fx.

Vexa estas configuracións de exemplo no repositorioPowerApps-TestEngine GitHub:

Exemplo de powerFxTestTypes

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

Este exemplo móstrase como definir tipos de Power Fx personalizados para o seu uso nos seus casos de proba. O ControlName tipo defínese como un rexistro cun só Text campo, mentres que o Options tipo defínese como unha táboa de rexistros, cada un deles contén un Name campo de tipo Text e un Value campo de tipo Number. Os tipos personalizados pódense usar para crear escenarios de proba máis complexos e específicos, mellorando a flexibilidade e o poder das definicións de proba.

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 funcións de proba demostran como definir funcións personalizadas de Power Fx para o seu uso nos seus casos de proba. A WaitUntilVisible función usa un selector DOM para esperar a que un control especificado sexa visible, usando accións de Playwright. A función GetOptions recupera as opcións para un control especificado desde unha aplicación baseada en modelos (MDA), usando o control Power Fx. Estas funcións personalizadas melloran a flexibilidade e a potencia das súas definicións de proba, permitindo escenarios de proba máis complexos e específicos.

Configuración do navegador

Cada configuración de proba require polo menos unha BrowserConfiguration.

Propiedade Tipo Descrición
browser cadea Requirido. O navegador que se iniciará durante a proba. Debe coincidir cos navegadores soportados por Playwright.
device cadea Opcional. O dispositivo a emular ao iniciar o navegador. Debe coincidir cos dispositivos soportados por Playwright
screenHeight Número enteiro Opcional. A altura da pantalla a usar ao iniciar o navegador. Se se especifica, screenWidth tamén se debe especificar.
screenWidth Número enteiro Opcional. O ancho da pantalla a usar ao iniciar o navegador. Se se especifica, screenHeight tamén se debe especificar.

Variables ambientais

Pode almacenar diferentes tipos de valores como valores ambientais, pero o caso máis común é almacenar información de credenciais cunha lista de usuarios.

Usuarios

Para garantir que as credenciais se almacenen de forma segura, a definición de proba fai referencia aos usuarios usando un personaName. Non se admite o almacenamento de credenciais en ficheiros do plan de proba.

Exemplo:

environmentVariables:
    - users:
        - personaName: "User1"
          emailKey: "user1Email"
        - personaName: "User2"
          emailKey: "user2Email"

Utilízase personaName como parte da definición da proba para indicar como o usuario que executar a proba.

Mecanismos de almacenamento de credenciais soportados

Para almacenar as credenciais como variables de ambiente, pode configuralas do seguinte xeito:

# In PowerShell - replace variableName and variableValue with the correct values
$env:variableName = "variableValue"

No YAML, hai que definir dúas propiedades para indicar que as credenciais deste usuario están almacenadas en variables de ambiente:

  • emailKeyVariable de entorno utilizada para almacenar o correo electrónico do usuario.

Exemplo YAML:

    - personaName: "User1"
      emailKey: "user1Email"

Exemplo de PowerShell para establecer as credenciais de usuario baseadas en YAML:

$env:user1Email = "someone@example.com"

Véxase tamén

Visión xeral do motor de probas de Power Apps (vista previa)
Funcións de Power Apps Test Engine Power Fx (vista previa)