Bagikan melalui


Menggunakan Automasi UI untuk Pengujian Otomatis

Nota

Dokumentasi ini ditujukan untuk pengembang .NET Framework yang ingin menggunakan kelas Automation UI terkelola yang ditentukan dalam namespace System.Windows.Automation. Untuk informasi terbaru tentang Automasi UI, lihat Windows Automation API: UI Automation.

Gambaran umum ini menjelaskan bagaimana Microsoft UI Automation dapat berguna sebagai kerangka kerja untuk akses terprogram dalam skenario pengujian otomatis.

Automasi UI menyediakan model objek terpadu yang memungkinkan semua kerangka kerja antarmuka pengguna (UI) mengekspos fungsionalitas yang kompleks dan kaya dengan cara yang dapat diakses dan mudah diotomatisasi.

UI Automation dikembangkan sebagai penerus dari Microsoft Active Accessibility. Aksesibilitas Aktif adalah kerangka kerja yang ada yang dirancang untuk memberikan solusi agar kontrol dan aplikasi dapat diakses. Aksesibilitas Aktif tidak dirancang dengan mempertimbangkan otomatisasi pengujian meskipun berevolusi menjadi peran itu karena persyaratan aksesibilitas dan otomatisasi yang sangat mirip. Automasi UI, selain menyediakan solusi yang lebih halus untuk aksesibilitas, juga dirancang khusus untuk menyediakan fungsionalitas yang kuat untuk pengujian otomatis. Misalnya, Aksesibilitas Aktif bergantung pada satu antarmuka untuk mengekspos informasi tentang UI dan mengumpulkan informasi yang diperlukan oleh produk AT; Automasi UI memisahkan dua model.

Penyedia dan klien diharuskan untuk menerapkan Automasi UI agar berguna sebagai alat pengujian otomatis. Penyedia Automasi UI adalah aplikasi seperti Microsoft Word, Excel, dan aplikasi atau kontrol pihak ketiga lainnya berdasarkan sistem operasi Microsoft Windows. Klien Automation UI mencakup skrip pengujian otomatis dan aplikasi teknologi bantuan.

Nota

Tujuan dari gambaran umum ini adalah untuk menampilkan kemampuan pengujian otomatis baru dan yang ditingkatkan dari Automasi UI. Gambaran umum ini tidak dimaksudkan untuk memberikan informasi tentang fitur aksesibilitas dan tidak akan mengatasi aksesibilitas selain jika perlu.

Automasi UI pada Penyedia

Agar UI dapat diotomatisasi, pengembang aplikasi atau kontrol harus melihat tindakan apa yang dapat dilakukan pengguna akhir pada objek UI menggunakan keyboard standar dan interaksi mouse.

Setelah tindakan kunci ini diidentifikasi, pola kontrol Automation UI yang sesuai (yaitu, pola kontrol yang mencerminkan fungsionalitas dan perilaku elemen UI) harus diimplementasikan pada kontrol. Misalnya, interaksi pengguna dengan kontrol kotak kombo (seperti dialog jalankan) biasanya melibatkan perluasan dan ciutkan kotak kombo untuk menyembunyikan atau menampilkan daftar item, memilih item dari daftar tersebut, atau menambahkan nilai baru melalui input keyboard.

Nota

Dengan model aksesibilitas lainnya, pengembang harus mengumpulkan informasi langsung dari tombol individu, menu, atau kontrol lainnya. Sayangnya, setiap jenis kontrol hadir dalam puluhan variasi kecil. Dengan kata lain, meskipun sepuluh variasi tombol dorong mungkin semuanya bekerja dengan cara yang sama dan melakukan fungsi yang sama, semuanya harus diperlakukan sebagai kontrol unik. Tidak ada cara untuk mengetahui bahwa kontrol ini secara fungsional setara. Pola kontrol dikembangkan untuk mewakili perilaku kontrol umum ini. Untuk informasi selengkapnya, lihat Gambaran Umum Pola Kontrol Automasi UI .

Menerapkan Automasi UI

