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.
Poznámka:
Funkce Preview nejsou určené pro normální používání a mohou mít omezené fungování. Jsou to funkce, které jsou poskytnuté před svým oficiálním vydáním, aby si je zákazníci mohli co nejdříve vyzkoušet a mohli nám napsat své názory.
Přehled
Power Apps Test Engine používá `Playwright` jako svou základní technologii automatizace prohlížeče. ... 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 Playwritera
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í. |
| Power Fx Integrace | 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 podmíněného přístupu Microsoft Entra |
| Dataverse Integrace | 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 Chrome, Firefoxa 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.
- Power Fx Vrstva: Kroky testování napsané v Power Fx jsou interpretovány a prováděny prostřednictvím vrstvy poskytovatele
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 přímého dramatika
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 Playwriterem přímo z kroků vašeho testování. Power Fx
Používání funkcí Playwriteru 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:
| Function | Description | Příklad |
|---|---|---|
| Náhled.DramatikAkce | Provedení akce s prvky pomocí selektorů CSS nebo DOM | Preview.PlaywrightAction("//button", "click") Viz Běžné operace dramatiků |
| Náhled.HodnotaAkceDramatika | Provedení akce, která vyžaduje parametr hodnoty | Preview.PlaywrightActionValue("//input[@data-id='1']", "fill", "Hello") Viz Běžné operace s hodnotami akcí dramatika |
| Náhled.Script dramatika | Spusťte vlastní skript C#, který komunikuje s Playwrightem | Preview.PlaywrightScript("sample.csx") Viz Pokročilé: Vlastní scénáře dramatiků |
| Náhled.Pozastavení | Pozastavení provádění testu a zobrazení inspektora dramatika | Preview.Pause() |
Poznámka:
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 dramatiků
Následující operace lze provádět pomocí Preview.PlaywrightAction:
| Akce | 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í dramatika
Následující operace lze provádět s Preview.PlaywrightActionValue:
| Akce | 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 - Požadovaný odkaz Sestavy dramatiků
- Implementujte požadovanou strukturu tříd
- Zavolejte skript z kroků testu
// 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
}
}
Poznámka:
Soubor Preview.PlaywrightScript je implementován pouze pro ladicí sestavení Test Engine sestavené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 Playwrit 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í
- Rezervujte přímé funkce dramatika pro scénáře, kde abstrakce na úrovni aplikace nejsou dostatečné
- Zkontrolujte vygenerované testy pro optimalizaci z hlediska čitelnosti a údržby