AI-assisterad testning för Windows appar

Med winapp ui kommandona och winui-ui-testing färdigheterna kan AI-agenten inspektera, interagera med och verifiera appens användargränssnitt automatiskt – och beskriva vad den ser på naturligt språk så att du kan iterera utan att först skriva testselekod.

Kontrollkommandon för användargränssnittet

Färdigheten winui-ui-testing ingår i pluginet winui@awesome-copilot. Om du installerade plugin-programmet under installationen krävs ingen ytterligare installation.

Kommando Vad det gör
winapp ui inspect Dumpar tillgänglighetsträdet för appen som körs
winapp ui screenshot Tar en skärmbild av appfönstret
winapp ui click <selector> Klickar på en knapp eller väljer ett objekt
winapp ui invoke <selector> Anropar standardåtgärden på en kontroll
winapp ui search <text> Söker i elementträdet efter namn eller AutomationId
winapp ui set-value <selector> <value> Anger värdet för en textruta eller kombinationsruta

Be din agent att testa appen

  1. Kör appen:
    dotnet run
    
  2. Ställ en fråga till din agent på naturligt språk, till exempel:

    "Titta på appen som körs och berätta om knappen Spara kan nås när formuläret är tomt."

  3. Agenten använder winapp ui inspect och winapp ui screenshot för att undersöka appen och svara.

Med det här arbetsflödet kan du fånga upp problem – tangentbordsfokus saknas, inaktiverade kontroller, layoutproblem – innan du skriver en enda rad med testkod.

Skriva automatiserade tester

När du har utforskat appen interaktivt ber du din agent att generera formella tester. Använd den här startprompten:

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 genererade testerna använder winapp ui kommandon som interaktionslager, så de körs utan ett separat ramverk för gränssnittsautomatisering.

Ange AutomationIds i XAML

För att winapp ui click ska kunna rikta in sig på element pålitligt anger du AutomationProperties.AutomationId i din XAML:

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

Fråga din agent: "Lägg till AutomationId-attribut till alla interaktiva kontroller i denna XAML."

Köra tester i CI

Du kan köra winapp ui kommandon i ett GitHub Actions arbetsflöde. Testerna kräver en grafisk session; använd en Windows-runner med 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

Kommandona winapp ui interagerar med det aktiva tillgänglighetsträdet i en pågående process. Testerna måste starta appen som en del av testuppsättningen (eller i ett steg med TestInitialize) och stänga den i nedmonteringen.

Kontrollera tillgänglighet automatiskt

Kommandot winapp ui inspect matar ut det fullständiga hjälpmedelsträdet – elementnamn, typer, tillstånd och AutomationIds. Be agenten att granska den för tillgänglighetsluckor:

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.

Den här uppmaningen fungerar bra som en tillgänglighetsgranskning innan du kör ett formellt granskningsverktyg. En fullständig checklista för hjälpmedel finns i Tillgänglighetsöversikt för Windows appar.