Bagikan melalui


Menggunakan UI Automation untuk Pengujian Otomatis

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

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

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

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

Topik ini berisi bagian berikut.

Otomatisasi UI di Penyedia

Untuk mengotomatiskan elemen antarmuka pengguna, pengembang harus melihat tindakan apa yang dapat dilakukan pengguna akhir pada objek UI dengan menggunakan interaksi keyboard dan mouse standar. Setelah tindakan utama ini diidentifikasi, pola kontrol Automation UI yang mencerminkan fungsionalitas dan perilaku elemen UI harus diimplementasikan pada kontrol. Misalnya, interaksi pengguna dengan kontrol kotak kombo biasanya melibatkan perluasan dan ciutkan kotak kombo untuk menampilkan atau menyembunyikan daftar item, memilih item dari daftar, atau menambahkan nilai baru melalui input keyboard.

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

Tanpa model terpadu pola kontrol yang disediakan oleh Automation UI, alat pengujian dan pengembang harus memiliki informasi khusus kerangka kerja untuk mengekspos properti dan perilaku kontrol dalam kerangka kerja tersebut. Karena beberapa kerangka kerja UI yang berbeda dapat hadir pada saat yang sama di sistem operasi Windows, termasuk Microsoft Win32, Formulir Windows, dan Windows Presentation Foundation (WPF), itu bisa menjadi tugas yang menakutkan untuk menguji beberapa aplikasi dengan kontrol yang tampak mirip. Misalnya, tabel berikut mencantumkan nama properti khusus kerangka kerja yang diperlukan untuk mengambil nama atau teks yang terkait dengan kontrol tombol dan memperlihatkan properti Otomatisasi UI yang setara.

Jenis kontrol Kerangka kerja UI Properti khusus kerangka kerja Properti UI Automation
Tombol WPF Konten Properti nama
Tombol Win32 Keterangan Properti nama
Gambar HTML alt Properti nama

 

Penyedia Automasi UI bertanggung jawab untuk memetakan properti khusus kerangka kerja kontrol mereka ke properti Automasi UI yang setara. Untuk informasi tentang menerapkan Otomatisasi UI di penyedia, lihat Panduan Programmer Penyedia Automation UI. Untuk informasi tentang menerapkan pola kontrol, lihat Menerapkan Pola Kontrol Automasi UI.

Otomatisasi UI di Klien

Tujuan dari alat dan skenario pengujian otomatis adalah manipulasi UI yang konsisten dan dapat diulang. Misalnya, ini dapat melibatkan pengujian unit kontrol tertentu, dan merekam dan menjalankan skrip pengujian yang melakukan iterasi melalui serangkaian tindakan generik pada sekelompok kontrol.

Komplikasi dalam aplikasi otomatis adalah kesulitan menyinkronkan pengujian dengan target dinamis, misalnya, kontrol kotak daftar, seperti Windows Task Manager, yang menampilkan daftar aplikasi yang sedang berjalan. Karena item dalam kotak daftar diperbarui secara dinamis di luar kontrol aplikasi pengujian, upaya untuk mengulangi memilih item tertentu dalam kotak daftar dengan konsistensi apa pun tidak mungkin. Masalah serupa dapat muncul ketika mencoba mengulangi perubahan fokus sederhana di UI yang berada di luar kontrol aplikasi pengujian.

Akses Terprogram

Akses terprogram menyediakan kemampuan untuk meniru, melalui kode, interaksi dan pengalaman apa pun yang diekspos melalui input mouse dan keyboard tradisional. Automasi UI mengaktifkan akses terprogram melalui lima komponen:

  • Pohon Automasi UI mempermudah navigasi melalui struktur UI. Pohon ini dibangun dari koleksi HWNDs. Untuk informasi selengkapnya, lihat Gambaran Umum Pohon Otomatisasi UI.
  • Elemen Automasi adalah komponen individual dalam UI. Ini seringkali bisa lebih terperinci daripada HWND.
  • Properti automasi menyediakan informasi khusus tentang elemen UI. Untuk mendapatkan informasi selengkapnya, lihat Gambaran Umum Properti Automasi UI.
  • Pola kontrol menentukan aspek tertentu dari fungsi kontrol; pola tersebut dapat terdiri atas informasi properti, metode, peristiwa, dan struktur. Untuk mendapatkan informasi selengkapnya, lihat Gambaran Umum Pola Kontrol Automasi UI.
  • Peristiwa automasi menyediakan pemberitahuan dan informasi peristiwa. Untuk mendapatkan informasi selengkapnya, lihat Gambaran Umum Peristiwa Automasi UI.

Properti Kunci untuk Automasi Pengujian

Kemampuan untuk mengidentifikasi secara unik dan kemudian menemukan kontrol apa pun di UI memberikan dasar bagi aplikasi pengujian otomatis untuk beroperasi pada UI tersebut. Properti Automation UI yang digunakan oleh klien dan penyedia untuk mengidentifikasi dan menemukan kontrol dijelaskan dalam tabel berikut.

Properti Deskripsi
AutomationId Secara unik membedakan elemen otomatisasi dari saudara-saudaranya. Dukungan untuk properti AutomationId tidak diperlukan. Ketika tersedia, properti AutomationId dari elemen sama dalam instans aplikasi apa pun, terlepas dari bahasa lokalnya. Meskipun properti AutomationId unik di antara elemen saudara kandung, properti tersebut mungkin tidak unik di seluruh desktop. Misalnya, beberapa instans aplikasi, atau beberapa tampilan folder di Microsoft Windows Explorer, mungkin berisi elemen dengan AutomationIdProperty yang sama, seperti "SystemMenuBar". Klien tidak boleh membuat asumsi mengenai AutomationIds yang diekspos oleh aplikasi lain. AutomationId tidak dijamin stabil di berbagai rilis atau build aplikasi.
ControlType Mengidentifikasi jenis kontrol yang diwakili oleh elemen automasi. Informasi signifikan dapat disimpulkan dari pengetahuan tentang jenis kontrol. Untuk mendapatkan informasi selengkapnya, lihat Gambaran Umum Jenis Kontrol Automasi UI.
Nama String teks yang mengidentifikasi atau menjelaskan tujuan elemen otomatisasi. Ini harus digunakan dengan hati-hati karena dapat dilokalkan. Properti Nama bukanlah pengidentifikasi unik di antara saudara kandung. Untuk otomatisasi pengujian, klien harus menggunakan properti AutomationId atau properti RuntimeId sebagai gantinya.
RuntimeId Array bilangan bulat yang mewakili pengidentifikasi untuk elemen otomatisasi. Pengidentifikasi unik di desktop, tetapi dijamin hanya unik untuk UI desktop tempat ia dihasilkan. Pengidentifikasi dapat digunakan kembali dari waktu ke waktu. Gunakan IUIAutomation::CompareElements untuk menentukan apakah elemen yang saat ini memiliki ID runtime tertentu adalah elemen yang sama yang sebelumnya memiliki ID tersebut. Selain itu, format properti RuntimeId dapat berubah. Ini harus diperlakukan sebagai nilai buram dan hanya digunakan untuk perbandingan; misalnya, untuk menentukan apakah elemen otomatisasi ada di cache.

 

Inspect (Inspect.exe) adalah alat berbasis Windows yang dapat Anda gunakan untuk mengumpulkan informasi Automation UI untuk pengembangan dan penelusuran kesalahan penyedia dan klien. Pemeriksaan disertakan dalam Kit Pengembangan Perangkat Lunak Windows (SDK).

Pertimbangan Keamanan Automation UI