AI-ondersteunde tests voor Windows-apps

Met de winapp ui opdrachten en winui-ui-testing vaardigheden kan uw AI-agent de gebruikersinterface van uw app automatisch inspecteren, gebruiken en valideren. Hierin wordt beschreven wat er in natuurlijke taal wordt weergegeven, zodat u deze kunt herhalen zonder eerst code voor testharnas te schrijven.

Ui-inspectieopdrachten

De winui-ui-testing vaardigheid is inbegrepen in de winui@awesome-copilot plug-in. Als u de invoegtoepassing tijdens de installatie hebt geïnstalleerd, is er geen extra installatie vereist.

Command Wat het doet
winapp ui inspect Geeft de toegankelijkheidsstructuur van de actieve app weer
winapp ui screenshot Hiermee wordt een schermopname van het app-venster vastgelegd
winapp ui click <selector> Klik op een knop of selecteert een item
winapp ui invoke <selector> Roept de standaardactie voor een besturingselement aan
winapp ui search <text> Zoekt in de elementstructuur op basis van naam of AutomationId
winapp ui set-value <selector> <value> Stelt de waarde van een tekstvak of keuzelijstvak in

Vraag uw agent om de app te testen

  1. Voer de app uit:
    dotnet run
    
  2. Stel uw agent een vraag in natuurlijke taal, zoals:

    "Bekijk de actieve app en vertel me of de knop Opslaan bereikbaar is wanneer het formulier leeg is."

  3. De agent gebruikt winapp ui inspect en winapp ui screenshot onderzoekt de app en reageert.

Met deze workflow kunt u problemen opsporen — ontbrekende toetsenbordfocus, uitgeschakelde bedieningselementen, indelingsproblemen — voordat u ook maar één regel testcode schrijft.

Geautomatiseerde tests schrijven

Zodra u de app interactief hebt verkend, vraagt u uw agent om formele tests te genereren. Gebruik deze startersprompt:

Write an xUnit UI test for my WinUI 3 app that:
1. Launches the app with dotnet run
2. Verifies the main window title is "My App"
3. Clicks the button with AutomationId "SaveButton"
4. Verifies a success message appears
Use the winapp ui commands for element interaction.

De gegenereerde tests maken gebruik van winapp ui opdrachten als de interactielaag, zodat ze worden uitgevoerd zonder een afzonderlijk ui-automatiseringsframework.

AutomationIds instellen in uw XAML

Om winapp ui click zich betrouwbaar op elementen te laten richten, stelt u AutomationProperties.AutomationId in uw XAML in:

<Button AutomationProperties.AutomationId="SaveButton"
        Content="Save" />
<TextBox AutomationProperties.AutomationId="TitleInput" />

Vraag uw agent: 'AutomationId-kenmerken toevoegen aan alle interactieve besturingselementen in deze XAML'.

Tests uitvoeren in CI

U kunt opdrachten uitvoeren winapp ui in een GitHub Actions werkstroom. Voor de tests is een grafische sessie vereist; gebruik een Windows runner met runs-on: windows-latest.

name: UI tests
on: [push, pull_request]
jobs:
  ui-test:
    runs-on: windows-latest
    steps:
      - uses: actions/checkout@v4
      - name: Setup .NET
        uses: actions/setup-dotnet@v4
        with:
          dotnet-version: '9.0.x'
      - name: Install winapp CLI
        run: winget install --id Microsoft.WinAppCLI --silent --accept-package-agreements --accept-source-agreements --disable-interactivity
      - name: Build
        run: dotnet build
      - name: Run UI tests
        run: dotnet test --filter Category=UITest

Note

De winapp ui opdrachten communiceren met de live-toegankelijkheidsstructuur van een actief proces. Tests moeten de app starten als onderdeel van de testvoorbereiding (of in een TestInitialize-stap) en deze bij het opruimen weer sluiten.

Toegankelijkheid automatisch controleren

De winapp ui inspect opdracht voert de volledige toegankelijkheidsstructuur uit: elementnamen, typen, statussen en AutomationIds. Vraag uw agent om deze te controleren op hiaten in de toegankelijkheid:

Run "winapp ui inspect" on the running app and identify any issues:
- Controls without accessible names
- Missing keyboard focus order
- Buttons or links that aren't reachable by Tab
Report findings as a prioritized list, most critical first.

Deze prompt werkt goed als een eerste toegankelijkheidscontrole voordat u een formele audittool uitvoert. Zie Toegankelijkheidsoverzicht voor Windows apps voor een volledige controlelijst voor toegankelijkheid.