Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Note
Test Engine je zastaralý a v budoucí verzi se odebere. Ukázky Power Platform Playwright slouží k testování možností automatizace v Power Platform a Dynamics 365 službách.
Přehled
Power Apps Test Engine používá jako základní technologii automatizace prohlížeče Playwright. Tato integrace poskytuje Test Engine výkonné a spolehlivé testovací funkce pro různé prohlížeče a zároveň přidává několik vrstev abstrakce pro zjednodušení vytváření testů pro aplikace. Power Platform
Jak Test Engine vylepšuje Playwright
Zatímco Playwrit nabízí vynikající možnosti automatizace prohlížeče, Test Engine tyto možnosti rozšiřuje speciálně pro Power Platform:
| Vylepšení testovacího enginu | Description |
|---|---|
| Abstrakce na úrovni aplikace | Testovací engine pracuje s objekty na úrovni aplikace namísto prvků DOM, což dělá testy odolnějšími vůči změnám v uživatelském rozhraní. |
| Integrace Power Fx | Test Engine přidává podporu, která umožňuje tvorbu testů s nízkým kódem Power Fx |
| Vestavěné ověřování | Předpřipravené mechanismy ověřování zpracovávají scénáře Microsoft Entra a podmíněného přístupu. |
| Integrace Dataverse | Přímá integrace s Dataverse umožňuje komplexní end-to-end testování |
| Specializovaní poskytovatelé | Optimalizovaní poskytovatelé pro aplikace Canvas a aplikace řízené modelem |
Technická implementace
Následující části popisují, jak Test Engine staví na základech automatizace prohlížeče od Playwrightu a integruje je s abstrakcemi specifickými pro daný prohlížeč, což umožňuje robustní a udržovatelnou automatizaci testování. Power Platform
Nadace pro automatizaci prohlížečů
Testovací engine využívá základní funkce Playwrightu pro konzistentní automatizaci prohlížeče:
- Podpora napříč prohlížeči pro Chrome, Firefox a Microsoft Edge
- Spolehlivé čekací mechanismy, které automaticky čekají na připravenost prvků
- Zachycení síťových požadavků pro simulaci odpovědí API
- Nástroje pro trasování a ladění pro diagnostiku selhání testů
Architektonická integrace testovacího enginu
- Vrstva poskytovatele: Vrstva poskytovatele v Test Engine přímo komunikuje s rozhraními API Playwright a řídí chování prohlížeče.
- Objektový model: Testovací engine se místo práce se surovými prvky DOM mapuje na objektové modely specifické pro danou aplikaci.
- Vrstva Power Fx: Kroky testování napsané v Power Fx jsou interpretovány a prováděny prostřednictvím vrstvy zprostředkovatele
Klíčové technické vlastnosti
Následující části zdůrazňují důležité technické funkce, které Test Engine přidává nad rámec Playwrightu, včetně selektorů specifických pro aplikaci, správy kontextu prohlížeče a přímého přístupu k funkcím Playwrightu pro pokročilé scénáře.
Selektory specifické pro aplikaci
Testovací engine používá selektory specifické pro danou aplikaci místo selektorů CSS nebo 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();
Správa kontextu prohlížeče
Testovací engine spravuje kontexty prohlížeče pro podporu různých scénářů ověřování:
# Test Engine handles browser context automatically
pac test run `
--provider canvas `
--test-plan-file testplan.te.yaml `
--tenant $tenantId `
--environment-id $environmentId
Funkce Direct Playwright
I když Test Engine abstrahuje mnoho interakcí s Playwritery, existují scénáře, kdy může být přímý přístup k funkcím Playwriteru cenný. Test Engine nabízí několik funkcí náhledu, které umožňují přímou interakci s Playwrightem v rámci kroků testování pomocí Power Fx.
Používání funkcí Playwrightu v Test Engine
Testovací engine obsahuje následující funkce náhledu, které vám umožňují aplikovat možnosti výběru prvků v Playwrightu:
| Funkce | Description | Příklad |
|---|---|---|
| Náhled.PlaywrightAkce | Provedení akce s prvky pomocí selektorů CSS nebo DOM | Preview.PlaywrightAction("//button", "click") Viz Běžné operace dramatiků |
| Preview.PlaywrightActionValue | Provedení akce, která vyžaduje parametr hodnoty | Preview.PlaywrightActionValue("//input[@data-id='1']", "fill", "Hello") Viz Běžné operace s hodnotami akcí Playwright |
| Preview.PlaywrightScript | Spusťte vlastní skript C#, který komunikuje s Playwrightem | Preview.PlaywrightScript("sample.csx") Viz Pokročilé: Vlastní scénáře dramatiků |
| Preview.Pause | Pozastavte provádění testu a zobrazte Playwright Inspector. | Preview.Pause() |
Note
Chcete-li tyto funkce náhledu používat, musíte je přidat do seznamu povolených funkcí v sekci nastavení testu.
Běžné operace Playwrightu
Následující operace lze provádět pomocí Preview.PlaywrightAction:
| Action | Description | Příklad |
|---|---|---|
click |
Výběr elementu pomocí události click | Preview.PlaywrightAction("//button[@id='submit']", "click") |
exists |
Zkontrolujte, zda prvek existuje | Preview.PlaywrightAction("//div[@class='error-message']", "exists") |
wait |
Počkejte, až bude prvek k dispozici | Preview.PlaywrightAction("//table[@data-loading='false']", "wait") |
Běžné operace s hodnotami akcí v Playwrightu
Následující operace lze provádět s Preview.PlaywrightActionValue:
| Action | Description | Příklad |
|---|---|---|
fill |
Vyplnění pole formuláře textem | Preview.PlaywrightActionValue("//input[@name='search']", "fill", "Product name") |
select |
Vyberte možnost ze seznamu výběru | Preview.PlaywrightActionValue("//select", "select", "Option2") |
setAttribute |
Nastavení atributu u elementu | Preview.PlaywrightActionValue("//div", "setAttribute", "data-custom='value'") |
Kdy použít přímé funkce pro dramatika
I když jsou preferovány abstrakce na úrovni aplikace, přímé funkce Playwrightu jsou užitečné v těchto scénářích:
- Složité interakce uživatelského rozhraní nepokryté standardními funkcemi testovacího enginu
- Komponenty třetích stran v Power Platform aplikacích, které vyžadují speciální zacházení
- Ladění složitých testovacích scénářů, kde je potřeba větší kontrola
- Pokročilé ověřování stavů nebo vlastností prvků
Příklad: Kombinovaný přístup
Tento příklad demonstruje kombinaci abstrakcí na úrovni aplikace s přímými akcemi Playwrightu:
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");
Pokročilé: Scénáře pro dramatiky na míru
Pro vysoce specializované scénáře si můžete vytvořit vlastní scénáře pro dramatiky:
- Vytvořte soubor s vlastní logikou pro dramatika
.csx - Reference požadovala sestavy Playwright
- Implementujte požadovanou strukturu tříd
- Zavolejte skript ze svých testovacích kroků
// 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
}
}
Note
Preview.PlaywrightScript je implementován pouze pro debug buildy Test Engine postaveného ze zdrojového kódu, nikoli ve vydaném nástroji pac test run.
Integrace s vývojovým procesem
Následující části popisují, jak lze Test Engine a Playwright použít v lokálním vývojovém prostředí i v prostředí CI/CD a jak podporují řadu pracovních postupů od interaktivního ladění až po automatizované spouštění pipeline.
Místní rozvoj
Pro lokální vývoj poskytuje Test Engine kompletní prostředí:
- Lokální spuštění v prohlížeči s viditelností v uživatelském rozhraní
- Postupné provádění testů
- Podrobné protokoly a diagnostika
Integrace CI/CD
V prostředích CI/CD může Test Engine spouštět Playwright v headless režimu:
# 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)"
Osvědčené postupy
Při práci s integrací Playwrightu v Test Engine:
- Zaměřte se na objekty na úrovni aplikace spíše než na prvky DOM
- Pro komplexní logiku používejte funkce namísto surového JavaScriptu. Power Fx
- Využijte vestavěné mechanismy ověřování
- Vyhrazujte přímé funkce Playwright pro scénáře, kde abstrakce na úrovni aplikace nejsou dostatečné
- Zkontrolujte vygenerované testy pro optimalizaci z hlediska čitelnosti a údržby