Comparteix via


Format YAML del motor de proves del Power Apps (versió preliminar)

Nota

Les característiques de visualització prèvia no estan dissenyades per a un entorn de producció i poden tenir una funcionalitat restringida. Aquestes característiques estan disponibles abans d’un llançament oficial de producte per tal que els clients el puguin utilitzar abans i enviar-nos els seus comentaris.

Les proves es defineixen en YAML seguint les mateixes directrius que el Power Fx. Obteniu més informació sobre la gramàtica de la fórmula YAML del Power Fx.

Visualitzeu la carpeta PowerApps-TestEngine/samples per obtenir exemples detallats.

Definicions d'esquema YAML

Propietat Descripció
Suite de proves Defineix un conjunt de proves, els casos de prova del conjunt de proves i la configuració específica del conjunt de proves
Configuració de prova Defineix la configuració del conjunt de proves que es reutilitza en diversos casos de prova
Variables d'entorn Defineix variables que poden canviar a mesura que l'aplicació es porta a diferents entorns

Suite de proves

S'utilitza per definir una prova.

Propietat Type Descripció
persona cadena Obligatori. L'usuari que ha iniciat la sessió per realitzar la prova. Ha de coincidir amb una persona que apareix a la secció Usuaris .
testCases Casos de prova Obligatori. Defineix els casos de prova al conjunt de proves. Els casos de prova continguts en els conjunts de proves s'executen seqüencialment. L'estat de l'aplicació es manté en tots els casos de prova d'un conjunt.
testSuiteName cadena Obligatori. El nom del conjunt de proves.
appLogicalName cadena Opcional. El nom lògic de l'aplicació que s'ha d'iniciar. Es pot obtenir de la solució. Per a les aplicacions de llenç, heu d'afegir-lo a una solució per obtenir-lo. Vegeu Com identificar la vostra aplicació al pla de prova
appId Guid Opcional. L'identificador de l'aplicació que s'ha d'iniciar. Obligatori i només s'utilitza quan appLogicalName no hi és. L'identificador d'aplicació només s'ha d'utilitzar per a les aplicacions de llenç que no es troben a la solució. Vegeu Com identificar la vostra aplicació al pla de prova
networkRequestMocks Simulacres de sol·licitud de xarxa Opcional. Defineix els simulacres de sol·licitud de xarxa necessaris per a la prova.
onTestCaseComplete cadena Opcional. Defineix els passos que s'han d'activar per a cada cas de prova d'un conjunt un cop finalitzat l'execució del cas.
onTestCaseStart cadena Opcional. Defineix els passos que s'han d'activar per a cada cas de prova d'un conjunt abans que el cas comenci a executar-se.
onTestSuiteComplete cadena Opcional. Defineix els passos que s'han d'activar després que la suite acabi d'executar-se.
testSuiteDescription cadena Opcional. La informació addicional descriu el que fa el conjunt de proves.

Com identificar la teva aplicació al pla de proves

Heu d'establir o appLogicalNameappId per identificar la vostra aplicació. El que utilitzeu depèn de si l'aplicació està definida dins d'una solució.

Quan definiu les aplicacions dins de solucions, les proves es mantenen portàtils entre entorns. Definiu la appLogicalName propietat per indicar que l'aplicació està basada en solucions.

Per localitzar el nom lògic de l'aplicació:

  1. Obriu la solució que conté l'aplicació al Power Apps
  2. Utilitzeu el nom (no el nom de visualització) a la llista. El valor name inclou el prefix de personalització per a l'editor de solucions.

Aplicacions independents

Quan l'aplicació no està definida dins d'una solució, heu d'utilitzar la appId propietat.

Per localitzar l'identificador de l'aplicació:

  1. Localitzar l'aplicació a la llista del Power Apps
  2. Obriu Detalls i anoteu el GUID de l'identificador de l'aplicació

Simulacres de sol·licitud de xarxa

