Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Notatka
Funkcje w wersji zapoznawczej nie są przeznaczone do użytku w środowiskach produkcyjnych i mogą mieć ograniczoną funkcjonalność. Te funkcje są udostępniane przed oficjalnym wydaniem, dzięki czemu klienci mogą szybciej uzyskać do nich dostęp i przekazać opinie na ich temat.
Omówienie
Power Apps Test Engine używa Playwright jako podstawowej technologii automatyzacji przeglądarki. Ta integracja zapewnia aparatowi testowemu potężne, niezawodne i wieloprzeglądarkowe możliwości testowania, jednocześnie dodając kilka warstw abstrakcji, aby uprościć tworzenie testów dla Power Platform aplikacji.
Jak silnik testowy usprawnia Playwright
Podczas gdy Playwright oferuje doskonałe możliwości automatyzacji przeglądarki, Test Engine rozszerza te możliwości w szczególności dla Power Platform:
| Ulepszenie silnika testowego | Opis |
|---|---|
| Abstrakcje na poziomie aplikacji | Test Engine współpracuje z obiektami na poziomie aplikacji, a nie z elementami DOM, dzięki czemu testy są bardziej odporne na zmiany interfejsu użytkownika |
| Integracja Power Fx | Test Engine dodaje Power Fx wsparcie, umożliwiając niskokodowe podejście do tworzenia testów |
| Wbudowane uwierzytelnianie | Wbudowane mechanizmy uwierzytelniania obsługują scenariusze Microsoft Entra i dostępu warunkowego. |
| Dataverse Integracja | Bezpośrednia integracja z Dataverse pozwala na kompleksowe testowanie end-to-end |
| Wyspecjalizowani dostawcy | Dostawcy zoptymalizowani dla Canvas apps i Model-driven apps |
Implementacja techniczna
W poniższych sekcjach opisano, w jaki sposób Test Engine opiera się na fundamencie automatyzacji przeglądarki Playwright i integruje go z abstrakcjami specyficznymi dla Power Platform, zapewniając solidną i łatwą do utrzymania automatyzację testów.
Fundament automatyzacji przeglądarki
Test Engine wykorzystuje podstawowe możliwości Playwright do spójnej automatyzacji przeglądarki:
- Obsługa przeglądarek Chrome, Firefox i Microsoft Edge
- Niezawodne mechanizmy oczekiwania, które automatycznie oczekują, aż elementy będą gotowe
- Przechwytywanie żądań sieciowych w celu symulowania odpowiedzi interfejsu API
- Narzędzia do śledzenia i debugowania w celu diagnozowania niepowodzeń testów
Integracja architektury Test Engine
- Warstwa dostawcy: Warstwa dostawcy w module Test Engine łączy się bezpośrednio z interfejsami API Playwright w celu kontrolowania zachowania przeglądarki
- Model obiektowy: Zamiast pracować z nieprzetworzonymi elementami DOM, Test Engine mapuje na modele obiektów specyficzne dla aplikacji
- Warstwa Power Fx: Kroki testu zapisane w Power Fx są interpretowane i wykonywane za pośrednictwem warstwy dostawcy
Najważniejsze cechy techniczne
W poniższych sekcjach przedstawiono ważne funkcje techniczne, które Test Engine dodaje do Playwright, w tym selektory specyficzne dla aplikacji, zarządzanie kontekstem przeglądarki i bezpośredni dostęp do funkcji Playwright dla zaawansowanych scenariuszy.
Selektory specyficzne dla aplikacji
Test Engine używa selektorów specyficznych dla aplikacji zamiast CSS selektorów lub XPath selektorów:
# 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();
Zarządzanie kontekstem przeglądarki
Test Engine zarządza kontekstami przeglądarki w celu obsługi różnych scenariuszy uwierzytelniania:
# Test Engine handles browser context automatically
pac test run `
--provider canvas `
--test-plan-file testplan.te.yaml `
--tenant $tenantId `
--environment-id $environmentId
Funkcje bezpośredniego dramaturga
Chociaż Test Engine abstrahuje wiele interakcji z dramaturgiem, istnieją scenariusze, w których bezpośredni dostęp do możliwości dramaturga może być cenny. Test Engine udostępnia kilka funkcji podglądu, które umożliwiają bezpośrednią interakcję z Playwright podczas wykonywania testów w Power Fx.
Korzystanie z funkcji Playwright w Test Engine
Test Engine zawiera następujące funkcje podglądu, które umożliwiają zastosowanie możliwości wyboru elementów Playwright:
| Funkcja | Opis | Przykład |
|---|---|---|
| Preview.PlaywrightAction | Wykonaj akcję na elementach za pomocą selektorów CSS lub DOM | Preview.PlaywrightAction("//button", "click") Zobacz typowe operacje akcji dramaturga |
| Preview.PlaywrightActionValue | Wykonywanie akcji, która wymaga parametru value | Preview.PlaywrightActionValue("//input[@data-id='1']", "fill", "Hello") Zobacz typowe operacje na wartościach akcji w Playwright |
| Preview.PlaywrightScript | Wykonywanie niestandardowego skryptu języka C#, który łączy się z usługą Playwright | Preview.PlaywrightScript("sample.csx") Zobacz Zaawansowane: Niestandardowe skrypty Playwright |
| Preview.Pause | Wstrzymaj wykonywanie testu i wyświetl Playwright Inspector | Preview.Pause() |
Notatka
Aby korzystać z tych funkcji podglądu, należy dodać funkcje podglądu do listy dozwolonych w sekcji ustawień testu.
Typowe operacje akcji dramaturga
Następujące operacje można wykonać za pomocą Preview.PlaywrightAction:
| Czynność | Opis | Przykład |
|---|---|---|
click |
Wybór elementu za pomocą zdarzenia kliknięcia | Preview.PlaywrightAction("//button[@id='submit']", "click") |
exists |
Sprawdzanie, czy element istnieje | Preview.PlaywrightAction("//div[@class='error-message']", "exists") |
wait |
Poczekaj, aż element będzie dostępny | Preview.PlaywrightAction("//table[@data-loading='false']", "wait") |
Typowe operacje na wartościach akcji w Playwright
Za pomocą metody Preview.PlaywrightActionValue można wykonać następujące operacje:
| Czynność | Opis | Przykład |
|---|---|---|
fill |
Wypełnianie pola formularza tekstem | Preview.PlaywrightActionValue("//input[@name='search']", "fill", "Product name") |
select |
Wybieranie opcji z listy wyboru | Preview.PlaywrightActionValue("//select", "select", "Option2") |
setAttribute |
Ustawianie atrybutu w elemencie | Preview.PlaywrightActionValue("//div", "setAttribute", "data-custom='value'") |
Kiedy używać funkcji bezpośredniego dramaturga
Chociaż abstrakcje na poziomie aplikacji są preferowane, bezpośrednie funkcje Playwright są przydatne w następujących scenariuszach:
- Złożone interakcje interfejsu użytkownika, które nie są objęte standardowymi funkcjami silnika testowego
- Komponenty innych firm w aplikacjach Power Platform, które wymagają specjalnej obsługi
- Debugowanie złożonych scenariuszy testowych , w których potrzebna jest większa kontrola
- Zaawansowana walidacja stanów lub właściwości elementów
Przykład: Podejście łączone
W tym przykładzie pokazano łączenie abstrakcji na poziomie aplikacji z bezpośrednimi akcjami 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");
Zaawansowane: Niestandardowe skrypty Playwright
W przypadku wysoce wyspecjalizowanych scenariuszy można tworzyć niestandardowe skrypty dramaturga:
- Utwórz plik
.csxz niestandardową logiką Playwright - Odniesienie do wymaganych zestawów Playwright
- Implementowanie wymaganej struktury klas
- Wywołaj skrypt jako część kroków testowych
// 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
}
}
Notatka
Preview.PlaywrightScript jest implementowany tylko dla kompilacji debug silnika testowego zbudowanego ze źródła i nie jest dostępny w wydanej wersji narzędzia pac test run.
Integracja z procesem rozwoju
W poniższych sekcjach opisano, jak można używać narzędzia Test Engine i Playwright zarówno w lokalnych środowiskach programistycznych, jak i w środowiskach CI/CD, obsługując różnorodne przepływy pracy, od interaktywnego debugowania po automatyczne wykonywanie potoków.
Rozwój lokalny
Do lokalnego programowania Test Engine zapewnia kompletne środowisko:
- Lokalne wykonywanie w przeglądarce z widocznością interfejsu użytkownika
- Wykonywanie testów krok po kroku
- Szczegółowe dzienniki i diagnostyka
Integracja CI/CD
W środowiskach CI/CD silnik testowy może uruchamiać Playwright w trybie bezgłowym.
# 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)"
Najlepsze rozwiązania
Podczas pracy z integracją Playwright w Test Engine:
- Skoncentruj się na obiektach na poziomie aplikacji, a nie na elementach DOM
- Używaj Power Fx funkcji dla złożonej logiki, a nie surowego kodu JavaScript
- Korzystaj z wbudowanych mechanizmów uwierzytelniania
- Zarezerwuj bezpośrednie funkcje Playwright dla scenariuszy, w których abstrakcje na poziomie aplikacji są niewystarczające
- Przeglądanie wygenerowanych testów w celu optymalizacji pod kątem czytelności i konserwacji