Pertimbangan pengujian antarmuka pengguna
Layanan Azure DevOps | Azure DevOps Server 2022 - Azure DevOps Server 2019
Saat menjalankan pengujian otomatis di alur CI/CD, Anda mungkin memerlukan konfigurasi khusus untuk menjalankan pengujian UI seperti pengujian UI Selenium, Appium, atau Coded. Artikel ini menjelaskan pertimbangan umum untuk menjalankan pengujian UI.
Prasyarat
Biasakan diri Anda dengan agen dan menyebarkan agen di Windows.
Mode tanpa kepala atau mode UI yang terlihat?
Saat menjalankan pengujian Selenium untuk aplikasi web, Anda dapat meluncurkan browser dengan dua cara:
Mode tanpa kepala. Dalam mode ini, browser berjalan seperti biasa tetapi tanpa komponen UI yang terlihat. Meskipun mode ini tidak berguna untuk menelusuri web, ini berguna untuk menjalankan pengujian otomatis dengan cara tanpa pengawasan dalam alur CI/CD. Browser Chrome dan Firefox dapat dijalankan dalam mode tanpa kepala.
Mode ini umumnya menggunakan lebih sedikit sumber daya pada komputer karena UI tidak dirender dan pengujian berjalan lebih cepat. Akibatnya, kemungkinan lebih banyak pengujian dapat dijalankan secara paralel pada komputer yang sama untuk mengurangi total waktu eksekusi pengujian.
Cuplikan layar dapat diambil dalam mode ini dan digunakan untuk memecahkan masalah kegagalan.
Catatan
Browser Microsoft Edge saat ini tidak dapat dijalankan dalam mode headless.
Mode UI yang terlihat. Dalam mode ini, browser berjalan normal dan komponen UI terlihat. Saat menjalankan pengujian dalam mode ini pada Windows, konfigurasi khusus agen diperlukan.
Jika Anda menjalankan pengujian UI untuk aplikasi desktop, seperti pengujian Appium menggunakan WinAppDriver atau pengujian antarmuka pengguna Kode, konfigurasi khusus agen diperlukan.
Tip
Pengujian UI end-to-end umumnya cenderung berjalan lama. Saat menggunakan mode UI yang terlihat, tergantung pada kerangka kerja pengujian, Anda mungkin tidak dapat menjalankan pengujian secara paralel pada komputer yang sama karena aplikasi harus fokus untuk menerima peristiwa keyboard dan mouse. Dalam skenario ini, Anda dapat mempercepat siklus pengujian dengan menjalankan pengujian secara paralel pada komputer yang berbeda . Lihat menjalankan pengujian secara paralel untuk setiap runner pengujian dan menjalankan pengujian secara paralel menggunakan tugas Visual Studio Test.
Pengujian UI dalam mode UI yang terlihat
Konfigurasi khusus diperlukan bagi agen untuk menjalankan pengujian UI dalam mode UI yang terlihat.
Pengujian UI yang terlihat menggunakan agen yang dihosting Microsoft
Pengujian antarmuka pengguna yang terlihat tidak didukung di agen yang dihosting Microsoft. Pengujian gagal dengan pesan kesalahan "elemen tidak dapat berinteraksi". Agen yang dihosting Microsoft mendukung pengujian browser tanpa kepala.
Pengujian antarmuka pengguna mode tanpa kepala menggunakan agen yang dihosting Microsoft
Agen yang dihosting Microsoft telah dikonfigurasi sebelumnya untuk pengujian UI dan pengujian UI untuk aplikasi web. Agen yang dihosting Microsoft juga telah dikonfigurasi sebelumnya dengan browser populer dan versi driver web yang cocok yang dapat digunakan untuk menjalankan pengujian Selenium. Browser dan driver web yang sesuai diperbarui secara berkala. Untuk mempelajari selengkapnya tentang menjalankan tes Selenium, lihat Pengujian UI dengan Selenium.
Pengujian UI yang terlihat menggunakan agen Windows yang dihost sendiri
Agen yang dikonfigurasi untuk berjalan sebagai layanan hanya dapat menjalankan pengujian Selenium dengan browser tanpa kepala. Jika Anda tidak menggunakan browser headless, atau jika Anda menjalankan pengujian UI untuk aplikasi desktop, agen Windows harus dikonfigurasi untuk dijalankan sebagai proses interaktif dengan autologon diaktifkan.
Saat mengonfigurasi agen, pilih 'Tidak' saat diminta untuk menjalankan sebagai layanan. Langkah berikutnya kemudian memungkinkan Anda untuk mengonfigurasi agen dengan autologon. Saat pengujian UI Anda berjalan, aplikasi dan browser diluncurkan dalam konteks pengguna yang ditentukan dalam pengaturan autologon.
Jika Anda menggunakan Desktop Jauh untuk mengakses komputer tempat agen berjalan dengan autologon, cukup memutuskan sambungan Desktop Jauh menyebabkan komputer dikunci dan pengujian UI apa pun yang berjalan pada agen ini bisa gagal. Untuk menghindari kegagalan, gunakan perintah tscon pada komputer jarak jauh untuk memutuskan sambungan dari Desktop Jauh. Contohnya:
%windir%\System32\tscon.exe 1 /dest:console
Dalam contoh ini, angka '1' adalah ID sesi desktop jarak jauh. Angka ini dapat berubah di antara sesi jarak jauh, tetapi dapat dilihat di Pengelola Tugas. Atau, untuk mengotomatiskan menemukan ID sesi saat ini, buat file batch yang berisi kode berikut:
for /f "skip=1 tokens=3" %%s in ('query user %USERNAME%') do (
%windir%\System32\tscon.exe %%s /dest:console
)
Simpan file batch dan buat pintasan desktop ke dalamnya, lalu ubah properti pintasan menjadi 'Jalankan sebagai administrator'. Menjalankan file batch dari pintasan ini terputus dari desktop jarak jauh tetapi mempertahankan sesi UI dan memungkinkan pengujian UI dijalankan.
Agen provisi di Azure VM untuk pengujian UI
Jika Anda menyediakan komputer virtual (VM) di Azure, konfigurasi agen untuk pengujian UI tersedia melalui artefak Agen untuk DevTest Labs.
Mengatur resolusi layar
Sebelum menjalankan pengujian UI, Anda mungkin perlu menyesuaikan resolusi layar sehingga aplikasi dirender dengan benar. Untuk ini, tugas utilitas resolusi layar tersedia dari Marketplace. Gunakan tugas ini di alur Anda untuk mengatur resolusi layar ke nilai yang didukung oleh mesin agen. Secara default, utilitas ini mengatur resolusi ke nilai optimal yang didukung oleh komputer agen.
Jika Anda mengalami kegagalan menggunakan tugas resolusi layar, pastikan bahwa agen dikonfigurasi untuk berjalan dengan autologon diaktifkan dan bahwa semua sesi desktop jarak jauh terputus dengan aman menggunakan perintah tscon seperti yang dijelaskan di atas.
Catatan
Tugas utilitas resolusi layar berjalan pada agen build/rilis/pengujian terpadu, dan tidak dapat digunakan dengan tugas Jalankan Uji Fungsional yang tidak digunakan lagi. Tugas util resolusi juga tidak berfungsi untuk komputer virtual Azure.
Memecahkan masalah kegagalan dalam pengujian UI
Saat Anda menjalankan pengujian UI dengan cara yang tidak dijaga, menangkap data diagnostik seperti cuplikan layar atau video berguna untuk menemukan status aplikasi ketika kegagalan ditemui.
Mengambil cuplikan layar
Sebagian besar kerangka kerja pengujian UI menyediakan kemampuan untuk mengambil cuplikan layar. Cuplikan layar yang dikumpulkan tersedia sebagai lampiran pada hasil pengujian saat hasil ini diterbitkan ke server.
Jika Anda menggunakan tugas pengujian Visual Studio untuk menjalankan pengujian, cuplikan layar yang diambil harus ditambahkan sebagai file hasil agar tersedia dalam laporan pengujian. Untuk ini, gunakan kode berikut:
Pertama, pastikan bahwa TestContext didefinisikan di kelas pengujian Anda. Misalnya: public TestContext TestContext { get; set; }
Menambahkan file cuplikan layar menggunakan TestContext.AddResultFile(fileName); //Where fileName is the name of the file.
Jika Anda menggunakan tugas Terbitkan Hasil Pengujian untuk menerbitkan hasil, lampiran hasil pengujian hanya dapat diterbitkan jika Anda menggunakan format hasil VSTest (TRX) atau format hasil NUnit 3.0.
Lampiran hasil tidak dapat diterbitkan jika Anda menggunakan hasil pengujian JUnit atau xUnit. Ini karena format hasil pengujian ini tidak memiliki definisi formal untuk lampiran dalam skema hasil. Anda dapat menggunakan salah satu pendekatan di bawah ini untuk menerbitkan lampiran pengujian sebagai gantinya.
Jika Menjalankan pengujian dalam alur build (CI), Anda dapat menggunakan tugas Salin dan Terbitkan Artefak Build untuk menerbitkan file lain yang dibuat dalam pengujian Anda. Ini muncul di halaman Artefak ringkasan build Anda.
Gunakan REST API untuk menerbitkan lampiran yang diperlukan. Sampel kode dapat ditemukan di repositori GitHub ini.
Mengambil video
Jika Anda menggunakan tugas pengujian Visual Studio untuk menjalankan pengujian, video pengujian dapat diambil dan secara otomatis tersedia sebagai lampiran pada hasil pengujian. Untuk ini, Anda harus mengonfigurasi pengumpul data video dalam file .runsettings dan file ini harus ditentukan dalam pengaturan tugas.
Bantuan dan dukungan
- Lihat halaman pemecahan masalah kami
- Dapatkan saran tentang Stack Overflow, dan dapatkan dukungan melalui Komunitas Pengembang