.NET

Ξ Deixe um comentário

Teste automatizado – Selenium Webdriver com Visual Studio

publicado por Vanessa Gomes

Uma prática cada vez mais utilizada é o desenvolvimento de sistemas orientado a teste (TDD – Test Driven Development).

O TDD é uma técnica de desenvolvimento de sistemas onde deve ser realizado todo o planejamento de testes contemplando as rotinas principais do sistema, garantindo assim uma maior qualidade no produto final.

Kent Beck, em seu livro “Test Driven Development: By Example“, de 2002, já apontou o caminho, pois a sua prática, o Test Driven Development (TDD) prega que devemos repetir o ciclo:

  1. Adicionar um teste;
  2. Executar os testes e notar as falhas;
  3. Escrever código para passar nos testes;
  4. Executar os testes automatizados e repetir 3 e 4 até que consiga sucesso;
  5. Refatorar o código gerado;
  6. Repita todo o ciclo até concluir todos os requisitos.

O NUnit é um framework para testes unitários para todas as linguagens da plataforma .NET. no qual faz parte do universo do Visual Studio.

O Selenium é um Framework para testes de interfaces utilizando Browsers como Chrome, Firefox e etc. O Selenium será a ferramenta que teremos como ênfase na nossa jornada de automatização de teste nesse tutorial.

Dois componentes são importantes para gerar e executar testes com SELENIUM: Selenium RC (Controle Remoto) e Selenium IDE (Ambiente de desenvolvimento integrado).

O Selenium RC é um servidor escrito em Java. Ele recebe chamadas http e executa os testes. As chamadas vêm dos testes unitários (com JUnit e o NUnit, por exemplo).

O Selenium IDE é uma extensão do  Firefox.

A ferramenta auxilia a criação de casos de testes, pois grava as ações do usuário, as ações podem ser transformadas em código em várias linguagens, entre elas Java e .Net. 

Utilizando o Selenium WebDriver

O WebDriver é a classe base do Selenium. A partir dela, podemos realizar diversas funcionalidades de navegação; por exemplo: abrir um browser, fechar um browser, fechar uma aba de um browser, entre outras.

WebDriver é uma API orientada a objetos compactos que podem interage diretamente com o aplicativo em testes. Utiliza a compatibilidade nativa navegador para automação sem o uso de qualquer entidade periférica.

Características do WebDriver

1) “Interface WebDriver”, o que representa um navegador da web idealizada usado para o teste.Três categorias de métodos nesta classe.

  • Controle para navegador
  • webelements selecção
  • depuração

Múltiplas Linguagens Encadernação APOIO

APOIO Browsers múltiplos

Como configurar o ambiente para iniciar os testes automatizados utilizando o Selenium no Microsoft Visual Studio?

Precisa instalar alguns pacotes no projeto para se utilizar o Selenium como instrumento de automatização dos testes. Através do “Manage NuGet Packages for Solution” vamos instalar os seguintes pacotes abaixo:

  • Seleium.WebDriver: Trata-se de uma ferramenta bastante poderosa, porém leve, para criar scripts de casos de testes automatizados. Com uma simples configuração (descrita abaixo), você pode começar a executar o script usando os métodos do Selenium para lidar com a UI do aplicativo.
    O Selenium WebDriver é gratuito e oferece suporte a diversos tipos de navegadores e sistemas operacionais.

    WebDriver é usada para testes independentes em um único computador, executando um caso de teste por vez (sem paralelismo) e oferecendo suporte aos navegadores Internet Explorer (IE), Firefox (FF) e Google Chrome.

  • Selenium.Support: Classes de suporte para as ligações .NET da API Selenium WebDriver.
  • NUnitTestAdapter É uma extensão que funciona como uma janela de teste de unidade do Visual Studio para permitir a execução de teste integrada em Visual Studio 2012, 2013 e 2015. A versão mais recente, 2.0, é baseada em NUnit 2.6.4 e é compatível com testes desenvolvidos usando NUnit 2.0 a 2.6.4. Suporta todas as versões de VS2012, VS2013 e VS2015.
  • Selenium.WebDriver.ChromeDriver: É um driver para testar no navegador do Chrome do google.

    Obs.: Caso precise testar a aplicação em outros navegadores será preciso instalar o driver referente ao navegador.
    Ex.: Selenium.WebDriver.IEDriver para realizar os testes no Internet Explorer e o Selenium.WebDriver.FirefoxDriver  para realizar os testes no Firefox.

