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
Aparat testowy jest przestarzały i zostanie usunięty w przyszłej wersji. Użyj przykładów Power Platform Playwright do funkcji automatyzacji testów w platformie Power Platform i usługach Dynamics 365.
Tworzenie kompleksowych planów testów dla Power Platform aplikacji może być czasochłonne, szczególnie w przypadku złożonych scenariuszy. Narzędzia do tworzenia wspomagane AI, takie jak GitHub Copilot, mogą znacznie przyspieszyć ten proces, generując wzorce testowe, sugerując scenariusze testowe i automatyzując tworzenie kodu szkieletowego.
W tym przewodniku wyjaśniono, jak efektywnie używać GitHub Copilot w połączeniu z rozwiązaniami do kontroli wersji platformy Power Platform, aby tworzyć plany testów dla systemu Test Engine.
Wymagania wstępne
Zanim zaczniesz, upewnij się, że masz:
- Visual Studio Code został zainstalowany
- subskrypcja GitHub Copilot
- rozszerzenie GitHub Copilot Chat dla programu VS Code
- Zainstalowany Power Platform CLI
- Rozwiązanie Power Platform z kontrolą źródła
Konfigurowanie testowego środowiska tworzenia
Aby zmaksymalizować skuteczność tworzenia testów wspomaganych przez sztuczną inteligencję, połącz te narzędzia w ustrukturyzowany przepływ pracy:
- Pobieranie plików źródłowych
- Klonowanie środowiska lub rozwiązania Power Platform z systemu kontroli wersji
- Wyeksportuj i rozpakuj swoje rozwiązanie z platformy Power Platform z plikami używającymi poleceń pac solution export i pac solution unpack
- Zainicjuj repozytorium git na potrzeby kontroli wersji (jeśli jeszcze tego nie zrobiono)
- Utwórz dedykowany folder testowy w repozytorium rozwiązania
- Otwórz folder rozwiązania w Visual Studio Code
Używanie GitHub Copilot do tworzenia testów
GitHub Copilot może pomóc w generowaniu różnych składników testowych na podstawie rozwiązania kontrolowanego przez źródło. Oto jak efektywnie wykorzystać jego możliwości:
Używanie przykładowej dokumentacji jako kontekstu
Katalog przykładów Test Engine udostępnia bogate źródło materiałów referencyjnych dla GitHub Copilot. Możesz pomóc Copilot wygenerować testy o wyższej jakości, wykonując następujące czynności:
- Dołączanie pliku samples.md w przestrzeni roboczej
- Odwoływanie się do określonych próbek w podpowiedziach
- Udostępnianie linków do przykładowych repozytoriów GitHub
Można na przykład:
- Otwórz zarówno kod aplikacji, jak i plik samples.md w programie VS Code
- Poproś Copilot, aby utworzył testy "podobne do przykładu ButtonClicker" lub "z użyciem wzorców z przykładu Dataverse"
- Odwoływanie się do konkretnych możliwości na podstawie próbek, które odpowiadają Twoim potrzebom w zakresie testowania
Takie podejście pomaga Copilot zrozumieć wzorce aparatu testowego platformy Power Platform i wygenerować dokładniejsze testy.
Praca z GitHub Copilot w trybie agenta
Visual Studio Code GitHub Copilot Chat oferuje tryb agenta, który może pomóc przy generowaniu testów w oparciu o pliki rozwiązania. Ten tryb umożliwia Copilot dostęp do kontekstu projektu i jego dokładniejsze zrozumienie.
Aby użyć trybu agenta do generowania testów:
- W programie VS Code otwórz Copilot Chat GitHub (Ctrl+Shift+I)
- Wybierz pozycję Agent z selektora tryb funkcji Copilot
- Utwórz szczegółowy monit o teście, który chcesz utworzyć
Przykładowe wskazówki dotyczące generowania testów
Spróbuj użyć monitów takich jak te do generowania testu:
Cel:
Wygeneruj kompleksowy zestaw testów dla aplikacji płótna przy użyciu silnika testującego Power Apps, wzorowanego na przykładzie ButtonClicker.
Polecenie:
Wygeneruj test dla ./SolutionPackage/src/CanvasApps/src/MyApp/Src/App.fx.yaml, używając przykładu pod https://github.com/microsoft/PowerApps-TestEngine/tree/main/samples/buttonclicker jako referencji. Tworzenie oczekiwanych przypadków, przypadków brzegowych i wyjątków. Test powinien utworzyć testowy plik YAML, kroki testu Power Fx, config.json i RunTest.ps1 na podstawie przykładu, aby umożliwić mi uruchomienie testu.
Cel:
Utwórz szczegółowy plan testów dla aplikacji opartej na modelu, aby upewnić się, że podstawowe funkcje i logika biznesowa działają zgodnie z oczekiwaniami.
Polecenie:
Utwórz kompleksowy plan testów dla mojej aplikacji opartej na modelu znajdującej się pod adresem ./SolutionPackage/src/Other/Solution.xml. Test powinien zweryfikować obciążenie formularza, tworzenie rekordów i wykonywanie reguł biznesowych. Wygeneruj testowy kod YAML, Power Fx kroki i skrypt programu PowerShell, aby uruchomić test.
Cel:
Skonstruuj plan testów dla encji Dataverse, aby zweryfikować operacje CRUD za pomocą akcji Power Fx.
Polecenie:
Stwórz kompleksowy plan testów dla moich jednostek w Dataverse. Test powinien wykonywać akcje tworzenia, aktualizowania i usuwania Power Fx . Wygeneruj testowy kod YAML, Power Fx kroki i skrypt programu PowerShell, aby uruchomić test.
Opis wygenerowanych składników testowych
Gdy GitHub Copilot generuje test, zazwyczaj tworzy następujące składniki:
- Plan testu YAML: definiuje strukturę testu, adres URL aplikacji i kroki testu
- Kroki testu Power Fx: zawiera logikę testu używającą wyrażeń języka Power Fx
- config.json: Konfiguracja parametrów wykonywania testów
- RunTest.ps1: skrypt programu PowerShell do wykonywania testu
Przykład: Wygenerowana struktura testowa
MyAppTests/
├── MyAppTest.fx.yaml # Power Fx test steps
├── MyAppTest.yml # Test plan definition
├── config.json # Test configuration
└── RunTest.ps1 # Test execution script
Najlepsze rozwiązania dotyczące tworzenia testów wspomaganych przez sztuczną inteligencję
Aby jak najlepiej wykorzystać GitHub Copilot do tworzenia testów w aparacie testowym, zapoznaj się z poniższymi sekcjami.
Podaj jasny kontekst w swoich podpowiedziach
Określ konkretnie, co chcesz przetestować, i dołącz odniesienia do:
- Dokładne pliki do przetestowania
- Przykładowe testy do użycia jako szablony
- Konkretne scenariusze testowe, które chcesz objąć
- Wszelkie wymagania dotyczące uwierzytelniania lub środowiska
Używanie przykładów usługi Test Engine na potrzeby kontekstu
Dokumentacja samples.md kataloguje wszystkie dostępne przykłady z repozytorium Silnika testowego, które mogą stanowić doskonałe źródło odniesienia podczas tworzenia monitów dla GitHub Copilot. Na przykład podczas testowania aplikacji kanwy z przyciskami możesz odwołać się do przykładu Button Clicker:
Polecenie:
Wygeneruj test dla mojej aplikacji kanwy pod adresem ./SolutionPackage/src/CanvasApps/src/MyApp/Src/App.fx.yaml przy użyciu przykładu ButtonClicker z https://github.com/microsoft/PowerApps-TestEngine/tree/main/samples/buttonclicker. Test powinien:
1. Sprawdź, czy mój przycisk licznika zwiększa wartość na ekranie
2. Testowanie warunków granicznych (np. wartość maksymalna)
3. Uwzględnij hooki cyklu życia OnTestCaseStart i OnTestCaseComplete
4. Wygeneruj config.json z odpowiednimi zmiennymi środowiskowymi
Takie podejście pomaga Copilot zrozumieć strukturę testową i wygenerować dokładniejsze, kontekstowe testy oparte na sprawdzonych przykładach.
Używanie rozwiązań kontrolowanych przez źródło jako kontekstu
Copilot działa najlepiej, gdy może analizować strukturę rozwiązania. Użyj kontroli wersji dla rozwiązań platformy Power Platform, aby zapewnić ten kontekst. Kontekst ten umożliwia Copilotowi:
- Omówienie struktury aplikacji
- Identyfikowanie nazw i właściwości kontrolek
- Generowanie dokładniejszych kroków testowych
- Odwoływanie się do poprawnych ścieżek plików
Przeglądanie i uściślanie wygenerowanych testów
Chociaż testy generowane przez sztuczną inteligencję stanowią doskonały punkt wyjścia, zawsze:
- Zweryfikuj, czy odwołania do kontroli są zgodne z aplikacją
- Dodawanie potwierdzeń dla funkcji krytycznych dla działania firmy
- Upewnij się, że przypadki brzegowe są odpowiednio obsługiwane
- Weryfikowanie konfiguracji uwierzytelniania
Połącz z ekspertyzą manualną
W przypadku złożonych scenariuszy testowych użyj GitHub Copilot, aby:
- Generować szkielet i strukturę testową
- Tworzenie standardowych wzorców walidacji
- Zaproponuj skrajne przypadki do rozważenia
Następnie poszerz swoją wiedzę specjalistyczną w dziedzinie, aby:
- Reguły walidacji specyficzne dla firmy
- Względy środowiskowe
- Specjalistyczne dane testowe
Typowe wzorce generowania testów
Ta sekcja zawiera kilka typowych wzorców generowania testów:
Testowanie aplikacji Canvas
Dla aplikacji kanwy użyj poleceń, które odwołują się do pliku App.fx.yaml w Twoim rozwiązaniu z kontrolą źródła.
Polecenie:
Wygeneruj test dla mojej aplikacji Canvas pod adresem ./SolutionPackage/src/CanvasApps/src/MyExpenseApp/Src/App.fx.yaml, który weryfikuje proces przesyłania wydatków. Test powinien wypełnić pola wydatków, przesłać formularz i sprawdzić, czy pojawia się komunikat z potwierdzeniem.
Testowanie aplikacji opartych na modelu
W przypadku aplikacji opartych na modelu skoncentruj się na nawigacji po encjach, interakcjach z formularzami i regułach biznesowych:
Polecenie:
Utwórz test dla mojej aplikacji opartej na modelu, który testuje formularz encji Konto. Test powinien utworzyć nowy rekord konta, zweryfikować wymagane pola i sprawdzić, czy reguły biznesowe dotyczące obliczania limitu kredytowego działają poprawnie.
Testowanie Dataverse rozszerzeń
W testach w ramach Dataverse skoncentruj się na operacjach na danych i walidacji procesów biznesowych.
Polecenie:
Wygeneruj test w Dataverse, który weryfikuje niestandardowe wtyczki w moim rozwiązaniu. Test powinien utworzyć rekordy testowe, wyzwolić wykonanie wtyczki i zweryfikować, czy wystąpiły oczekiwane transformacje danych.
Podpowiedzi testowe specyficzne dla próbki
Aby uzyskać najdokładniejsze generowanie testów, odwołaj się do określonych próbek z katalogu próbek Test Engine, które odpowiadają Twoim potrzebom testowym. Oto dostosowane podpowiedzi dla typowych scenariuszy testowych:
Przykładowe podpowiedzi ButtonClicker
Przykład ButtonClicker demonstruje podstawowe testowanie funkcji licznika. Skorzystaj z tych monitów:
Polecenie:
Wygeneruj test dla mojej aplikacji licznika o strukturze podobnej do przykładu ButtonClicker. Moja aplikacja ma przyciski o nazwach „IncrementBtn” i „ResetBtn" z „CounterLabel”, która wyświetla bieżącą liczbę. Utwórz test, który sprawdza, czy oba przyciski działają poprawnie i czy maksymalna liczba wynosi 10.
Polecenie:
Utwórz test dla mojej aplikacji do interakcji z przyciskami, używając przykładu aplikacji ButtonClicker jako punktu odniesienia. Moja aplikacja ma element "SubmitButton", który powinien być włączony tylko wtedy, gdy pola "NameInput" i "EmailInput" są ukończone. Wygeneruj plan testu z krokami Power Fx w celu zweryfikowania tego zachowania.
Zachęty dotyczące testowania galerii
Przykłady BasicGallery i NestedGallery pokazują, jak testować interakcje galerii:
Polecenie:
Wygeneruj test dla mojej aplikacji galerii, w której mam galerię "Produkty" z elementami produktu zawierającymi kontrolki "TitleLabel", "PriceLabel" i "SelectButton". Użyj przykładowej struktury BasicGallery, aby sprawdzić, czy mogę wybrać elementy i czy poprawne szczegóły są wyświetlane w panelu "DetailPanel".
Polecenia dotyczące operacji na danych
W próbce Dataverse przedstawiono testowanie operacji na danych.
Polecenie:
Utwórz test dla mojej aplikacji CRM, korzystając z przykładowego wzorca Dataverse . Sprawdź, czy mogę utworzyć nowy rekord Kontakt, zaktualizuj go, a następnie sprawdź, czy zmiany są trwałe. Uwzględnij zarówno testy interfejsu użytkownika, jak i operacje bezpośrednie Dataverse .
Podpowiedzi do testowania AI
Aby przetestować funkcje oparte na sztucznej inteligencji, zapoznaj się z przykładem monitu AI:
Polecenie:
Utwórz test dla mojej aplikacji do analizy sentymentu na podstawie przykładu podanego przez AI Prompt. Moja aplikacja ma pole tekstowe "FeedbackInput" i używa AI Builder do klasyfikowania jej jako pozytywnej, negatywnej lub neutralnej. Utwórz test, który weryfikuje różne dane wejściowe, generuje oczekiwane dane wyjściowe w akceptowalnych progach.
Zaawansowane techniki
Ta sekcja zawiera przykłady zaawansowanych funkcji monitów.
Tworzenie zestawów testów dla wielu środowisk
Możesz monitować Copilot o generowanie testów, które działają w wielu środowiskach:
Polecenie:
Wygeneruj zestaw testów dla mojej aplikacji, który może działać w środowiskach DEV, TEST i PROD z odpowiednimi zmiennymi konfiguracyjnymi dla każdego środowiska.
Generowanie scenariuszy mockowania danych
W przypadku testów izolowanych z używaniem pozornego łącznika:
Polecenie:
Utwórz test z symulowanymi odpowiedziami łącznika dla mojej aplikacji wykorzystującej łącznik Office 365 Outlook. Test powinien symulować odbieranie wiadomości e-mail i weryfikować logikę przetwarzania aplikacji.
Testowanie możliwości sztucznej inteligencji i obsługa wyników niedeterministycznych
Podczas pracy z aplikacjami opartymi na sztucznej inteligencji testowanie wiąże się z wyjątkowymi wyzwaniami, ponieważ dane wyjściowe sztucznej inteligencji mogą się nieznacznie różnić między przebiegami, nawet przy identycznych danych wejściowych. To niedeterministyczne zachowanie wymaga specjalnych podejść do testowania.
Opis testowania niedeterministycznego
Testowanie niedeterministyczne obejmuje walidację danych wyjściowych, które mogą się legalnie różnić między przebiegami testów:
- AI Modele Wyjściowe: Odpowiedzi z modeli AI, takich jak GPT lub niestandardowych komponentów AI Builder
- Wyniki ufności: oceny liczbowe, które mogą wahać się w akceptowalnych zakresach
- Treści generowane: teksty lub rekomendacje generowane przez systemy sztucznej inteligencji
Używanie Preview.AIExecutePrompt do deterministycznego testowania możliwości sztucznej inteligencji
Aparat testowy udostępnia element Preview.AIExecutePrompt , który umożliwia deterministyczną walidację odpowiedzi sztucznej inteligencji. Takie podejście pozwala na:
- Wykonywanie podpowiedzi AI w scenariuszach testowych
- Analizowanie i weryfikowanie ustrukturyzowanych odpowiedzi
- Sprawdź, czy krytyczne dane wyjściowe spełniają oczekiwania pomimo potencjalnych odchyleń
Przykład: Ocena klasyfikacji przy użyciu AI Builder
W poniższym przykładzie pokazano użycie Preview.AIExecutePrompt tej funkcji do testowania systemu oceniania opartego na sztucznej inteligencji:
EvaluateTestQuestionPrompt(Prompt: TestQuestion): TestResult =
With({
Response: ParseJSON(
Preview.AIExecutePrompt("PromptEvaluator",
{
Context: "You are a helpful agent asking about external customer service questions.",
Question: Prompt.Question
}).Text)
},If(
IsError(AssertNotError(Prompt.ExpectedRating=Response.Rating, Prompt.Question & ", Expected " & Prompt.ExpectedRating & ", Actual " & Response.Rating)),
{PassFail: 1, Summary: Prompt.Question & ", Expected " & Prompt.ExpectedRating & ", Actual " & Response.Rating}, {PassFail: 0, Summary: "Pass " & Prompt.Question}
))
W tym przykładzie:
- Test wykonuje polecenie AI względem modelu „PromptEvaluator”
- Przekazuje kontekst i pytanie do oceny
- Sprawdza, czy zwrócona ocena jest zgodna z oczekiwaną wartością
- Zapewnia jasną informację zwrotną o powodzeniu lub niepowodzeniu testu
Możesz zapoznać się z pełną implementacją w przykładzie AI Prompt z repozytorium PowerApps-TestEngine.
Wdrażanie testów uwzględniających sztuczną inteligencję
W przypadku używania GitHub Copilot do generowania testów dla aplikacji opartych na sztucznej inteligencji:
Polecenie:
Wygeneruj test dla mojej aplikacji opartej na sztucznej inteligencji, która używa przetwarzania formularzy w AI Builder. Uwzględnij kroki testu, które weryfikują wyniki sztucznej inteligencji z odpowiednią tolerancją dla niedeterministycznych danych wyjściowych.
Rozwiązywanie problemów i udoskonalanie
Jeśli GitHub Copilot generuje testy, które nie spełniają Twoich potrzeb:
- Doprecyzowanie monitu: Określ dokładniej, co chcesz przetestować
- Podaj przykłady: Podaj linki do konkretnych próbek testowych, które pasują do pożądanego stylu
- Rozbijanie złożonych testów: zlecanie generowania mniejszych, skoncentrowanych składników testowych
- Iterate: użyj odpowiedzi Copilot, aby uściślić następny monit
Powiązane artykuły
Zapoznaj się z funkcjami aparatu testowego
Przeglądaj katalog przykładów silnika testowego
Dowiedz się więcej o Power Fx funkcjach testowych
Omówienie formatu testu YAML
Zapoznaj się z opcjami uwierzytelniania
Szkolenie: Tworzenie aplikacji z użyciem trybu agenta GitHub Copilot