Notă
Accesul la această pagină necesită autorizare. Puteți încerca să vă conectați sau să modificați directoarele.
Accesul la această pagină necesită autorizare. Puteți încerca să modificați directoarele.
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.
Prezentare generală
Power Apps Test Engine folosește *Playwright* ca tehnologie principală de automatizare a browserului. ... Această integrare oferă Test Engine capacități de testare puternice, fiabile și multibrowser, adăugând în același timp mai multe niveluri de abstractizare pentru a simplifica crearea de teste pentru aplicații. Power Platform
Cum îmbunătățește Test Engine Playwrit
Deși Playwright oferă capabilități excelente de automatizare a browserului, Test Engine extinde aceste capabilități special pentru Power Platform:
| Îmbunătățirea motorului de testare | Descriere |
|---|---|
| Abstracții la nivel de aplicație | Test Engine funcționează cu obiecte la nivel de aplicație, mai degrabă decât cu elemente DOM, ceea ce face ca testele să fie mai rezistente la modificările interfeței utilizator. |
| Power Fx Integrare | Test Engine adaugă suport, permițând o abordare low-code pentru crearea de teste Power Fx |
| Autentificare încorporată | Mecanisme de autentificare predefinite gestionează scenarii de acces condiționat și acces condiționat Microsoft Entra |
| Dataverse Integrare | Integrarea directă cu Dataverse permite testarea completă de la un capăt la altul |
| Furnizori specializați | Furnizori optimizați pentru aplicații Canvas și aplicații bazate pe modele |
Implementare tehnică
Următoarele secțiuni descriu modul în care Test Engine se bazează pe fundația de automatizare a browserului Playwright și o integrează cu abstracțiuni specifice Power Platform, permițând o automatizare robustă și ușor de întreținut a testelor.
Fundația automatizării browserului
Test Engine utilizează capabilitățile de bază ale Playwright pentru o automatizare consistentă a browserului:
- Compatibilitate între browsere pentru Chrome, Firefox și Microsoft Edge
- Mecanisme de așteptare fiabile care așteaptă automat ca elementele să fie gata
- Interceptarea cererilor de rețea pentru simularea răspunsurilor API
- Instrumente de urmărire și depanare pentru diagnosticarea eșecurilor de testare
Integrarea arhitecturală a motorului de testare
- Stratul furnizor: Stratul furnizor din Test Engine interacționează direct cu API-urile Playwright pentru a controla comportamentul browserului
- Model de obiect: În loc să lucreze cu elemente DOM brute, Test Engine se mapează la modele de obiecte specifice aplicației
- Power Fx Strat: Pașii de testare scriși în Power Fx sunt interpretați și executați prin stratul furnizor
Caracteristici tehnice cheie
Următoarele secțiuni evidențiază caracteristici tehnice importante pe care Test Engine le adaugă pe lângă Playwright, inclusiv selectori specifici aplicației, gestionarea contextului browserului și acces direct la funcțiile Playwright pentru scenarii avansate.
Selectori specifici aplicației
Test Engine folosește selectori specifici aplicației în loc de selectori CSS sau XPath :
# Test Engine (using app-level selectors)
- testSteps: |
Select(Button1)
# Equivalent in raw Playwright (using DOM selectors)
Select(Button1)
# page.locator('div[data-control-name="Button1"]').click();
Gestionarea contextului browserului
Test Engine gestionează contextele browserului pentru a suporta diverse scenarii de autentificare:
# Test Engine handles browser context automatically
pac test run `
--provider canvas `
--test-plan-file testplan.te.yaml `
--tenant $tenantId `
--environment-id $environmentId
Funcții directe de dramaturg
Deși Test Engine abstractizează multe interacțiuni cu Playwright, există scenarii în care accesarea directă a capacităților Playwright poate fi valoroasă. Test Engine oferă mai multe funcții de previzualizare care permit interacțiunea directă cu Playwright chiar din cadrul pașilor de testare. Power Fx
Utilizarea funcțiilor Playwright în Test Engine
Test Engine include următoarele funcții de previzualizare care vă permit să aplicați capacitățile de selecție a elementelor din Playwright:
| Funcţie | Descriere | Exemplu |
|---|---|---|
| Previzualizare.DramaturgismAcțiune | Execută o acțiune asupra elementelor folosind selectori CSS sau DOM | Preview.PlaywrightAction("//button", "click") Vezi Operațiuni comune de acțiune ale dramaturgului |
| Previzualizare.ValoareAcțiuneDramaturgistă | Execută o acțiune care necesită un parametru de valoare | Preview.PlaywrightActionValue("//input[@data-id='1']", "fill", "Hello") Consultați Operații comune privind valoarea acțiunilor dramaturgești |
| Previzualizare.Script Dramaturgic | Executați un script C# personalizat care interacționează cu Playwright | Preview.PlaywrightScript("sample.csx") Vezi Avansat: Scripturi dramaturge personalizate |
| Previzualizare.Pauză | Întrerupeți execuția testului și afișați Inspectorul Dramaturgic | Preview.Pause() |
Notă
Pentru a utiliza aceste funcții de previzualizare, trebuie să adăugați funcțiile de previzualizare la lista permisă din secțiunea setărilor de testare.
Operațiuni comune de acțiune ale dramaturgului
Următoarele operațiuni pot fi efectuate cu Preview.PlaywrightAction:
| Acţiune | Descriere | Exemplu |
|---|---|---|
click |
Selectarea unui element folosind evenimentul click | Preview.PlaywrightAction("//button[@id='submit']", "click") |
exists |
Verificați dacă există un element | Preview.PlaywrightAction("//div[@class='error-message']", "exists") |
wait |
Așteptați ca un element să fie disponibil | Preview.PlaywrightAction("//table[@data-loading='false']", "wait") |
Operații comune privind valoarea acțiunilor dramaturge
Următoarele operațiuni pot fi efectuate cu Preview.PlaywrightActionValue:
| Acţiune | Descriere | Exemplu |
|---|---|---|
fill |
Completați un câmp de formular cu text | Preview.PlaywrightActionValue("//input[@name='search']", "fill", "Product name") |
select |
Selectați o opțiune dintr-o listă de selecție | Preview.PlaywrightActionValue("//select", "select", "Option2") |
setAttribute |
Setați un atribut pe un element | Preview.PlaywrightActionValue("//div", "setAttribute", "data-custom='value'") |
Când se utilizează funcțiile directe ale Dramaturgiului
Deși abstracțiile la nivel de aplicație sunt preferate, funcțiile Playwright directe sunt utile în aceste scenarii:
- Interacțiuni complexe cu interfața utilizator nu sunt acoperite de funcțiile standard ale motorului de testare
- Componente terțe în cadrul Power Platform aplicațiilor care necesită o gestionare specială
- Depanarea scenariilor de testare complexe unde este necesar mai mult control
- Validare avansată a stărilor sau proprietăților elementelor
Exemplu: Abordare combinată
Acest exemplu demonstrează combinarea abstracțiilor la nivel de aplicație cu acțiuni directe Playwright:
testSteps: |
# Use app-level abstraction for Power Apps control
Select(SubmitButton);
# Use direct Playwright action for a third-party component
Preview.PlaywrightAction("//div[@class='custom-calendar']//button[@data-day='15']", "click");
# Wait for a specific condition using Playwright
Preview.PlaywrightAction("//div[@data-status='complete']", "wait");
# Resume using app-level abstractions
Assert(Label1.Text = "Submission Complete");
Avansat: Scripturi dramaturge personalizate
Pentru scenarii extrem de specializate, puteți crea scripturi Dramaturg personalizate:
- Creați un fișier cu logica personalizată Playwrit
.csx - Referințe necesare ansambluri dramaturge
- Implementați structura de clase necesară
- Apelați scriptul din pașii de testare
// sample.csx
#r "Microsoft.Playwright.dll"
#r "Microsoft.Extensions.Logging.dll"
using Microsoft.Playwright;
using Microsoft.Extensions.Logging;
public class PlaywrightScript {
public static void Run(IBrowserContext context, ILogger logger) {
Execute(context, logger).Wait();
}
public static async Task Execute(IBrowserContext context, ILogger logger) {
var page = context.Pages.First();
// Custom Playwright logic here
}
}
Notă
Preview.PlaywrightScript este implementat doar pentru versiunile de depanare ale Test Engine construite din sursă, nu în instrumentul pac test run lansat.
Integrarea cu procesul de dezvoltare
Următoarele secțiuni descriu modul în care Test Engine și Playwright pot fi utilizate atât în medii de dezvoltare locală, cât și în medii CI/CD, oferind suport pentru o gamă largă de fluxuri de lucru, de la depanare interactivă până la execuție automată în conducte.
Dezvoltare locală
Pentru dezvoltarea locală, Test Engine oferă un mediu complet:
- Execuție locală în browser cu vizibilitate în interfața utilizatorului
- Executarea testului pas cu pas
- Jurnale și diagnostice detaliate
Integrare CI/CD
În mediile CI/CD, Test Engine poate rula Playwrit în modul headless:
# Example Azure DevOps pipeline step
- task: PowerShell@2
displayName: 'Run Test Engine Tests'
inputs:
script: |
pac test run `
--provider canvas `
--test-plan-file "$(Build.SourcesDirectory)/tests/testplan.te.yaml" `
--tenant "$(TenantId)" `
--environment-id "$(EnvironmentId)"
Cele mai bune practici
Când lucrați cu integrarea Playwright a Test Engine:
- Concentrați-vă pe obiecte la nivel de aplicație mai degrabă decât pe elementele DOM
- Folosește Power Fx funcții pentru logică complexă în loc de JavaScript brut
- Profitați de mecanismele de autentificare încorporate
- Rezervați funcțiile directe Playwrit pentru scenarii în care abstracțiile la nivel de aplicație sunt insuficiente
- Revizuiți testele generate pentru a optimiza lizibilitatea și întreținerea