Uji UI dengan Selenium

Layanan Azure DevOps | Azure DevOps Server 2022 - Azure DevOps Server 2019

Melakukan pengujian antarmuka pengguna (UI) sebagai bagian dari alur rilis adalah cara yang bagus untuk mendeteksi perubahan yang tidak terduga, dan tidak perlu sulit. Topik ini menjelaskan penggunaan Selenium untuk menguji situs web Anda selama rilis penyebaran berkelanjutan dan otomatisasi pengujian. Pertimbangan khusus yang berlaku saat menjalankan pengujian UI dibahas dalam pertimbangan pengujian UI.

Biasanya Anda akan menjalankan pengujian unit di alur kerja build, dan pengujian fungsional (UI) di alur kerja rilis setelah aplikasi Anda disebarkan (biasanya ke lingkungan QA).

Untuk informasi selengkapnya tentang otomatisasi browser Selenium, lihat:

Membuat proyek pengujian Anda

Karena tidak ada templat untuk pengujian Selenium, cara term mudah untuk memulai adalah dengan menggunakan templat Pengujian Unit. Ini secara otomatis menambahkan referensi kerangka kerja pengujian dan memungkinkan Anda menjalankan dan melihat hasilnya dari Visual Studio Test Explorer.

  1. Di Visual Studio, buka menu File dan pilih Proyek Baru, lalu pilih Uji dan pilih Proyek Pengujian Unit. Atau, buka menu pintasan untuk solusi dan pilih Tambahkan lalu Proyek Baru lalu Proyek Pengujian Unit.

  2. Setelah proyek dibuat, tambahkan referensi Selenium dan driver browser yang digunakan oleh browser untuk menjalankan pengujian. Buka menu pintasan untuk proyek Pengujian Unit dan pilih Kelola Paket NuGet. Tambahkan paket berikut ke proyek Anda:

    • Selenium.WebDriver
    • Selenium.Firefox.WebDriver
    • Selenium.WebDriver.ChromeDriver
    • Selenium.WebDriver.IEDriver

    Menambahkan paket driver browser ke solusi Anda

  3. Buat pengujian Anda. Misalnya, kode berikut membuat kelas default bernama MySeleniumTests yang melakukan pengujian sederhana di situs web Bing.com. Ganti konten fungsi TheBingSearchTest dengan kode Selenium yang diperlukan untuk menguji aplikasi web atau situs web Anda. Ubah penetapan browser di fungsi SetupTest ke browser yang ingin Anda gunakan untuk pengujian.

    using System;
    using System.Text;
    using Microsoft.VisualStudio.TestTools.UnitTesting;
    using OpenQA.Selenium;			
    using OpenQA.Selenium.Firefox;	
    using OpenQA.Selenium.Chrome;	
    using OpenQA.Selenium.IE;
    
    namespace SeleniumBingTests
    {
      /// <summary>
      /// Summary description for MySeleniumTests
      /// </summary>
      [TestClass]
      public class MySeleniumTests
      {
        private TestContext testContextInstance;
        private IWebDriver driver;
        private string appURL;
    
        public MySeleniumTests()
        {
        }
    
        [TestMethod]
        [TestCategory("Chrome")]
        public void TheBingSearchTest()
        {
          driver.Navigate().GoToUrl(appURL + "/");
          driver.FindElement(By.Id("sb_form_q")).SendKeys("Azure Pipelines");
          driver.FindElement(By.Id("sb_form_go")).Click();
          driver.FindElement(By.XPath("//ol[@id='b_results']/li/h2/a/strong[3]")).Click();
          Assert.IsTrue(driver.Title.Contains("Azure Pipelines"), "Verified title of the page");
        }
    
        /// <summary>
        ///Gets or sets the test context which provides
        ///information about and functionality for the current test run.
        ///</summary>
        public TestContext TestContext
        {
          get
          {
            return testContextInstance;
          }
          set
          {
            testContextInstance = value;
          }
        }
    
        [TestInitialize()]
        public void SetupTest()
        {
          appURL = "http://www.bing.com/";
    
          string browser = "Chrome";
          switch(browser)
          {
            case "Chrome":
              driver = new ChromeDriver();
              break;
            case "Firefox":
              driver = new FirefoxDriver();
              break;
            case "IE":
              driver = new InternetExplorerDriver();
              break;
            default:
              driver = new ChromeDriver();
              break;
          }
    
        }
    
        [TestCleanup()]
        public void MyTestCleanup()
        {
          driver.Quit();
        }
      }
    }
    
  4. Jalankan pengujian Selenium secara lokal menggunakan Test Explorer dan periksa apakah itu berfungsi.

Menentukan pipeline build

