Partajați prin


Format YAML pentru motorul de testare Power Apps (previzualizare)

Notă

Caracteristicile în regim de previzualizare nu sunt destinate utilizării în producție și pot avea funcționalitate restricționată. Aceste caracteristici sunt disponibile înainte de lansarea oficială, astfel încât clienții să poată obține acces din timp și să poată oferi feedback.

Testele sunt definite în YAML urmând aceleași indicații ca Power Fx. Aflați mai multe despre gramatica formulei YAML Power Fx.

Vizualizați folderul PowerApps-TestEngine/samples pentru exemple detaliate.

Definiții schemă YAML

Proprietate Descriere
testSuite Definește o suită de testare, cazurile de testare din suita de testare și configurația specifică suitei de testare
testSettings Definește setările pentru suita de test care sunt reutilizate în mai multe cazuri de testare
environmentVariables Definește variabile care ar putea modifica pe măsură ce aplicația este portată în diferite medii

testSuite

Utilizat pentru a defini un test.

Proprietate Tip Descriere
persona string Necesar Utilizatorul care este conectat pentru a efectua testul. Trebuie să corespundă unei persoane listate în secțiunea Utilizatori .
testCases TestCases Necesar Definește cazurile de testare din suita de testare. Cazurile de testare cuprinse în suitele de testare sunt executate secvențial. Starea aplicației este menținută în toate cazurile de testare dintr-o suită.
testSuiteName string Necesar Numele suitei de test.
appLogicalName string Opțional. Numele logic al aplicației care va fi lansată. Aceasta poate fi obținută din soluție. Pentru aplicațiile de pânză, trebuie să o adăugați la o soluție pentru a o obține. Consultați Cum să vă identificați aplicația în planul de test
appId Guid Opțional. ID-ul aplicației care va fi lansată. Obligatoriu și utilizat numai atunci când appLogicalName nu este prezent. ID-ul de aplicație trebuie utilizat doar pentru aplicațiile pânză care nu se află în soluție. Consultați Cum să vă identificați aplicația în planul de test
networkRequestMocks NetworkRequestMocks Opțional. Definește machetele de solicitare de rețea necesare pentru test.
onTestCaseComplete string Opțional. Definește pașii care trebuie declanșați pentru fiecare caz de test dintr-o suită după ce se termină executarea cazului.
onTestCaseStart string Opțional. Definește pașii care trebuie declanșați pentru fiecare caz de test dintr-o suită înainte ca cazul să înceapă executarea.
onTestSuiteComplete string Opțional. Definește pașii care trebuie declanșați după ce suita se termină de executat.
testSuiteDescription string Opțional. Informații suplimentare descrie ce face suita de testare.

Cum să vă identificați aplicația în planul de test

Trebuie să setați una appLogicalName sau appId să identificați aplicația. Ceea ce utilizați depinde de definirea aplicației într-o soluție.

Atunci când definiți aplicațiile în cadrul soluțiilor, testele dvs. rămân portabile în medii. appLogicalName Setați proprietatea pentru a indica faptul că aplicația este bazată pe soluție.

Pentru a găsi numele logic al aplicației:

  1. Deschideți soluția care conține aplicația dvs. în Power Apps
  2. Utilizați Numele (nu numele afișat) din listă. Valoarea numelui include prefixul de particularizare pentru editorul soluției.

Aplicații independente

Atunci când aplicația dvs. nu este definită într-o soluție, trebuie să utilizați appId proprietatea.

Pentru a găsi ID-ul aplicației:

  1. Găsiți aplicația în lista Power Apps
  2. Deschideți Detalii și notați GUID-ul ID-ului de aplicație

NetworkRequestMocks

Proprietate Tip Descriere
requestURL string Necesar URL-ul solicitării care primește răspuns la machetă. Modelele glob sunt acceptate
responseDataFile string Necesar Un fișier text cu conținutul răspunsului la machetă. Tot textul din acest fișier este citit ca răspuns
headers Matrice Opțional. O listă de câmpuri antet din solicitare în formatul [numecâmp: fieldValue]
method string Opțional. Metoda solicitării (GET, POST etc.)
requestBodyFile string Opțional. Un fișier text cu corpul solicitării. Tot textul din acest fișier este citit ca corp de solicitare

Pentru proprietăți opționale, dacă nu se specifică nicio valoare, rutarea se aplică pentru toate. De exemplu, dacă method este nul, trimitem înapoi răspunsul machetat indiferent de metodă este atât timp cât celelalte proprietăți se potrivesc.

Pentru aplicațiile requestURL Sharepoint/Dataverse/Connector și method pot fi aceleași pentru toate solicitările. x-ms-request-method iar x-ms-request-url în anteturi ar putea fi necesar să fie configurate în acest caz pentru a identifica diferite solicitări.

TestCases

Proprietate Tip Descriere
testCaseName string Necesar Numele cazului de test utilizat în raportarea succesului și eșecului
testSteps TestSteps Necesar Un set de funcții Power Fx care descriu pașii necesari pentru a efectua cazul de testare. Vedeți exemplul TestSteps
testCaseDescription Nu Opțional. Informații suplimentare descrie ce face cazul testului

