Condividi tramite


Test dell'interfaccia utente con Selenium

Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019

L'esecuzione di test dell'interfaccia utente come parte della pipeline di versione è un ottimo modo per rilevare modifiche impreviste e non deve essere difficile. Questo articolo descrive l'uso di Selenium per testare il sito Web durante una versione di distribuzione continua e l'automazione dei test. Considerazioni speciali che si applicano quando si eseguono test dell'interfaccia utente vengono illustrate nelle considerazioni relative ai test dell'interfaccia utente.

In genere verranno eseguiti unit test nel flusso di lavoro di compilazione e test funzionali (UI) nel flusso di lavoro di rilascio dopo la distribuzione dell'app (in genere in un ambiente di controllo di qualità).

Per altre informazioni sull'automazione del browser Selenium, vedere:

Creare il progetto di test

Poiché non è disponibile alcun modello per i test di Selenium, il modo più semplice per iniziare consiste nell'usare il modello unit test. Questo aggiunge automaticamente i riferimenti al framework di test e consente di eseguire e visualizzare i risultati da Esplora test di Visual Studio.

  1. In Visual Studio aprire il menu File e scegliere Nuovo progetto, quindi scegliere Test e selezionare Progetto di test unitario. In alternativa, aprire il menu di scelta rapida per la soluzione e scegliere Aggiungi, Nuovo progetto e quindi Progetto di test unitario.

  2. Dopo aver creato il progetto, aggiungere i riferimenti ai driver di Selenium e del browser usati per eseguire i test nel browser. Aprire il menu di scelta rapida per il progetto unit test e scegliere Gestisci pacchetti NuGet. Aggiungere i pacchetti seguenti al progetto:

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

    Aggiunta dei pacchetti driver del browser alla soluzione

  3. Crea i tuoi test. Ad esempio, il codice seguente crea una classe predefinita denominata MySeleniumTests che esegue un semplice test nel sito Web Bing.com. Sostituire il contenuto della funzione TheBingSearchTest con il codice Selenium necessario per testare l'app Web o il sito Web. Modificare l'assegnazione del browser nella funzione SetupTest nel browser che si vuole usare per il test.

    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. Eseguire il test Selenium in locale usando Esplora test e verificare che funzioni.

Definire la pipeline di compilazione

Hai bisogno di una pipeline di build di integrazione continua (CI) che esegue i test di Selenium. Per altre informazioni, vedere Creare l'app desktop .NET per Windows.

Creare l'app Web

È necessaria un'app Web da testare. È possibile usare un'app esistente o distribuirne una nella pipeline di versione della distribuzione continua (CD). Nell'esempio di codice precedente vengono eseguiti test su Bing.com. Per informazioni dettagliate su come configurare la propria pipeline di versione per distribuire un'app Web, vedere Distribuire in Azure App Web.

Decidere come distribuire e testare l'app

È possibile distribuire e testare l'app usando l'agente ospitato da Microsoft in Azure o un agente self-hosted installato nei server di destinazione.

  • Quando si usa l'agente ospitato da Microsoft, è consigliabile usare i driver Web Selenium preinstallati negli agenti Windows (agenti denominati Hosted VS 20xx) perché sono compatibili con le versioni del browser installate nelle immagini dell'agente ospitato da Microsoft. I percorsi delle cartelle contenenti questi driver possono essere ottenuti dalle variabili di ambiente denominate IEWebDriver (Internet Explorer), (Google Chrome) ChromeWebDriver e GeckoWebDriver (Firefox). I driver non sono preinstallati su altri sistemi, come ad esempio agenti Linux, Ubuntu e macOS. Vedere anche Considerazioni sul test dell'interfaccia utente.

  • Quando si usa un agente self-hosted distribuito nei server di destinazione, gli agenti devono essere configurati per l'esecuzione interattiva con l'accesso automatico abilitato. Vedi Agenti di compilazione e rilascio e considerazioni sui test dell'interfaccia utente.

Includere il test in una versione

  1. Se non si dispone di una pipeline di distribuzione esistente che distribuisce l'app web:

    • Aprire la pagina Versioni nella sezione Azure Pipelines in Azure DevOps o nell'hub Di compilazione e rilascio in TFS (vedere navigazione nel portale Web) e scegliere l'icona + , quindi scegliere Crea pipeline di versione.

      Creazione di una nuova pipeline di versione

    • Selezionare il modello di distribuzione del servizio app Azure e scegliere Applica.

    • Nella sezione Artefatti della scheda Pipeline scegliere + Aggiungi. Seleziona gli artefatti di compilazione e scegli Aggiungi.

      Selezione degli artefatti

    • Scegliere l'icona del trigger di distribuzione continua nella sezione Artefatti della scheda Pipeline . Nel riquadro Trigger di distribuzione continua abilitare il trigger in modo che venga creata una nuova versione da ogni compilazione. Aggiungere un filtro per il ramo predefinito.

      Configurazione della distribuzione continua

    • Aprire la scheda Attività , selezionare la sezione Fase 1 e immettere le informazioni sulla sottoscrizione e il nome dell'app Web in cui si vuole distribuire l'app e i test. Queste impostazioni vengono applicate all'attività Distribuire Servizio App Azure.

      Configurazione delle variabili

  2. Se si distribuisce l'app e si esegue il test negli ambienti in cui i computer di destinazione che ospitano gli agenti non hanno Installato Visual Studio:

    • Nella scheda Attività della pipeline di rilascio, scegliere l'icona + nella sezione Esegui su agente. Selezionare l'attività Programma di installazione della piattaforma di test di Visual Studio e scegliere Aggiungi. Lasciare tutte le impostazioni ai valori predefiniti.

      Aggiungere un'attività di installazione della piattaforma di test di Visual Studio

      È possibile trovare un'attività più facilmente usando la casella di testo di ricerca.

  3. Nella scheda Attività della pipeline di rilascio, scegliere l'icona + nella sezione Esegui sull'agente. Selezionare l'attività Test di Visual Studio e scegliere Aggiungi.

    Aggiunta di un'attività di test di Visual Studio

  4. Se alla pipeline è stata aggiunta l'attività Programma di installazione della piattaforma di test di Visual Studio, modificare l'impostazione Versione della piattaforma di test nella sezione Opzioni di esecuzione dell'attività Test di Visual Studio su Installato dal programma di installazione degli strumenti.

    Impostazione della versione della piattaforma di test

    Come posso passare parametri al mio codice di test da una build pipeline?

  5. Salvare la pipeline di rilascio e avviare una nuova distribuzione. A tale scopo, è possibile accodare una nuova build CI oppure scegliere Crea rilascio dall'elenco a discesa Rilascio nella pipeline di rilascio.

    Creazione di una nuova versione

  6. Per visualizzare i risultati del test, aprire il riepilogo della versione nella pagina Versioni e scegliere link Test.

Passaggi successivi