Propietat Type Descripció
requestURL cadena Obligatori. L'URL de la sol·licitud que rep una resposta simulada. S'accepten patrons globals
responseDataFile cadena Obligatori. Un fitxer de text amb el contingut de la resposta simulada. Tot el text d'aquest fitxer es llegeix com a resposta
headers matriu Opcional. Llista dels camps de capçalera de la sol·licitud en el format de [fieldName: fieldValue]
method cadena Opcional. El mètode de la sol·licitud (GET, POST, etc.)
requestBodyFile cadena Opcional. Un fitxer de text amb el cos de la sol·licitud. Tot el text d'aquest fitxer es llegeix com a cos de la sol·licitud

Per a les propietats opcionals, si no s'especifica cap valor, l'encaminament s'aplica a tots. Per exemple, si method és nul, enviem la resposta simulada sigui quin sigui el mètode, sempre que les altres propietats coincideixin.

Per a les aplicacions requestURL del Sharepoint/Dataverse/Connector i method pot ser el mateix per a totes les sol·licituds. x-ms-request-method i x-ms-request-url les capçaleres in podrien haver de ser configurades en aquest cas per identificar diferents sol·licituds.

Casos de prova

Propietat Type Descripció
testCaseName cadena Obligatori. El nom del cas de prova que s'utilitza per informar d'èxit i error
testSteps Passos de prova Obligatori. Conjunt de funcions de Power Fx que descriuen els passos necessaris per realitzar el cas de prova. Vegeu l'exemple de TestSteps
testCaseDescription No Opcional. Informació addicional descriu el que fa el cas de prova