Anda memerlukan alur build integrasi berkelanjutan (CI) yang membangun pengujian Selenium Anda. Untuk detail selengkapnya, lihat Membangun aplikasi desktop .NET Anda untuk Windows.

Membuat aplikasi web Anda

Anda memerlukan aplikasi web untuk diuji. Anda dapat menggunakan aplikasi yang sudah ada, atau menyebarkannya di alur rilis penyebaran berkelanjutan (CD) Anda. Contoh kode di atas menjalankan pengujian terhadap Bing.com. Untuk detail cara menyiapkan alur rilis Anda sendiri untuk menyebarkan aplikasi web, lihat Menyebarkan ke Azure Web Apps.

Memutuskan bagaimana Anda akan menyebarkan dan menguji aplikasi Anda

Anda dapat menyebarkan dan menguji aplikasi menggunakan agen yang dihosting Microsoft di Azure, atau agen yang dihost sendiri yang Anda instal di server target.

  • Saat menggunakan agen yang dihosting Microsoft, Anda harus menggunakan driver web Selenium yang telah diinstal sebelumnya pada agen Windows (agen bernama Hosted VS 20xx) karena kompatibel dengan versi browser yang diinstal pada gambar agen yang dihosting Microsoft. Jalur ke folder yang berisi driver ini dapat diperoleh dari variabel lingkungan bernama IEWebDriver (Internet Explorer), ChromeWebDriver (Google Chrome), dan GeckoWebDriver (Firefox). Driver tidak diinstal sebelumnya pada agen lain seperti agen Linux, Ubuntu, dan macOS. Lihat juga pertimbangan pengujian UI.

  • Saat menggunakan agen yang dihost sendiri yang Anda sebarkan di server target Anda, agen harus dikonfigurasi untuk berjalan secara interaktif dengan masuk otomatis diaktifkan. Lihat Membangun dan merilis agen dan pertimbangan pengujian UI.

Sertakan pengujian dalam rilis

  1. Jika Anda tidak memiliki alur rilis yang sudah ada yang menyebarkan aplikasi web Anda:

    • Buka halaman Rilis di bagian Azure Pipelines di Azure DevOps atau hub Build & Release di TFS (lihat Navigasi portal web) dan pilih + ikon, lalu pilih Buat alur rilis.

      Membuat alur rilis baru

    • Pilih templat Penyebaran Azure App Service dan pilih Terapkan.

    • Di bagian Artefak dari tab Alur , pilih + Tambahkan. Pilih artefak build Anda dan pilih Tambahkan.

      Memilih artefak

    • Pilih ikon Pemicu penyebaran berkelanjutan di bagian Artefak pada tab Alur. Di panel Pemicu penyebaran berkelanjutan, aktifkan pemicu sehingga rilis baru dibuat dari setiap build. Tambahkan filter untuk cabang default.

      Mengonfigurasi penyebaran berkelanjutan

    • Buka tab Tugas , pilih bagian Tahap 1 , dan masukkan informasi langganan Anda dan nama aplikasi web tempat Anda ingin menyebarkan aplikasi dan pengujian. Pengaturan ini diterapkan ke tugas Sebarkan Azure App Service .

      Mengonfigurasi variabel

  2. Jika Anda menyebarkan aplikasi dan pengujian ke lingkungan tempat komputer target yang menghosting agen tidak menginstal Visual Studio:

    • Di tab Tugas dari alur rilis , pilih + ikon di bagian Jalankan pada agen . Pilih tugas Penginstal Platform Uji Visual Studio dan pilih Tambahkan. Biarkan semua pengaturan pada nilai default.

      Menambahkan tugas Penginstal Platform Uji Visual Studio

      Anda dapat menemukan tugas dengan lebih mudah dengan menggunakan kotak teks pencarian.

  3. Di tab Tugas dari alur rilis , pilih + ikon di bagian Jalankan pada agen . Pilih tugas Uji Visual Studio dan pilih Tambahkan.

    Menambahkan tugas Uji Visual Studio

  4. Jika Anda menambahkan tugas Penginstal Platform Uji Visual Studio ke alur Anda, ubah pengaturan Versi platform pengujian di bagian Opsi eksekusi dari tugas Uji Visual Studio ke Penginstal Alat yang Diinstal oleh Alat.

    Mengatur versi platform pengujian

    Bagaimana cara meneruskan parameter ke kode pengujian saya dari alur build?

  5. Simpan alur rilis dan mulai rilis baru. Anda dapat melakukan ini dengan mengantrekan build CI baru, atau dengan memilih Buat rilis dari daftar drop-down Rilis di alur rilis.

    Membuat rilis baru

  6. Untuk melihat hasil pengujian, buka ringkasan rilis dari halaman Rilis dan pilih tautan Pengujian .

Langkah berikutnya