Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Notitie
De test-engine is afgeschaft en wordt verwijderd in een toekomstige release. Gebruik Power Platform Playwright-voorbeelden voor testautomatiseringsmogelijkheden in Power Platform en Dynamics 365-services.
Het maken van uitgebreide testplannen voor Power Platform applicaties kan tijdrovend zijn, vooral bij complexe scenario's. Met AI ondersteunde ontwerphulpprogramma's zoals GitHub Copilot kunnen dit proces aanzienlijk versnellen door testsjablonen te genereren, testcases voor te stellen en het maken van standaardcode te automatiseren.
In deze handleiding wordt uitgelegd hoe u GitHub Copilot kunt gebruiken met Power Platform-broncodebeheeroplossingen om efficiënt test-engine-testplannen te maken.
Voorwaarden
Voordat u begint, moet u ervoor zorgen dat u het volgende heeft:
- Visual Studio Code geïnstalleerd
- GitHub Copilot-abonnement
- GitHub Copilot Chat-extensie voor VS Code
- Power Platform CLI geïnstalleerd
- Een brongestuurde Power Platform oplossing
Het instellen van uw testomgeving
Om de effectiviteit van AI-ondersteunde testontwikkeling te maximaliseren, combineert u deze tools in een gestructureerde workflow:
- Haal uw bronbestanden op
- Kloon uw Power Platform omgeving of oplossing vanuit bronbeheer
- Exporteer en pak uw oplossing uit van Power Platform met bestanden met behulp van pac solution export en pac solution unpack.
- Initialiseer een Git-repository voor versiebeheer (indien dit nog niet is gebeurd)
- Maak een speciale testmap in uw oplossingsrepository
- Open de oplossingsmap in Visual Studio Code
GitHub Copilot gebruiken voor het maken van tests
GitHub Copilot kan u helpen verschillende testonderdelen te genereren op basis van uw bronbeheerde oplossing. Zo maakt u effectief gebruik van de mogelijkheden:
Voorbeelddocumentatie gebruiken als context
De catalogus met voorbeelden van Test Engine biedt een uitgebreide bron van referentiemateriaal voor GitHub Copilot. U kunt Copilot helpen bij het genereren van tests met een hogere kwaliteit door:
- Het bestand samples.md opnemen in uw werkruimte
- Verwijzen naar specifieke voorbeelden in uw prompts
- Koppelingen naar voorbeeldopslagplaatsen GitHub
U kunt bijvoorbeeld:
- Open zowel uw applicatiecode als het samples.md-bestand in VS Code
- Vraag het aan Copilot om tests te maken die vergelijkbaar zijn met het ButtonClicker-voorbeeld of 'met behulp van patronen uit het Dataverse-voorbeeld'
- Verwijs naar specifieke mogelijkheden van monsters die aansluiten bij uw testbehoeften
Deze aanpak helpt Copilot inzicht te hebben in Power Platform Test Engine-patronen en nauwkeurigere tests te genereren.
Werken met GitHub Copilot in de agentmodus
de GitHub-Copilot Chat van Visual Studio Code biedt een Agent mode waarmee tests kunnen worden gegenereerd op basis van uw oplossingsbestanden. Met deze modus krijgt Copilot toegang tot uw projectcontext en begrijpt deze dieper.
Om de Agent-modus te gebruiken voor testgeneratie:
- In VS Code, open GitHub Copilot Chat (Ctrl+Shift+I)
- Selecteer Agent uit de Copilot-modusselector
- Maak een gedetailleerde opdracht voor de test die u wilt maken
Voorbeeldprompts voor testgeneratie
Probeer prompts als deze te gebruiken voor het genereren van tests:
Doel:
Genereer een uitgebreid testpakket voor een canvas-app met behulp van de Power Apps Test Engine, gemodelleerd na het voorbeeld ButtonClicker.
Prompt:
Genereer een test voor ./SolutionPackage/src/CanvasApps/src/MyApp/Src/App.fx.yaml met het voorbeeld op https://github.com/microsoft/PowerApps-TestEngine/tree/main/samples/buttonclicker als referentie. Maak verwachte gevallen, randgevallen en uitzonderingsgevallen. De test moet een YAML-testbestand, teststappen in Power Fx, config.json en RunTest.ps1 aanmaken op basis van het voorbeeld, zodat ik de test kan uitvoeren.
Doel:
Maak een gedetailleerd testplan voor een modelgestuurde app om ervoor te zorgen dat de kernfunctionaliteit en bedrijfslogica werken zoals verwacht.
Prompt:
Maak een uitgebreid testplan voor mijn modelgestuurde app op ./SolutionPackage/src/Other/Solution.xml. De test moet het laden van formulieren, het aanmaken van records en de uitvoering van bedrijfsregels valideren. Genereer de test-YAML, Power Fx stappen en een PowerShell-script om de test uit te voeren.
Doel:
Maak een testplan voor Dataverse entiteiten om CRUD-bewerkingen te verifiëren door middel van Power Fx acties.
Prompt:
Maak een uitgebreid testplan voor mijn Dataverse entiteiten. De test moet Power Fx-acties 'maken', 'bijwerken' en 'verwijderen' uitvoeren. Genereer de test-YAML, Power Fx stappen en een PowerShell-script om de test uit te voeren.
Inzicht in de gegenereerde testcomponenten
Wanneer GitHub Copilot een test genereert, worden doorgaans de volgende onderdelen gemaakt:
- YAML-testplan: Definieert de teststructuur, app-URL en teststappen
- Power Fx teststappen: Bevat de testlogica met behulp van Power Fx expressies
- config.json: Configuratie voor testuitvoeringsparameters
- RunTest.ps1: PowerShell-script om de test uit te voeren
Voorbeeld: gegenereerde teststructuur
MyAppTests/
├── MyAppTest.fx.yaml # Power Fx test steps
├── MyAppTest.yml # Test plan definition
├── config.json # Test configuration
└── RunTest.ps1 # Test execution script
Best practices voor AI-ondersteunde testontwikkeling
Bekijk de volgende secties om optimaal gebruik te maken van GitHub Copilot voor het maken van Test Engine-tests.
Zorg voor duidelijke context in uw prompts
Wees specifiek over wat u wilt testen en neem verwijzingen op naar:
- De exacte bestanden om te testen
- Voorbeeldtests om als sjablonen te gebruiken
- Specifieke testscenario's die u wilt bestrijken
- Eventuele authenticatie- of omgevingsvereisten
Test Engine-samples gebruiken voor context
De samples.md documentatie catalogiseert alle beschikbare voorbeelden uit de Test Engine-repository, wat een uitstekende referentie kan zijn bij het maken van prompts voor GitHub Copilot. Wanneer u bijvoorbeeld een canvas-app met knoppen test, kunt u verwijzen naar het Button Clicker-voorbeeld:
Prompt:
Genereer een test voor mijn Canvas-app op ./SolutionPackage/src/CanvasApps/src/MyApp/Src/App.fx.yaml met behulp van het ButtonClicker-voorbeeld van https://github.com/microsoft/PowerApps-TestEngine/tree/main/samples/buttonclicker. De test moet:
1. Controleer of mijn tellerknop een waarde op het scherm verhoogt
2. Test randvoorwaarden (bijv. maximale waarde)
3. OnTestCaseStart- en OnTestCaseComplete-levenscyclushooks toevoegen
4. Genereer de config.json met de juiste omgevingsvariabelen
Deze aanpak helpt Copilot inzicht te hebben in de teststructuur en nauwkeurigere, contextafhankelijke tests genereert op basis van bewezen voorbeelden.
Gebruik brongestuurde oplossingen als context
Copilot presteert het beste wanneer deze uw oplossingsstructuur kan analyseren. Gebruik bronbeheer voor Power Platform oplossingen om deze context te bieden. Met deze context kunnen Copilot:
- Begrijp de structuur van uw app
- Identificeer besturingselementnamen en eigenschappen
- Genereer nauwkeurigere teststappen
- Verwijs naar de juiste bestandspaden
Gegenereerde tests beoordelen en verfijnen
Hoewel door AI gegenereerde tests een uitstekend startpunt vormen, geldt altijd het volgende:
- Controleer of de controlereferenties overeenkomen met uw toepassing
- Voeg beweringen toe voor bedrijfskritische functionaliteit
- Zorg ervoor dat randgevallen op de juiste manier worden afgehandeld
- Valideer authenticatieconfiguratie
Combineer met handmatige expertise
Gebruik GitHub Copilot voor complexe testscenario's voor het volgende:
- Genereer het testframework en de structuur
- Standaardvalidatiepatronen maken
- Stel randgevallen voor om te overwegen
Breid uw domeinexpertise vervolgens uit voor:
- Bedrijfsspecifieke validatieregels
- Milieuoverwegingen
- Gespecialiseerde testgegevens
Veelvoorkomende testgeneratiepatronen
In deze sectie worden enkele veelvoorkomende testgeneratiepatronen beschreven:
Canvas-apps testen
Gebruik voor canvas-apps prompts die verwijzen naar het App.fx.yaml bestand in uw broncodegestuurde oplossing:
Prompt:
Genereer een test voor mijn Canvas-app op ./SolutionPackage/src/CanvasApps/src/MyExpenseApp/Src/App.fx.yaml waarmee het proces voor het indienen van onkosten wordt gevalideerd. Tijdens de test moeten de kostenvelden worden ingevuld, moet het formulier worden verzonden en moet worden gecontroleerd of het bevestigingsbericht wordt weergegeven.
Modelgestuurde apps testen
Bij modelgestuurde apps ligt de nadruk op entiteitsnavigatie, formulierinteracties en bedrijfsregels:
Prompt:
Maak een test voor mijn modelgestuurde app om het entiteitsformulier Account te testen. De test moet een nieuw accountrecord aanmaken, vereiste velden valideren en verifiëren of de bedrijfsregels voor de berekening van de kredietlimiet correct werken.
Testen van Dataverse-extensies
Bij tests ligt de nadruk op gegevensbewerkingen en validatie van bedrijfslogica: Dataverse
Prompt:
Genereer een Dataverse test die de aangepaste plug-ins in mijn oplossing valideert. De test moet testrecords maken, de uitvoering van de plug-in activeren en verifiëren of de verwachte gegevenstransformaties hebben plaatsgevonden.
Voorbeeldspecifieke testprompts
Voor de meest nauwkeurige testgeneratie kunt u het beste specifieke voorbeelden uit de Test Engine-voorbeeldencatalogus raadplegen die aan uw testbehoeften voldoen. ... Hier volgen enkele op maat gemaakte prompts voor veelvoorkomende testscenario's:
Voorbeeldprompts voor ButtonClicker
Het ButtonClicker-voorbeeld demonstreert het testen van de basisfunctionaliteit van een teller. Gebruik deze prompts:
Prompt:
Genereer een test voor mijn teller-app met een vergelijkbare structuur als het ButtonClicker-voorbeeld. In mijn app zitten knoppen met de namen "IncrementBtn" en "ResetBtn" en een "CounterLabel" die het huidige aantal weergeeft. Voer een test uit om te controleren of beide knoppen correct werken en of het maximumaantal 10 is.
Prompt:
Maak een test voor mijn app voor knopinteractie, waarbij ik het voorbeeld ButtonClicker als referentie gebruik. Mijn app heeft een 'SubmitButton' die alleen ingeschakeld mag worden als de velden 'NameInput' en 'EmailInput' zijn ingevuld. Genereer een testplan met Power Fx stappen om dit gedrag te valideren.
Testprompts voor galerijen
De voorbeelden BasicGallery en NestedGallery laten zien hoe u galerijinteracties kunt testen:
Prompt:
Genereer een test voor mijn app waarin ik een 'productengalerij' heb met producten die de elementen 'TitleLabel', 'PriceLabel' en 'SelectButton' bevatten. Ik gebruik de voorbeeldstructuur BasicGallery om te controleren of ik items kan selecteren en of de juiste details in een "DetailPanel" worden weergegeven.
Prompts voor gegevensbewerkingen
Het Dataverse voorbeeld demonstreert het testen van gegevensbewerkingen:
Prompt:
Maak een test voor mijn CRM-app met behulp van het Dataverse voorbeeldpatroon. Test of ik een nieuw contactpersoonrecord kan aanmaken, deze kan bijwerken en vervolgens kan controleren of de wijzigingen behouden blijven. Omvat zowel UI-tests als directe Dataverse bewerkingen.
AI-testprompts
Voor het testen van AI-gestuurde functionaliteit, raadpleeg het AI Prompt-voorbeeld:
Prompt:
Genereer een test voor mijn sentimentanalyse-app op basis van het AI Prompt-voorbeeld. Mijn app heeft een tekstvak FeedbackInput en gebruikt AI Builder om deze als positief, negatief of neutraal te classificeren. Maak een test die valideert dat verschillende invoer de verwachte uitvoer oplevert binnen acceptabele drempelwaarden.
Geavanceerde technieken
In dit gedeelte vindt u voorbeelden van geavanceerde promptmogelijkheden.
Het creëren van testsuites voor meerdere omgevingen
U kunt Copilot vragen om tests te genereren die in meerdere omgevingen werken:
Prompt:
Genereer een testsuite voor mijn app die kan worden uitgevoerd in DEV-, TEST- en PROD-omgevingen met de juiste configuratievariabelen voor elke omgeving.
Simulatiescenario's voor het genereren van gegevens
Voor geïsoleerde tests met connector-mocking: ...
Prompt:
Maak een test met gesimuleerde connectorantwoorden voor mijn app die gebruikmaakt van de Office 365 Outlook-connector. De test moet het ontvangen van e-mails simuleren en de verwerkingslogica van de app valideren.
Het testen van AI-mogelijkheden en het verwerken van niet-deterministische resultaten
Wanneer u met AI-gestuurde applicaties werkt, brengt testen unieke uitdagingen met zich mee, omdat de AI-uitvoer tussen runs enigszins kan variëren, zelfs bij identieke invoer. Dit niet-deterministische gedrag vereist speciale testbenaderingen.
Inzicht in niet-deterministisch testen
Bij niet-deterministisch testen worden uitkomsten gevalideerd die legitiem kunnen variëren tussen verschillende testruns:
- AI-modeluitvoer: Antwoorden van AI-modellen zoals GPT of aangepaste AI Builder-onderdelen
- Vertrouwensscores: Numerieke evaluaties die binnen acceptabele grenzen kunnen fluctueren
- Gegenereerde inhoud: Tekst of aanbevelingen geproduceerd door AI-systemen
Preview.AIExecutePrompt gebruiken voor deterministisch testen van AI-mogelijkheden
De testengine biedt de Preview.AIExecutePrompt die deterministische validatie van AI-reacties mogelijk maakt. Met deze aanpak kunt u:
- AI-prompts uitvoeren binnen testscenario's
- Parseer en valideer de gestructureerde antwoorden
- Controleer of de kritische uitkomsten aan de verwachtingen voldoen, ondanks mogelijke variaties.
Voorbeeld: Evaluatie van beoordelingen met AI Builder
Het volgende voorbeeld laat zien hoe u de functie Preview.AIExecutePrompt kunt gebruiken om een op AI gebaseerd beoordelingssysteem te testen:
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}
))
In dit voorbeeld:
- De test voert een AI-prompt uit tegen het "PromptEvaluator"-model
- Het geeft een context en een vraag voor evaluatie door
- Het valideert dat de geretourneerde beoordeling overeenkomt met de verwachte waarde
- Het biedt duidelijke feedback over het succes of falen van een test
U kunt de volledige implementatie bekijken in het AI Prompt-voorbeeld uit de PowerApps-TestEngine repository.
Integratie van AI-bewust testen
Wanneer u GitHub Copilot gebruikt om tests voor ai-toepassingen te genereren:
Prompt:
Genereer een test voor mijn ai-app die gebruikmaakt van AI Builder formulierverwerking. Neem teststappen op die de AI-resultaten valideren met een passende tolerantie voor niet-deterministische uitkomsten.
Probleemoplossing en verfijning
Als GitHub Copilot tests genereert die niet aan uw behoeften voldoen:
- Verfijn uw prompt: Wees specifieker over wat u wilt testen
- Geef voorbeelden: Link naar specifieke testvoorbeelden die passen bij uw gewenste stijl
- Complexe tests opsplitsen: Vraag om generatie van kleinere, gerichte testcomponenten
- Iterate: Gebruik de antwoorden van Copilot om de volgende prompt te verfijnen
Verwante artikelen
Ontdek de functies van Test Engine
Blader door de catalogus met Test Engine-voorbeelden
Meer informatie over Power Fx-testfuncties
Begrijp het YAML-testformaat
Verificatieopties verkennen
Training: Toepassingen bouwen met gitHub Copilot-agent modus