Pengujian aplikasi desktop Windows sejak lama menjadi salah satu fitur yang paling banyak diminta pelanggan, karena tidak ada yang memiliki infrastruktur untuk menjalankan ribuan pengujian ini secara paralel setiap bulan. Pengujian web relatif mudah: browser headless dimulai dalam kontainer Linux hanya dalam hitungan detik, biayanya hanya sebagian kecil dari satu sen, dan dibuang begitu pengujian selesai. Pengujian desktop Windows tidak memiliki padanan seperti itu. Setiap pengujian memerlukan mesin virtual penuh, karena kontainer Windows tidak menyertakan desktop grafis. Mesin virtual Windows yang dinyalakan dari kondisi dingin membutuhkan 2 hingga 3 menit untuk booting, dan seseorang harus sudah masuk, karena Windows UI Automation hanya berfungsi di dalam sesi desktop yang aktif. Mesin juga mempertahankan berkas terpasang, kunci registri, profil pengguna, dan login tersimpan di antara setiap eksekusi, sementara setiap aplikasi membawa penginstal, permintaan admin, dan dialog saat pertama kali dijalankan sendiri. Mesin Windows jarak jauh tidak menyediakan jejak, log, atau tangkapan layar bawaan, dan sebagian besar infrastruktur pengujian dirancang dengan Linux sebagai basisnya.
Jawaban tim adalah memperlakukan mesin Windows seperti ponsel: perangkat yang diklaim satu pengujian, dipakai sekali, lalu dibuang. Arsitekturnya meminjam dari infrastruktur pengujian seluler mereka. Sebuah penjadwal perangkat kustom di Kubernetes menyerahkan mesin virtual Windows di Google Compute Engine melalui Device Claim, dan pengujian mengendalikannya dari jarak jauh dengan WebdriverIO dan Appium. Model perangkat perlu dua perluasan: perangkat dapat berada di luar klaster, dan klaim dapat mengembalikan alamat koneksi desktop, termasuk CDP untuk browser.
Sistem ini terdiri dari tiga bagian: pengontrol yang menjaga kumpulan mesin virtual Windows yang sudah dipanaskan, pod runner Linux yang menjalankan kode pengujian, dan mesin virtual Windows itu sendiri, yang menjalankan aplikasi yang diuji serta agen desktop kecil. Runner terhubung melalui CDP Playwright untuk konten browser, Appium untuk aplikasi native, dan aliran WebRTC yang memungkinkan orang menya
Sumber: Hacker News · Diringkas oleh HeadlinesBriefing