Teste da IU com o Selenium

Azure DevOps Services | Azure DevOps Server 2020 | Azure DevOps Server 2019 | TFS 2018

Nota

No Microsoft Team Foundation Server (TFS) 2018 e nas versões anteriores, os oleodutos de construção e libertação são chamados definições, as corridas são chamadas de construções, as ligações de serviço são chamadas pontos finais de serviço, as fases são chamadas de ambientes, e os empregos são chamados de fases.

Realizar testes de interface de utilizador (UI) como parte do oleoduto de libertação é uma ótima maneira de detetar alterações inesperadas, e não precisa ser difícil. Este tópico descreve a utilização de Selénio para testar o seu website durante uma libertação contínua e automatização de testes. Considerações especiais que se aplicam ao executar testes de UI são discutidas em considerações de testes de UI.

Normalmente, irá realizar testes de unidade no seu fluxo de trabalho de construção, e testes funcionais (UI) no seu fluxo de trabalho de libertação após a implementação da sua aplicação (geralmente para um ambiente QA).

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

Crie o seu projeto de teste

Como não existe um modelo para testes de Selénio, a maneira mais fácil de começar é usar o modelo de Teste de Unidade. Isto adiciona automaticamente as referências de estrutura de teste e permite-lhe executar e visualizar os resultados do Visual Studio Test Explorer.

  1. No Estúdio Visual, abra o menu 'Ficheiro' e escolha Novo Projeto, em seguida, escolha Test e selecione Projeto de Teste unitário. Em alternativa, abra o menu de atalho para a solução e escolha Adicionar então Novo Projeto e, em seguida, Projeto de Teste unitário.

  2. Após a criação do projeto, adicione as referências do selénio e do controlador do navegador utilizadas pelo navegador para executar os testes. Abra o menu de atalho para o projeto De Teste unitário e escolha Gerir pacotes NuGet. Adicione os seguintes pacotes ao seu projeto:

    • Selénio.WebDriver
    • Selenium.Firefox.WebDriver
    • Selenium.WebDriver.ChromeDriver
    • Selenium.WebDriver.IEDriver

    Adding the browser driver packages to your solution

  3. Crie os seus testes. Por exemplo, o seguinte código cria uma classe padrão chamada MySeleniumTests que realiza um teste simples no website Bing.com. Substitua o conteúdo da função TheBingSearchTest pelo código Selénio necessário para testar a sua aplicação web ou website. Altere a atribuição do navegador na função Configurar para o navegador que pretende utilizar 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. Faça o teste de Selénio localmente usando o Test Explorer e verifique se funciona.

Defina o seu oleoduto de construção

Você precisará de um pipeline de integração contínua (CI) que constrói os seus testes de Selénio. Para obter mais detalhes, consulte a sua aplicação de ambiente de trabalho .NET para Windows.

Crie a sua aplicação web

Vai precisar de uma aplicação web para testar. Pode utilizar uma aplicação existente ou implementar uma no seu pipeline de libertação contínua (CD). O código de exemplo acima executa testes contra Bing.com. Para obter detalhes sobre como configurar o seu próprio oleoduto de lançamento para implementar uma aplicação web, consulte Implementar para Azure Web Apps.

Decida como irá implementar e testar a sua aplicação

Pode implementar e testar a sua aplicação utilizando o agente hospedado pela Microsoft em Azure ou um agente auto-hospedado que instalou nos servidores-alvo.

  • Ao utilizar o agente hospedado pela Microsoft, deve utilizar os controladores web selénio que estão pré-instalados nos agentes windows (agentes chamados Hosted VS 20xx) porque 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 estes controladores podem ser obtidos a partir das variáveis ambientais denominadas IEWebDriver (Internet Explorer), ChromeWebDriver (Google Chrome) e GeckoWebDriver (Firefox). Os condutores não estão pré-instalados em outros agentes como linux, Ubuntu e agentes macOS. Consulte também considerações de testes de UI.

  • Ao utilizar um agente auto-hospedado que implementa nos servidores-alvo, os agentes devem ser configurados para funcionarem interativamente com o início de sessão automático ativado. Consulte agentes de construção e de libertação e considerações de teste de UI.

Incluir o teste em um lançamento

  1. Se não tiver um pipeline de lançamento existente que implemente a sua aplicação web:

    • Abra a página De versões na secção Azure Pipelines em Azure DevOps ou no centro de Lançamento de Construção & em TFS (ver navegação do portal Web) e escolha o + ícone e, em seguida, escolha Criar o gasoduto de desbloqueio.

      Creating a new release pipeline

    • Selecione o modelo de implementação do serviço de aplicação da Azure e escolha Aplicar.

    • Na secção Artefactos do separador Pipeline , escolha + Adicionar. Selecione os seus artefactos de construção e escolha Adicionar.

      Selecting the artifacts

    • Escolha o ícone de disparo de implementação contínua na secção artefactos do separador Pipeline . No painel de acionamento contínuo, ative o gatilho de modo a que seja criado um novo desbloqueio a partir de cada construção. Adicione um filtro para o ramo predefinido.

      Configuring continuous deployment

    • Abra o separador Tarefas , selecione a secção Fase 1 e introduza as informações de subscrição e o nome da aplicação web onde pretende implementar a aplicação e os testes. Estas definições são aplicadas à tarefa do Serviço de Aplicações Deploy Azure .

      Configuring the variables

  2. Se estiver a implementar a sua aplicação e testar ambientes onde as máquinas-alvo que acolhem os agentes não tenham o Visual Studio instalado:

    • No separador Tarefas do pipeline de desbloqueio, escolha o + ícone na secção Executar no agente . Selecione a tarefa do Instalador da Plataforma de Teste do Estúdio Visual e escolha Adicionar. Deixe todas as definições nos valores predefinidos.

      Adding a Visual Studio Test Platform Installer task

      Pode encontrar uma tarefa mais facilmente utilizando a caixa de texto de pesquisa.

  3. No separador Tarefas do pipeline de desbloqueio, escolha o + ícone na secção Executar no agente . Selecione a tarefa de Teste do Estúdio Visual e escolha Adicionar.

    Adding a Visual Studio Test task

  4. Se adicionou a tarefa do Instalador da Plataforma de Teste do Estúdio Visual ao seu pipeline, altere a definição da versão da plataforma de Teste na secção de opções de execução da tarefa de Teste do Estúdio Visual para Instalar pelo Instalador de Ferramentas.

    Setting the test platform version

    Como passo parâmetros para o meu código de teste a partir de um oleoduto de construção?

  5. Guarde o gasoduto de desbloqueio e inicie um novo lançamento. Pode fazê-lo fazendo fila de uma nova construção de CI, ou escolhendo o desbloqueiocreate a partir da lista de lançamentos no pipeline de lançamento.

    Creating a new release

  6. Para ver os resultados dos testes, abra o resumo de lançamento na página Versões e escolha o link Testes .

Passos seguintes