TestSteps

  • TestSteps pot utiliza orice funcții existente Test Engine Power Fx sau anumite funcții de testare definite de acest cadru.
  • Valoarea trebuie să înceapă cu un simbol țeavă (|) pentru a permite expresii YAML cu mai multe linii, urmate de un semn egal (=) pentru a indica faptul că este o expresie Power Fx
  • Funcțiile trebuie separate prin punct și virgulă (;).
  • Comentariile pot fi utilizate și ar trebui să înceapă cu caractere bară oblică inversă dublă (//).

TestSteps example

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

Utilizat pentru a defini setările pentru testele din planul de testare.

Proprietate Tip Descriere
browserConfigurations BrowserConfiguration[] Necesar O listă de configurații de browser de testat. Trebuie specificat cel puțin un browser.
extensionModules extensionModules Opțional. Conține date despre extensii pentru activare.
filePath string Opțional. Calea de fișier către un fișier yaml separat cu toate setările de test. Dacă este furnizat, va înlocui toate setările de test din planul de testare.
headless boolean Opțional. Valoarea implicită este adevărată. Dacă este setată la fals, browserul se afișează în timpul executării testului.
locale string Opțional. Sintaxa regională/cultură în care sunt scrise cazurile sau pașii de test. Dacă nu este precizat, CultureInfo.CurrentCulture este utilizat implicit pentru setările regionale pentru analiza pașilor de test. Consultați Considerații legate de regiune și limbă
recordVideo boolean Opțional. Valoarea implicită este falsă. Dacă este setată la adevărat, este capturată o înregistrare video a testului.
timeout întreg Opțional. Valoarea de expirare în milisecunde. Valoarea implicită este de 30.000 milisecunde (30s). Dacă o operațiune durează mai mult decât limita de expirare, se termină testul printr-o eroare.
powerFxTestTypes name value pereche Opțional. O listă cu numele tipului și definițiile tipului Power Fx. Vedeți exemplul powerFxTestTypes
testFunctions description code pereche Opțional. O listă de descrieri și definiții de funcții Power Fx. Vedeți exemplul de testFuncții

extensionModules

Conține date despre extensii pentru activare.

Proprietate Tip Descriere
enable Bool Dacă sunt activate sau nu modulele de extensie.
allowPowerFxNamespaces listă Lista spațiilor de nume PowerFx de activat.
parameters perechi de valori cheie Proprietăți cu valori pentru a controla modulele extensiilor. În acest moment, doar parametrul boolean enableDataverseFunctions este valid pentru aceasta.

Acest exemplu vă arată cum să activați spațiul de nume PowerFx Preview :

testSettings:
  extensionModules:
    enable: true
    allowPowerFxNamespaces:
    - Preview

Aflați mai multe despre funcțiile de previzualizare

Considerații legate de regiune și limbă

Motorul de test acceptă diverse setări lingvistice și regionale, cum ar fi separatori de zecimale și de listă. Proprietatea testSettings.locale controlează aceste comportamente. Pentru mai multe informații, consultați Asistență globală în Microsoft Power Fx.

Priviți aceste configurații eșantion pe depozitulPowerApps-TestEngine GitHub:

powerFxTestTypes example

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

Acest exemplu vă arată cum să definiți tipurile Power Fx particularizate de utilizat în cazurile de testare. Tipul ControlName este definit ca înregistrare cu un singur Text câmp, în timp ce Options tipul este definit ca tabel de înregistrări, fiecare conținând un Name câmp de tip Text și un Value câmp de tip Number. Tipurile particularizate pot fi utilizate pentru a crea scenarii de testare mai complexe și mai specifice, îmbunătățind flexibilitatea și puterea definițiilor de test.

testFuncții exemplu

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

Aceste exemple de funcții de testare demonstrează modul de definire a funcțiilor Power Fx particularizate pentru utilizare în cazurile de testare. Funcția WaitUntilVisible utilizează un selector DOM pentru a aștepta până când este vizibil un control specificat, utilizând acțiuni Playwright. Funcția GetOptions preia opțiunile pentru un control specificat dintr-o aplicație Model Driven (MDA), utilizând controlul Power Fx. Aceste funcții particularizate îmbunătățesc flexibilitatea și puterea definițiilor de test, permițând scenarii de testare mai complexe și mai specifice.

BrowserConfiguration

Fiecare testSettings necesită cel puțin un BrowserConfiguration.

Proprietate Tip Descriere
browser string Necesar Browserul care va fi lansat la testare. Ar trebui să corespundă browserelor acceptate de Playwright.
device string Opțional. Dispozitivul de emulat atunci când se lansează browserul. Ar trebui să corespundă dispozitivelor acceptate de Playwright
screenHeight întreg Opțional. Înălțimea ecranului de utilizat la lansarea browserului. Dacă se specifică, screenWidth trebuie specificat, de asemenea.
screenWidth întreg Opțional. Lățimea ecranului de utilizat la lansarea browserului. Dacă se specifică, screenHeight trebuie specificat, de asemenea.

environmentVariables

Puteți stoca tipuri diferite de valori ca valori de mediu, dar cel mai comun caz este stocarea informațiilor de acreditare cu o listă de utilizatori.

Utilizatorii

Pentru a vă asigura că acreditările sunt stocate în siguranță, definiția de test face referire la utilizatori utilizând un personaName. Stocarea acreditărilor în fișierele plan de test nu este acceptată.

Exemplu:

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

Este personaName utilizat ca parte a definiției de test pentru a indica ce utilizator să ruleze testul ca.

Mecanisme de stocare a acreditărilor acceptate

Pentru a stoca acreditările ca variabile de mediu, le puteți seta astfel:

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

În YAML, trebuie definite două proprietăți pentru a indica faptul că acreditările acestui utilizator sunt stocate în variabile de mediu:

  • emailKey: Variabila de mediu utilizată pentru stocarea e-mailului utilizatorului.

Exemplu YAML:

    - personaName: "User1"
      emailKey: "user1Email"

Exemplu de PowerShell pentru a seta acreditările de utilizator pe baza YAML:

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

Vezi și

Prezentare generală a motorului de testare Power Apps (previzualizare)
Funcțiile Power Fx ale motorului de testare Power Apps (previzualizare)