Seperti disebutkan sebelumnya, tanpa model terpadu yang disediakan oleh UI Automation, alat pengujian dan pengembang diperlukan untuk mengetahui informasi khusus kerangka kerja untuk mengekspos properti dan perilaku kontrol dalam kerangka kerja tersebut. Karena mungkin ada beberapa kerangka kerja UI yang berbeda yang ada kapan saja dalam sistem operasi Windows, termasuk Win32, Windows Forms, dan Windows Presentation Foundation (WPF), ini bisa menjadi tugas yang menakutkan untuk menguji beberapa aplikasi dengan kontrol yang tampak mirip. Misalnya, tabel berikut menguraikan nama properti khusus kerangka kerja yang diperlukan untuk mengambil nama (atau teks) yang terkait dengan kontrol tombol dan memperlihatkan properti Otomatisasi UI yang setara tunggal.

Tipe Kontrol Automasi Antarmuka Pengguna Kerangka Kerja UI Properti Khusus Kerangka Kerja Properti Automasi Antarmuka Pengguna
Tombol Windows Presentation Foundation Konten NamaProperti
Tombol Win32 Caption NamaProperti
Citra HTML Alt NamaProperti

Penyedia UI Automation bertanggung jawab untuk memetakan properti kontrol khusus kerangka kerja mereka ke properti UI Automation yang setara.

Informasi tentang pelaksanaan Automasi UI oleh penyedia dapat ditemukan di Penyedia Automasi UI untuk Kode Terkelola. Informasi tentang menerapkan pola kontrol tersedia di Pola Kontrol Automasi UI dan Pola Teks Automasi UI .

Automasi UI pada Aplikasi Klien

Tujuan dari banyak alat dan skenario pengujian otomatis adalah manipulasi antarmuka pengguna yang konsisten dan dapat diulang. Ini dapat melibatkan pengujian unit kontrol tertentu hingga perekaman dan pemutaran skrip pengujian yang berulang melalui serangkaian tindakan generik pada sekelompok kontrol.

Komplikasi yang muncul dari aplikasi otomatis adalah kesulitan menyinkronkan pengujian dengan target dinamis. Misalnya, kontrol kotak daftar, seperti yang terkandung dalam Pengelola Tugas Windows, yang menampilkan daftar aplikasi yang sedang berjalan. Karena item dalam kotak daftar diperbarui secara dinamis di luar kontrol aplikasi pengujian, mencoba mengulangi pemilihan item tertentu dalam kotak daftar dengan konsistensi apa pun tidak mungkin. Masalah serupa juga dapat muncul ketika mencoba mengulangi perubahan fokus sederhana di UI yang berada di luar kontrol aplikasi pengujian.

Akses Terprogram

Akses secara program menyediakan kemampuan untuk meniru interaksi dan pengalaman apa pun yang ditampilkan oleh input mouse dan keyboard tradisional melalui pemrograman. Automasi UI memungkinkan akses terprogram melalui lima komponen:

  • Pohon Automation UI memfasilitasi navigasi melalui struktur UI. Pohon ini dibangun dari koleksi hWnd. Untuk informasi selengkapnya, lihat Gambaran Umum Pohon Automasi UI .

  • Elemen Automation adalah komponen individual di UI. Ini seringkali bisa lebih terperinci daripada hWnd. Untuk informasi selengkapnya, lihat Gambaran Umum Tipe Kontrol Automasi UI .

  • Properti automasi menyediakan informasi spesifik tentang elemen UI. Untuk informasi selengkapnya, lihat Gambaran Umum Properti Automasi UI .

  • Pola kontrol menentukan aspek tertentu dari fungsionalitas kontrol; mereka dapat terdiri dari informasi properti, metode, peristiwa, dan struktur. Untuk informasi selengkapnya, lihat Gambaran Umum Pola Kontrol Automasi UI .

  • Peristiwa automasi menyediakan pemberitahuan dan informasi peristiwa. Untuk informasi selengkapnya, lihat Gambaran Umum Peristiwa Automasi UI .

Properti Utama untuk Automasi Pengujian

Kemampuan untuk mengidentifikasi secara unik dan kemudian menemukan kontrol apa pun dalam UI memberikan dasar bagi aplikasi pengujian otomatis untuk beroperasi pada UI tersebut. Ada beberapa properti Microsoft UI Automation yang digunakan oleh klien dan penyedia yang membantu dalam hal ini.

AutomationID

Secara unik mengidentifikasi elemen otomatisasi dari saudara kandungnya. AutomationIdProperty tidak dilokalkan, tidak seperti properti seperti NameProperty yang biasanya dilokalkan jika produk dikirim dalam beberapa bahasa. Lihat Gunakan Properti AutomationID.

Nota

