Teste de interface do usuário com Selenium

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

Executar testes de interface do usuário como parte do pipeline de lançamento é uma ótima forma de detectar alterações inesperadas e não precisa ser difícil. Este tópico descreve o uso do Selenium para testar seu site durante uma versão de implantação contínua e automação de teste. Considerações especiais que se aplicam ao executar testes de interface do usuário são discutidas em considerações de teste de interface do usuário.

Normalmente, você executará testes de unidade em seu fluxo de trabalho de build e testes funcionais (IU) em seu fluxo de trabalho de lançamento depois que seu aplicativo for implantado (geralmente, em um ambiente de QA).

Para obter mais informações sobre a automação do navegador Selenium, confira:

Criar seu projeto de teste

Como não há modelo para teste de Selenium, o modo mais fácil de começar é usar o modelo de Teste de Unidade. Isso adiciona automaticamente as referências da estrutura de teste e permite que você execute e exiba os resultados do Gerenciador de Testes do Visual Studio.

  1. No Visual Studio, abra o menu Arquivo e escolha Novo Projeto, escolha Testar e selecione Projeto de Teste de Unidade. Como alternativa, abra o menu de atalho para a solução e escolha Adicionar, então Novo Projeto e, por fim, Projeto de Teste de Unidade.

  2. Depois que o projeto for criado, adicione as referências de driver do Selenium e do navegador usadas pelo navegador para executar os testes. Abra o menu de atalho do projeto de teste de unidade e escolha Gerenciar Pacotes NuGet. Adicione os seguintes pacotes ao seu projeto:

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

    Como adicionar os pacotes de driver do navegador à sua solução

  3. Crie seus testes. Por exemplo, o código a seguir cria uma classe padrão chamada MySeleniumTests que executa um teste simples no site do Bing.com. Substitua o conteúdo da função TheBingSearchTest pelo código Selenium necessário para testar seu aplicativo Web ou site. Altere a atribuição do navegador na função SetupTest para o navegador que você deseja usar para o teste.

    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. Execute o teste Selenium localmente usando Gerenciador de Testes e verifique se ele funciona.

Definir o pipeline de build

Você precisará de um pipeline de build de CI (integração contínua) que crie seus testes do Selenium. Para mais detalhes, confira Criar seu aplicativo da área de trabalho do .NET para Windows.

Criar seu aplicativo Web

Você precisará de um aplicativo Web para testar. Você pode usar um aplicativo existente ou implantar um em seu pipeline de lançamento de CD (implantação contínua). O código de exemplo acima executa testes em Bing.com. Para obter detalhes sobre como configurar seu próprio pipeline de lançamento para implantar um aplicativo Web, confira Implantar nos Aplicativos Web do Azure.

Decidir como você implantará e testará seu aplicativo

Você pode implantar e testar seu aplicativo usando o agente hospedado pela Microsoft no Azure ou um agente auto-hospedado que você instala nos servidores de destino.

  • Ao usar o agente hospedado pela Microsoft, você deve usar os drivers da Web Selenium pré-instalados nos agentes do Windows (agentes chamados Hospedados VS 20xx) porque eles são compatíveis com as versões do navegador instaladas nas imagens do agente hospedado pela Microsoft. Os caminhos para as pastas que contêm esses drivers podem ser obtidos das variáveis de ambiente chamadas IEWebDriver (Internet Explorer), ChromeWebDriver (Google Chrome) e GeckoWebDriver (Firefox). Os drivers não são pré-instalados em outros agentes, como agentes Linux, Ubuntu e macOS. Confira também as considerações sobre o teste de interface do usuário.

  • Ao usar um agente auto-hospedado que você implanta em seus servidores de destino, os agentes devem ser configurados para serem executados interativamente com o logon automático habilitado. Confira Compilar e liberar agentes e Considerações de teste de interface do usuário.

Incluir o teste em uma versão

  1. Se você não tiver um pipeline de lançamento que implante seu aplicativo Web:

    • Abra a página Versões na seção Azure Pipelines no Azure DevOps ou no Hub de Build e Lançamento no TFS (confira navegação no portal da Web), escolha o ícone + e escolha Criar pipeline de lançamento.

      Como criar um pipeline de lançamento

    • Selecione o modelo Implantação de Serviço de Aplicativo do Azure e escolha Aplicar.

    • Na seção Artefatos da guia Pipeline, escolha + Adicionar. Selecione seus artefatos de build e escolha Adicionar.

      Selecionar os artefatos

    • Escolha o ícone Gatilho de implantação contínua na seção Artefatos da guia Pipeline. No painel Gatilho de implantação contínua, habilite o gatilho para que uma versão seja criada com base em cada build. Adicione um filtro para o branch padrão.

      Como configurar a implantação contínua

    • Abra a guia Tarefas, selecione a seção Fase 1 e insira suas informações de assinatura e o nome do aplicativo Web em que você deseja implantar o aplicativo e os testes. Essas configurações são aplicadas à tarefa Implantar Serviço de Aplicativo do Azure.

      Configurar as variáveis

  2. Se você estiver implantando seu aplicativo e testando em ambientes em que os computadores de destino que hospedam os agentes não têm o Visual Studio instalado:

    • Na guia Tarefas do pipeline de lançamento, escolha o ícone + na seção Executar no agente. Selecione a tarefa Instalador da Plataforma de Teste do Visual Studio e escolha Adicionar. Deixe todas as configurações nos valores padrão.

      Adicionar uma tarefa do instalador da Plataforma de Teste do Visual Studio

      Você pode encontrar uma tarefa com mais facilidade usando a caixa de texto de pesquisa.

  3. Na guia Tarefas do pipeline de lançamento, escolha o ícone + na seção Executar no agente. Selecione a tarefa de Teste do Visual Studio e escolha Adicionar.

    Adicionar uma tarefa de Teste do Visual Studio

  4. Se você adicionou a tarefa Instalador da Plataforma de Teste do Visual Studio ao pipeline, altere a configuração De versão da plataforma de teste na seção Opções de execução da tarefa Teste do Visual Studio para Instalado pelo Instalador de Ferramentas.

    Definir a versão da plataforma de teste

    Como faço para passar parâmetros para meu código de teste de um pipeline de build?

  5. Salve o pipeline de lançamento e inicie uma nova versão. Você pode fazer isso enfileirando um novo build de CI ou escolhendo Criar versão na lista suspensa Versão no pipeline de lançamento.

    Como criar uma versão

  6. Para exibir os resultados de teste, abra o resumo da versão na página Versões e escolha o link Testes.

Próximas etapas