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. Den här artikeln 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.
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.
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
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(); } } }
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 bygger 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). Föregående kodexempel 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ämma 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 agentavbildningar. 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) ochGeckoWebDriver
(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
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.
Välj mallen Azure App Service Deployment (Distribution av Azure App Service) och välj Tillämpa.
I avsnittet Artefakter på fliken Pipeline väljer du + Lägg till. Välj dina byggartefakter och välj Lägg till.
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.
Ö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 .
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.
Du kan hitta en uppgift enklare med hjälp av söktextrutan.
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.
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.
Hur skickar jag parametrar till min testkod från en bygg-pipeline?
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.
Om du vill visa testresultaten öppnar du versionssammanfattningen från sidan Versioner och väljer länken Tester .