Teste da IU com o Selenium
Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019
Executar testes de interface do usuário (UI) como parte do pipeline de liberação é uma ótima maneira de detetar alterações inesperadas e não precisa ser difícil. Este artigo 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 compilação e testes funcionais (UI) em seu fluxo de trabalho de liberação depois que seu aplicativo for implantado (geralmente em um ambiente de QA).
Para obter mais informações sobre a automação do navegador Selenium, consulte:
Crie seu projeto de teste
Como não há um modelo para o teste de Selenium, a maneira 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.
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 Novo Projeto e, em seguida, Projeto de Teste de Unidade.
Depois que o projeto for criado, adicione o Selenium e as referências de driver do navegador usadas pelo navegador para executar os testes. Abra o menu de atalho para o 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
Crie os seus testes. Por exemplo, o código a seguir cria uma classe padrão chamada MySeleniumTests que executa um teste simples no site 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(); } } }
Execute o teste Selenium localmente usando o Test Explorer e verifique se ele funciona.
Defina seu pipeline de compilação
Você precisa de um pipeline de construção de integração contínua (CI) que crie seus testes de Selenium. Para obter mais informações, consulte Criar seu aplicativo de área de trabalho .NET para Windows.
Crie seu aplicativo Web
Você precisa de um aplicativo Web para testar. Você pode usar um aplicativo existente ou implantar um em seu pipeline de liberação de implantação contínua (CD). O exemplo de código anterior executa testes contra Bing.com. Para obter detalhes sobre como configurar seu próprio pipeline de liberação para implantar um aplicativo Web, consulte Implantar em Aplicativos Web do Azure.
Decida como 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 Hosted 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 a partir das variáveis de ambiente denominadas
IEWebDriver
(Internet Explorer),ChromeWebDriver
(Google Chrome) eGeckoWebDriver
(Firefox). Os drivers não são pré-instalados em outros agentes, como Linux, Ubuntu e macOS. Consulte também Considerações sobre testes 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. Consulte Considerações sobre agentes de compilação e liberação e testes de interface do usuário.
Incluir o teste em uma versão
Se você não tiver um pipeline de versão existente que implante seu aplicativo Web:
Abra a página Versões na seção Pipelines do Azure no Azure DevOps ou o hub Build & Release no TFS (consulte Navegação no portal da Web) e escolha o + ícone e, em seguida, escolha Criar pipeline de versão.
Selecione o modelo de Implantação do Serviço de Aplicativo do Azure e escolha Aplicar.
Na seção Artefatos da guia Pipeline, escolha + Adicionar. Selecione seus artefatos de construção e escolha Adicionar.
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 nova versão seja criada a partir de cada compilação. Adicione um filtro para a ramificação padrão.
Abra o separador Tarefas , selecione a secção Fase 1 e introduza as informações da sua subscrição e o nome da aplicação Web onde pretende implementar a aplicação e os testes. Essas configurações são aplicadas à tarefa Implantar o Serviço de Aplicativo do Azure.
Se você estiver implantando seu aplicativo e testes em ambientes onde as máquinas de destino que hospedam os agentes não têm o Visual Studio instalado:
Na guia Tarefas do pipeline de versão, escolha o + ícone na seção Executar no agente. Selecione a tarefa Visual Studio Test Platform Installer e escolha Add. Deixe todas as configurações nos valores padrão.
Você pode encontrar uma tarefa mais facilmente usando a caixa de texto de pesquisa.
Na guia Tarefas do pipeline de versão, escolha o + ícone na seção Executar no agente. Selecione a tarefa Teste do Visual Studio e escolha Adicionar.
Se você adicionou a tarefa Instalador da plataforma de teste do Visual Studio ao seu pipeline, altere a configuração 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.
Como faço para passar parâmetros para meu código de teste de um pipeline de compilação?
Salve o pipeline de liberação e inicie uma nova versão. Você pode fazer isso enfileirando uma nova compilação de CI ou escolhendo Criar versão na lista suspensa Versão no pipeline de versão.
Para visualizar os resultados do teste, abra o resumo da versão na página Versões e escolha o link Testes .