Passo a passo para criar um projeto no Visual Studio

  • Criar um projeto no Visual Studio, após abrir o programa acionar: File > New > Project.
  • No template Visual C# acionaremos o link Test e por fim o projeto Unit Test Project.
  • Escrever o nome do projeto como exemplo “TesteAutomatizado” e acionar OK.
  • Instalar os pacotes indicados anteriormente. Clicar com o botão direito no nome do projeto e clicar em “Manage NuGet Packages for Solution”.

 

    1. Estrutura do código

 

  1. Como iniciar o teste automatizado no Microsoft Visual Studio com Selenium

O que é WebElement? 

O WebElement é uma classe do Selenium representando um elemento HTML. As principais operações de interação em uma página são realizadas através desta interface; por exemplo: interações com caixas de texto, botões, links, entre outras.

WebElement representa um elemento HTML. Os documentos HTML são compostos por elementos HTML. Elementos HTML são escritos com uma marca de início, com uma marca de fim, com o conteúdo entre: <tagname> conteúdo </ tagname>

O elemento HTML é tudo a partir da marca de início para a marca de fim:. <P> Meu primeiro parágrafo HTML </ p> elementos HTML podem ser aninhadas (elementos podem conter elementos). Todos os documentos HTML consistem em elementos HTML aninhadas.

  1. Principais comandos do Selenium Webdriver

Exemplos de como codificar para validação dos elementos:

  • Validar se o elemento está exibido na página:

assertTrue(topicosrecentes.isDisplayed());

  • Validar se o nome do elemento contém o texto:

assertTrue(menusobre.getText().contains(“SOBRE”));

  • Validar se o nome do elemento é igual o texto:

assertTrue(tagwebdriver.getText().equals(“Webdriver”));

  • Atualizar página: navigate().refreseh();

  • Fechar página: quit();

  • Logo que os elementos forem encontrados, atualizaremos a página através do código:

  • Para fechar o browser todas as vezes que cada teste for executado, incluiremos no final um método com a função driver.quit().

 

 

 

  • Maximizar a página.

  • O comando Click() necessariamente clica no botão desejado.

IWebElement element = driver.FindElement(By.Id(“confirmForm”));
element.Click();

 

 

 

 

 

 

 

  • O comando Clear() é usado para apagar informações em campos que você deseja manipular no site.

 

 

 

 

  • O comando Displayed() é usado para que o usuário possa visualizar se o elemento está visível para o utilizador.

 

 

 

 

  • O comando isSelected() verifica se o elemento está selecionado no determinado momento.

 

 

 

 

 

 

  • O comando sendKeys() também é um dos comandos mais utilizados para manipulação; com esse comando, inserimos valores em determinados campos do browser.

IWebElement element = driver.FindElement(By.Id(“userName”));

element.SendKeys(“invalid”);

 

 

 

 

 

  • Comando – element.Submit();

 

 

 

 

  • Comando – element.TagName();


 

 

 

 

  • Navegar a outra pagina:

driver.Navigate().GoToUrl(“http://www.google.com/”);

  • Buscar por Id:

IWebElement element = driver.FindElement(By.Id(“Codigo”));

 

 

 

  • Buscar por Classe:

IWebElement element = driver.FindElement(By.ClassName(“Produto”));

 

 

  • Buscar por Tag:

IWebElement element = driver.FindElement(By.TagName(“input”));

  • Buscar por Nome:

IWebElement element = driver.FindElement(By.Name(“userName”));

  • Buscar por selector CSS:

IWebElement element= driver.FindElement(By.CssSelector(“#food span.ir”));

  • Buscar por XPATH:

IWebElement element= driver.FindElement(By.XPath(“//input[@id=’user’]”));

  • Buscar por texto visible de un HyperLink:

IWebElement element = driver.FindElement(By.LinkText(“enlace”));

  • Buscar por texto visible parcial de un HyperLink:

IWebElement element = driver.FindElement(By.PartialLinkText(“enlace”));

  • Obtener atributos:

IWebElement element = driver.FindElementById(“linkGoogle”);

var url = element.GetAttributes(“href”);

  1. Referência

 

Autor

Atua profissionalmente como Analista de Desenvolvimento e Analista de Teste em Qualidade. - Certificação em ITIL V3 Foundation - CTFL - Certified Tester Foundation Level - SFPC - Scrum Foundation Professional Certificate - DEPC - Devops Essencial Professional Certificate - Linguagens: PHP, SQL, HTML, Java,.NET, Groovy; - Automação de Testes com JUnit, Selenium e Cucumber - Big Data Foundation - Scrum Master (fundamentos),

Vanessa Gomes

Comentários

You must be logged in to post a comment.

Busca

Patrocínio

Publicidade



Siga-nos!

Newsletter: Inscreva-se

Para se inscrever em nossa newsletter preencha o formulário.

Artigos Recentes