Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Nota
Le funzionalità di anteprima non sono destinate ad essere utilizzate per la produzione e sono soggette a restrizioni. Vengono rese disponibili prima di una versione ufficiale in modo che i clienti possano accedervi con anticipo e fornire i loro commenti.
Descrizione
Power Apps Test Engine utilizza Playwright come tecnologia principale di automazione del browser. Questa integrazione fornisce a Test Engine funzionalità di test potenti, affidabili e multi-browser, aggiungendo al contempo diversi livelli di astrazione per semplificare la creazione di test per le applicazioni. Power Platform
Come Test Engine migliora Playwright
Mentre Playwright offre eccellenti capacità di automazione del browser, Test Engine estende queste capacità specificatamente per Power Platform:
| Miglioramento del motore di prova | Descrzione |
|---|---|
| Astrazioni a livello di applicazione | Il motore di test funziona con oggetti a livello di app anziché con elementi DOM, rendendo i test più resistenti alle modifiche dell'interfaccia utente |
| Power Fx Integrazione | Test Engine aggiunge il supporto, consentendo un approccio low-code alla creazione di test Power Fx |
| Autenticazione integrata | I meccanismi di autenticazione predefiniti gestiscono scenari di accesso condizionale Microsoft Entra |
| Dataverse Integrazione | L'integrazione diretta con Dataverse consente test end-to-end completi |
| Fornitori specializzati | Provider ottimizzati per app canvas e app basate su modelli... |
Implementazione tecnica
Le sezioni seguenti descrivono il modo in cui Test Engine si basa sulla base dell'automazione del browser di Playwright e la integra con astrazioni specifiche, consentendo un'automazione dei test solida e gestibile. Power Platform
Fondamenti di automazione del browser
Test Engine sfrutta le funzionalità principali di Playwright per un'automazione coerente del browser:
- Supporto multi-browser per Chrome, e Firefox Microsoft Edge
- Meccanismi di attesa affidabili che attendono automaticamente che gli elementi siano pronti
- Intercettazione delle richieste di rete per simulare le risposte API
- Strumenti di tracciamento e debug per diagnosticare i fallimenti dei test
Integrazione architettonica del Test Engine
- Livello provider: il livello provider in Test Engine interagisce direttamente con le API di Playwright per controllare il comportamento del browser
- Modello di oggetto: anziché lavorare con elementi DOM grezzi, Test Engine mappa modelli di oggetti specifici dell'applicazione
- Power Fx Livello: i passaggi di test scritti in Power Fx vengono interpretati ed eseguiti tramite il livello del provider
Caratteristiche tecniche principali
Le sezioni seguenti evidenziano importanti funzionalità tecniche che Test Engine aggiunge a Playwright, tra cui selettori specifici per app, gestione del contesto del browser e accesso diretto alle funzioni di Playwright per scenari avanzati.
Selettori specifici per app
Il motore di test utilizza selettori specifici dell'app anziché selettori CSS o 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();
Gestione del contesto del browser
Test Engine gestisce i contesti del browser per supportare vari scenari di autenticazione:
# Test Engine handles browser context automatically
pac test run `
--provider canvas `
--test-plan-file testplan.te.yaml `
--tenant $tenantId `
--environment-id $environmentId
Funzioni del drammaturgo diretto
Sebbene Test Engine astragga molte interazioni di Playwright, vi sono scenari in cui l'accesso diretto alle funzionalità di Playwright può essere utile. Test Engine offre numerose funzioni di anteprima che consentono l'interazione diretta con Playwright durante i passaggi del test. Power Fx
Utilizzo delle funzioni di Playwright in Test Engine
Test Engine include le seguenti funzioni di anteprima che consentono di applicare le capacità di selezione degli elementi di Playwright:
| Funzione | Descrzione | Esempio |
|---|---|---|
| Anteprima.Azione drammaturgo | Esegui un'azione sugli elementi utilizzando i selettori CSS o DOM | Preview.PlaywrightAction("//button", "click") Vedi Operazioni comuni del drammaturgo |
| Anteprima.ValoreAzioneDrammatico | Esegui un'azione che richiede un parametro di valore | Preview.PlaywrightActionValue("//input[@data-id='1']", "fill", "Hello") Vedere Operazioni comuni sul valore delle azioni dei drammaturghi |
| Anteprima.Copione del drammaturgo | Eseguire uno script C# personalizzato che si interfaccia con Playwright | Preview.PlaywrightScript("sample.csx") Vedi Avanzate: Script drammaturgici personalizzati |
| Anteprima.Pausa | Metti in pausa l'esecuzione del test e visualizza Playwright Inspector | Preview.Pause() |
Nota
Per utilizzare queste funzioni di anteprima, è necessario aggiungerle all'elenco consentito nella sezione delle impostazioni di test.
Operazioni comuni di azione del drammaturgo
Le seguenti operazioni possono essere eseguite con Preview.PlaywrightAction:
| Azione | Descrzione | Esempio |
|---|---|---|
click |
Selezione di un elemento tramite evento click | Preview.PlaywrightAction("//button[@id='submit']", "click") |
exists |
Controlla se un elemento esiste | Preview.PlaywrightAction("//div[@class='error-message']", "exists") |
wait |
Attendi che un elemento sia disponibile | Preview.PlaywrightAction("//table[@data-loading='false']", "wait") |
Operazioni di valore di azione di Common Playwright
Le seguenti operazioni possono essere eseguite con Preview.PlaywrightActionValue:
| Azione | Descrzione | Esempio |
|---|---|---|
fill |
Riempi un campo del modulo con del testo | Preview.PlaywrightActionValue("//input[@name='search']", "fill", "Product name") |
select |
Seleziona un'opzione da un elenco di selezione | Preview.PlaywrightActionValue("//select", "select", "Option2") |
setAttribute |
Imposta un attributo su un elemento | Preview.PlaywrightActionValue("//div", "setAttribute", "data-custom='value'") |
Quando utilizzare le funzioni dirette di Playwright
Sebbene siano preferite le astrazioni a livello di app, le funzioni dirette di Playwright sono utili in questi scenari:
- Interazioni complesse dell'interfaccia utente non coperte dalle funzioni standard del Test Engine
- Componenti di terze parti all'interno di Power Platform applicazioni che necessitano di una gestione speciale
- Debug di scenari di test complessi in cui è necessario un maggiore controllo
- Validazione avanzata degli stati o delle proprietà degli elementi
Esempio: approccio combinato
Questo esempio dimostra la combinazione di astrazioni a livello di app con azioni dirette di 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");
Avanzate: copioni personalizzati per drammaturghi
Per scenari altamente specializzati, puoi creare script Playwright personalizzati:
- Crea un file con la tua logica Playwright personalizzata
.csx - Riferimento richiesto Assemblee di drammaturghi
- Implementare la struttura di classe richiesta
- Chiama lo script dai tuoi passaggi di test
// 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
}
}
Nota
Preview.PlaywrightScript è implementato solo per le build di debug del Test Engine compilate dal codice sorgente, non nello strumento rilasciato. pac test run
Integrazione con il processo di sviluppo
Le sezioni seguenti descrivono come Test Engine e Playwright possono essere utilizzati sia in ambienti di sviluppo locali che in ambienti CI/CD, supportando una gamma di flussi di lavoro che vanno dal debug interattivo all'esecuzione automatizzata della pipeline.
Sviluppo locale
Per lo sviluppo locale, Test Engine fornisce un ambiente completo:
- Esecuzione del browser locale con visibilità dell'interfaccia utente
- Esecuzione del test passo dopo passo
- Registri e diagnostica dettagliati
Integrazione CI/CD
Negli ambienti CI/CD, Test Engine può eseguire Playwright in modalità 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)"
Procedure consigliate
Quando si lavora con l'integrazione Playwright di Test Engine:
- Concentrarsi sugli oggetti a livello di app piuttosto che sugli elementi DOM
- Utilizzare Power Fx funzioni per la logica complessa anziché per il JavaScript grezzo
- Sfrutta i meccanismi di autenticazione integrati
- Riservare le funzioni dirette di Playwright per scenari in cui le astrazioni a livello di app sono insufficienti
- Esaminare i test generati per ottimizzare la leggibilità e la manutenzione