Pengujian yang dibantu AI untuk aplikasi Windows

Perintah winapp ui dan skill winui-ui-testing memungkinkan agen AI Anda untuk memeriksa, berinteraksi dengan, dan memvalidasi UI aplikasi Anda secara otomatis — dengan menjelaskan apa yang dilihatnya dalam bahasa alami sehingga Anda dapat melakukan iterasi tanpa harus terlebih dahulu menulis kode harness pengujian.

Perintah inspeksi UI

Keterampilan winui-ui-testing ini disertakan dalam plugin winui@awesome-copilot. Jika Anda menginstal plugin selama penyiapan, tidak diperlukan penginstalan tambahan.

Command Apa fungsinya
winapp ui inspect Menampilkan pohon aksesibilitas dari aplikasi yang sedang berjalan
winapp ui screenshot Mengambil cuplikan layar jendela aplikasi
winapp ui click <selector> Mengklik tombol atau memilih item
winapp ui invoke <selector> Menjalankan tindakan default pada kontrol
winapp ui search <text> Mencari pohon elemen berdasarkan nama atau AutomationId
winapp ui set-value <selector> <value> Mengatur nilai Kotak Teks atau Kotak Kombo

Minta agen Anda untuk menguji aplikasi

  1. Jalankan aplikasi:
    dotnet run
    
  2. Ajukan pertanyaan bahasa alami kepada agen Anda, seperti:

    "Lihat aplikasi yang sedang berjalan dan beri tahu saya apakah tombol Simpan dapat dijangkau saat formulir kosong."

  3. Agen menggunakan winapp ui inspect dan winapp ui screenshot untuk memeriksa aplikasi dan merespons.

Alur kerja ini memungkinkan Anda menangkap masalah — kehilangan fokus keyboard, kontrol yang dinonaktifkan, masalah tata letak — sebelum menulis satu baris kode pengujian.

Menulis tes otomatis

Setelah Anda menjelajahi aplikasi secara interaktif, minta agen Anda untuk menghasilkan pengujian formal. Gunakan perintah starter ini:

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.

Pengujian yang dihasilkan menggunakan winapp ui perintah sebagai lapisan interaksi, sehingga berjalan tanpa kerangka kerja otomatisasi UI terpisah.

Mengatur AutomationIds di XAML Anda

Untuk winapp ui click menargetkan elemen dengan andal, atur AutomationProperties.AutomationId di XAML Anda:

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

Tanyakan kepada agen Anda: "Tambahkan atribut AutomationId ke semua kontrol interaktif di XAML ini."

Menjalankan pengujian di CI

Anda dapat menjalankan winapp ui perintah dalam alur kerja GitHub Actions. Pengujian ini memerlukan sesi grafis; gunakan runner berbasis Windows dengan 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

Perintah winapp ui berinteraksi dengan pohon aksesibilitas aktif dari proses yang sedang berjalan. Pengujian harus meluncurkan aplikasi sebagai bagian dari penyiapan pengujian (atau dalam langkah TestInitialize ) dan menutupnya di teardown.

Memeriksa aksesibilitas secara otomatis

winapp ui inspect Perintah menghasilkan pohon aksesibilitas penuh — nama elemen, jenis, status, dan AutomationIds. Minta agen Anda untuk meninjaunya untuk celah aksesibilitas:

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.

Prompt ini berfungsi dengan baik sebagai tinjauan aksesibilitas awal sebelum menggunakan alat audit formal. Untuk daftar periksa aksesibilitas lengkap, lihat Gambaran umum aksesibilitas untuk aplikasi Windows.