AI által támogatott tesztelés Windows alkalmazásokhoz

A winapp ui parancsokkal és winui-ui-testing képességekkel az AI-ügynök automatikusan megvizsgálhatja, kezelheti és érvényesítheti az alkalmazás felhasználói felületét – ez a természetes nyelven megjelenő elemek leírásával lehetővé teszi az iterációt anélkül, hogy először meg kellene írnia a tesztköteg kódját.

Felhasználói felületi ellenőrzési parancsok

A winui-ui-testing képesség szerepel a winui@awesome-copilot beépülő modulban. Ha a telepítés során telepítette a beépülő modult, nincs szükség további telepítésre.

Command Mire szolgál?
winapp ui inspect Kiírja a futó alkalmazás akadálymentességi fáját
winapp ui screenshot Képernyőkép készítése az alkalmazásablakról
winapp ui click <selector> Kattintson egy gombra, vagy jelöljön ki egy elemet
winapp ui invoke <selector> Egy vezérlőelem alapértelmezett műveletének meghívása
winapp ui search <text> Az elemfában név vagy AutomationId alapján keres
winapp ui set-value <selector> <value> Szövegdoboz vagy kombinált lista értékének beállítása

Kérje meg az ügynököt, hogy tesztelje az alkalmazást

  1. Futtassa az alkalmazást:
    dotnet run
    
  2. Tegyen fel egy természetes nyelvi kérdést az ügynökének, például:

    "Nézze meg a futó alkalmazást, és mondja el, hogy a Mentés gomb elérhető-e, ha az űrlap üres."

  3. Az ügynök a winapp ui inspect és winapp ui screenshot használatával vizsgálja meg az alkalmazást, és válaszol.

Ez a munkafolyamat lehetővé teszi a problémák – hiányzó billentyűzetfókusz, letiltott vezérlők, elrendezési problémák – azonosítását, mielőtt egyetlen sornyi tesztkódot ír.

Automatizált tesztek írása

Miután interaktívan megvizsgálta az alkalmazást, kérje meg az ügynökét, hogy hozzon létre hivatalos teszteket. Használja ezt a kezdő parancssort:

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.

A létrehozott tesztek interakciós rétegként parancsokat használnak winapp ui , ezért külön felhasználói felületi automatizálási keretrendszer nélkül futnak.

AutomationIds beállítása az XAML-ben

Ahhoz, hogy a(z) winapp ui click megbízhatóan célozza meg az elemeket, állítsa be a(z) AutomationProperties.AutomationId értéket az XAML-ben:

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

Kérdezze meg az ügynököt: "AutomationId-attribútumok hozzáadása az XAML összes interaktív vezérlőjéhez".

Tesztek futtatása CI-ben

Lefuttathat winapp ui parancsokat egy GitHub Actions-munkafolyamatban. A tesztek grafikus munkamenetet igényelnek; használjon Windows futót a következővelruns-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

A winapp ui parancsok egy futó folyamat élő akadálymentességi fájával működnek együtt. A teszteknek a teszt előkészítésének részeként (vagy egy TestInitialize lépés részeként) kell elindítaniuk az alkalmazást, és a lebontás során be kell zárniuk.

Akadálymentesség automatikus ellenőrzése

A winapp ui inspect parancs a teljes akadálymentességi fát – elemneveket, típusokat, állapotokat és AutomationId-eket – adja ki. Kérje meg az ügynököt, hogy tekintse át az akadálymentességi hiányosságokat:

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.

Ez a prompt jól használható előzetes akadálymentességi felülvizsgálatként, mielőtt egy formális auditáló eszközt futtatna. A teljes akadálymentességi ellenőrzőlistát Windows alkalmazások akadálymentességi áttekintésében tekintheti meg.