AutomationIdProperty tidak menjamin identitas unik di seluruh pohon otomatisasi. Misalnya, aplikasi mungkin berisi kontrol menu dengan beberapa item menu tingkat atas yang, pada gilirannya, memiliki beberapa item menu turunan. Item menu sekunder ini dapat diidentifikasi oleh skema generik seperti "Item1, Item 2, Item3, dll.", memungkinkan pengidentifikasi duplikat untuk anak-anak di seluruh item menu tingkat atas.

TipeKontrol

Mengidentifikasi jenis kontrol yang diwakili oleh elemen otomatisasi. Informasi signifikan dapat disimpulkan dari pengetahuan tentang jenis kontrol. Lihat Gambaran Umum Jenis Kontrol Automasi UI .

NamaProperti

Ini adalah string teks yang mengidentifikasi atau menjelaskan kontrol. NameProperty harus digunakan dengan hati-hati karena dapat dilokalkan. Lihat Gambaran Umum Properti Automasi UI .

Menerapkan Automasi UI dalam Aplikasi Pengujian

Langkah Deskripsi
Tambahkan Referensi Automatisasi Antarmuka Pengguna. Berkas DLL yang diperlukan untuk klien UI Automation tercantum di sini.

- UIAutomationClient.dll menyediakan akses ke API sisi klien Automation UI.
- UIAutomationClientSideProvider.dll menyediakan kemampuan untuk mengotomatiskan kontrol Win32. Lihat Dukungan Automasi UI untuk Kontrol Standar.
- UIAutomationTypes.dll menyediakan akses ke jenis tertentu yang ditentukan dalam Automasi UI.
Tambahkan namespace System.Windows.Automation. Namespace layanan ini berisi semua yang dibutuhkan klien Automation UI untuk menggunakan kemampuan Automasi UI kecuali penanganan teks.
Tambahkan namespace System.Windows.Automation.Text. Namespace ini berisi semua yang dibutuhkan klien Automation UI untuk menggunakan kemampuan penanganan teks Automation UI.
Temukan kontrol yang relevan. Skrip pengujian otomatis menemukan elemen-elemen UI Otomatisasi yang mewakili kontrol yang relevan di dalam pohon otomatisasi.

Ada beberapa cara untuk mendapatkan elemen Automation UI dengan kode.

- Kueri UI menggunakan pernyataan Condition. Ini biasanya tempat di mana AutomationIdProperty yang netral bahasa digunakan. Catatan:AutomationIdProperty dapat diperoleh menggunakan alat seperti Inspect.exe yang dapat merinci properti Automasi UI dari sebuah kontrol.

- Gunakan kelas TreeWalker untuk melintasi seluruh pohon Automation UI atau subsetnya.
- Lacak fokus.
- Gunakan hWnd kontrol.
- Gunakan lokasi layar, seperti lokasi kursor mouse.

Lihat Mendapatkan Elemen Automasi UI
Mendapatkan Pola Kontrol. Pola kontrol mengekspos perilaku umum untuk kontrol yang serupa secara fungsional.

Setelah menemukan kontrol yang memerlukan pengujian, skrip pengujian otomatis mendapatkan pola kontrol yang menarik dari elemen Automation UI tersebut. Misalnya, pola kontrol InvokePattern untuk fungsionalitas tombol biasa atau pola kontrol WindowPattern untuk fungsionalitas jendela.

Lihat Gambaran Umum Pola Kontrol Automasi UI .
Mengotomatisasi antarmuka pengguna. Skrip pengujian otomatis sekarang dapat mengontrol UI apa pun yang diperlukan dari kerangka kerja UI menggunakan informasi dan fungsionalitas yang diekspos oleh pola kontrol UI Automation.

Ada sejumlah alat dan teknologi terkait yang mendukung pengujian otomatis dengan Automasi UI.

  • Inspect.exe adalah aplikasi antarmuka pengguna grafis (GUI) yang dapat digunakan untuk mengumpulkan informasi UI Automation untuk pengembangan dan debugging penyedia serta klien. Inspect.exe disertakan dalam Windows SDK.

  • MSAABridge mengekspos informasi UI Otomasi ke klien Aksesibilitas Aktif. Tujuan utama menjembatani Automasi UI ke Aksesibilitas Aktif adalah untuk memungkinkan klien Aksesibilitas Aktif yang ada kemampuan untuk berinteraksi dengan kerangka kerja apa pun yang telah menerapkan Automasi UI.

Keamanan

Untuk informasi keamanan, lihat Gambaran Umum Keamanan Automasi UI .

Lihat juga