Användargränssnittstest med Selenium

Azure DevOps Services | Azure DevOps Server 2022 – Azure DevOps Server 2019

Att utföra användargränssnittstestning som en del av versionspipelinen är ett bra sätt att identifiera oväntade ändringar och behöver inte vara svårt. Det här avsnittet beskriver hur du använder Selenium för att testa din webbplats under en kontinuerlig distributionsversion och testautomatisering. Särskilda överväganden som gäller när du kör användargränssnittstester beskrivs i överväganden för användargränssnittstestning.

Vanligtvis kör du enhetstester i ditt byggarbetsflöde och funktionella tester (UI) i ditt versionsarbetsflöde när appen har distribuerats (vanligtvis till en QA-miljö).

Mer information om Selenium-webbläsarautomatisering finns i:

Skapa ditt testprojekt

Eftersom det inte finns någon mall för Selenium-testning är det enklaste sättet att komma igång att använda mallen Enhetstest. Detta lägger automatiskt till referenserna för testramverket och gör att du kan köra och visa resultaten från Visual Studio Test Explorer.

  1. I Visual Studio öppnar du menyn Arkiv och väljer Nytt projekt, sedan Test och sedan Enhetstestprojekt. Du kan också öppna snabbmenyn för lösningen och välja Lägg till sedan Nytt projekt och sedan Enhetstestprojekt.

  2. När projektet har skapats lägger du till selen- och webbläsardrivrutinsreferenserna som används av webbläsaren för att köra testerna. Öppna snabbmenyn för projektet Enhetstest och välj Hantera NuGet-paket. Lägg till följande paket i projektet:

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

    Lägga till webbläsardrivrutinspaketen i din lösning

  3. Skapa dina tester. Följande kod skapar till exempel en standardklass med namnet MySeleniumTests som utför ett enkelt test på Bing.com webbplats. Ersätt innehållet i funktionen TheBingSearchTest med den Selenium-kod som krävs för att testa webbappen eller webbplatsen. Ändra webbläsartilldelningen i funktionen SetupTest till den webbläsare som du vill använda för testet.

    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. Kör Selenium-testet lokalt med testutforskaren och kontrollera att det fungerar.

Definiera bygg-pipelinen

Du behöver en pipeline för kontinuerlig integrering (CI) som skapar dina Selenium-tester. Mer information finns i Skapa din .NET-skrivbordsapp för Windows.

Skapa din webbapp

Du behöver en webbapp för att testa. Du kan använda en befintlig app eller distribuera en i versionspipelinen för kontinuerlig distribution (CD). Exempelkoden ovan kör tester mot Bing.com. Mer information om hur du konfigurerar en egen versionspipeline för att distribuera en webbapp finns i Distribuera till Azure Web Apps.

Bestäm hur du ska distribuera och testa din app

Du kan distribuera och testa din app med antingen den Microsoft-värdbaserade agenten i Azure eller en lokalt installerad agent som du installerar på målservrarna.

  • När du använder Den Microsoft-värdbaserade agenten bör du använda Selenium-webbdrivrutinerna som är förinstallerade på Windows-agenterna (agenter med namnet Hosted VS 20xx) eftersom de är kompatibla med webbläsarversionerna som är installerade på Microsoft-värdbaserade agentbilder. Sökvägarna till mapparna som innehåller dessa drivrutiner kan hämtas från miljövariablerna med namnet IEWebDriver (Internet Explorer), ChromeWebDriver (Google Chrome) och GeckoWebDriver (Firefox). Drivrutinerna är inte förinstallerade på andra agenter som Linux, Ubuntu och macOS-agenter. Se även överväganden för användargränssnittstestning.

  • När du använder en lokalt installerad agent som du distribuerar på målservrarna måste agenter konfigureras för att köras interaktivt med automatisk inloggning aktiverat. Se Överväganden för att skapa och släppa agenter och användargränssnittstestning.

Inkludera testet i en version

  1. Om du inte har en befintlig versionspipeline som distribuerar webbappen:

    • Öppna sidan Versioner i avsnittet Azure Pipelines i Azure DevOps eller build & release hub i TFS (se webbportalens navigering) och välj + ikonen och välj sedan Skapa versionspipeline.

      Skapa en ny versionspipeline

    • Välj mallen Azure App Service Deployment (Distribution av Azure App Service) och välj Tillämpa.

    • I avsnittet Artefakterfliken Pipeline väljer du + Lägg till. Välj dina byggartefakter och välj Lägg till.

      Välja artefakterna

    • Välj ikonen Kontinuerlig distributionsutlösare i avsnittet Artefakter på fliken Pipeline. I fönstret Kontinuerlig distributionsutlösare aktiverar du utlösaren så att en ny version skapas från varje version. Lägg till ett filter för standardgrenen.

      Konfigurera kontinuerlig distribution

    • Öppna fliken Uppgifter , välj avsnittet Steg 1 och ange din prenumerationsinformation och namnet på webbappen där du vill distribuera appen och testerna. De här inställningarna tillämpas på uppgiften Distribuera Azure App Service .

      Konfigurera variablerna

  2. Om du distribuerar appen och testerna till miljöer där måldatorerna som är värdar för agenterna inte har Visual Studio installerat:

    • På fliken Uppgifter i versionspipelinen väljer du + ikonen i avsnittet Kör på agent . Välj installationsprogrammet för Visual Studio Test Platform och välj Lägg till. Låt standardvärdena vara kvar för alla inställningar.

      Lägga till en Visual Studio Test Platform Installer-uppgift

      Du kan hitta en uppgift enklare med hjälp av söktextrutan.

  3. På fliken Uppgifter i versionspipelinen väljer du + ikonen i avsnittet Kör på agent . Välj visual studiotestaktiviteten och välj Lägg till.

    Lägga till en Visual Studio-testuppgift

  4. Om du har lagt till uppgiften Visual Studio Test Platform Installer i din pipeline ändrar du inställningen Testplattformsversion i avsnittet Körningsalternativ i Visual Studio-testuppgiften till Installerad av verktyg Installer.

    Ställa in testplattformsversionen

    Hur gör jag för att skicka parametrar till min testkod från en bygg-pipeline?

  5. Spara versionspipelinen och starta en ny version. Du kan göra detta genom att köa en ny CI-version eller genom att välja Skapa version från listrutan Version i versionspipelinen.

    Skapa en ny version

  6. Om du vill visa testresultaten öppnar du versionssammanfattningen från sidan Versioner och väljer länken Tester .

Nästa steg