Passos de prova

  • TestSteps pot utilitzar qualsevol funció de funció de Power Fx del motor de prova existent o funcions de prova específiques definides per aquest marc.
  • El valor ha de començar amb un símbol de barra vertical (|) per permetre expressions YAML de diverses línies seguit d'un signe igual (=) per indicar que és una expressió del Power Fx
  • Les funcions han d'estar separades per un punt i coma (;).
  • Els comentaris es poden utilitzar i han de començar amb caràcters de barra invertida doble (//).

Exemple 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ó de prova

S'utilitza per definir la configuració de les proves del pla de prova.

Propietat Type Descripció
browserConfigurations Configuració del navegador[modifica] Obligatori. Una llista de configuracions del navegador que s'han de provar. S'ha d'especificar com a mínim un navegador.
extensionModules extensionMòduls Opcional. Conté dades sobre les extensions que s'han d'habilitar.
filePath cadena Opcional. El camí del fitxer a un fitxer yaml separat amb tots els paràmetres de prova. Si es proporciona, substituirà tots els paràmetres de prova del pla de prova.
headless boolean Opcional. El valor per defecte és cert. Si es defineix com a false, el navegador es mostra durant l'execució de la prova.
locale cadena Opcional. Sintaxi de configuració regional i cultura en què s'escriuen els casos de prova o els passos de prova. Si no s'especifica, CultureInfo.CurrentCulture s'utilitza per a la configuració regional per defecte per analitzar els passos de prova. Vegeu Consideracions sobre la regió i l'idioma
recordVideo boolean Opcional. Per defecte és false. Si s'estableix com a true, es captura una gravació de vídeo de la prova.
timeout enter Opcional. Valor de temps d'espera en mil·lisegons. El valor predeterminat és 30.000 mil·lisegons (30 segons). Si alguna operació triga més que el límit de temps d'espera, finalitza la prova en un error.
powerFxTestTypes name value parell Opcional. Una llista de noms de tipus i definicions de tipus del Power Fx. Vegeu l'exemple de powerFxTestTypes
testFunctions description code parell Opcional. Una llista de descripcions i definicions de funcions de Power Fx. Vegeu l'exemple de testFunctions

extensionMòduls

Conté dades sobre les extensions que s'han d'habilitar.

Propietat Type Descripció
enable bool Si els mòduls d'extensió estan hhabilitats o no.
allowPowerFxNamespaces llista Llista dels espais de noms del PowerFx que s'han d'habilitar.
parameters Parells valor-clau Propietats amb valors per controlar mòduls d'extensió. En aquest moment, només el paràmetre booleà enableDataverseFunctions és vàlid per a això.

En aquest exemple es mostra com habilitar l'espai de noms PowerFx Preview :

testSettings:
  extensionModules:
    enable: true
    allowPowerFxNamespaces:
    - Preview

Més informació sobre les funcions de visualització prèvia

Consideracions sobre la regió i l'idioma

El Test Engine admet diverses configuracions d'idioma i regionals, com ara separadors decimals i de llista. La testSettings.locale propietat controla aquests comportaments. Per obtenir més informació, vegeu Suport global al Microsoft Power Fx.

Mireu aquestes configuracions d'exemple al repositori de GitHubPowerApps-TestEngine:

Exemple de powerFxTestTypes

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

En aquest exemple es mostra com definir tipus de Power Fx personalitzats per utilitzar-los en els casos de prova. El ControlName tipus es defineix com un registre amb un sol Text camp, mentre que el Options tipus es defineix com una taula de registres, cadascun dels quals conté un Name camp de tipus Text i un Value camp de tipus Number. Els tipus personalitzats es poden utilitzar per crear escenaris de prova més complexos i específics, millorant la flexibilitat i la potència de les definicions de prova.

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

Aquests exemples de funcions de prova demostren com definir funcions personalitzades del Power Fx per utilitzar-les en els casos de prova. La WaitUntilVisible funció utilitza un selector DOM per esperar fins que un control especificat sigui visible, utilitzant accions de Playwright. La funció GetOptions recupera les opcions d'un control especificat d'una aplicació basada en models (MDA), utilitzant el control Power Fx. Aquestes funcions personalitzades milloren la flexibilitat i la potència de les definicions de prova, permetent escenaris de prova més complexos i específics.

Configuració del navegador

Cada testSettings requereix almenys un BrowserConfiguration.

Propietat Type Descripció
browser cadena Obligatori. El navegador que s'ha d'iniciar durant la prova. Hauria de coincidir amb els navegadors compatibles amb Playwright.
device cadena Opcional. El dispositiu a emular en iniciar el navegador. Ha de coincidir amb els dispositius compatibles amb Playwright
screenHeight enter Opcional. L'alçada de la pantalla que s'utilitzarà en iniciar el navegador. Si s'especifica, screenWidth també s'ha d'especificar.
screenWidth enter Opcional. L'amplada de la pantalla que s'utilitzarà en iniciar el navegador. Si s'especifica, screenHeight també s'ha d'especificar.

Variables d'entorn

Podeu emmagatzemar diferents tipus de valors com a valors ambientals, però el cas més comú és emmagatzemar informació de credencials amb una llista d'usuaris.

Usuaris

Per garantir que les credencials s'emmagatzemin de manera segura, la definició de prova fa referència als usuaris que utilitzen un personaName. No s'admet l'emmagatzematge de credencials als fitxers del pla de prova.

Exemple:

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

El personaName s'utilitza com a part de la definició de prova per indicar com a quin usuari s'ha d'executar la prova.

Mecanismes d'emmagatzematge de credencials admesos

Per emmagatzemar les credencials com a variables d'entorn, podeu definir-les de la següent manera:

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

A la YAML, cal definir dues propietats per indicar que les credencials d'aquest usuari s'emmagatzemen en variables d'entorn:

  • emailKey: La variable d'entorn que s'utilitza per emmagatzemar el correu electrònic de l'usuari.

Exemple YAML:

    - personaName: "User1"
      emailKey: "user1Email"

Exemple de PowerShell per definir credencials d'usuari basades en YAML:

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

Consulteu també

Informació general del motor de proves del Power Apps (visualització prèvia)
Power Apps Funcions del motor Power Fx de prova (visualització prèvia)