Guia de automatização de testes

De MSTECH wiki
Revisão de 19h55min de 7 de dezembro de 2016 por Andre.iguera (Discussão | contribs) (Principais funções)

Ir para: navegação, pesquisa
Versão 0.1 - Em desenvolvimento

Introdução

Este guia visa reunir as principais informações sobre automatização de testes, assim como suas ferramentas.

Automação ou automatização?

Ambos são aceitáveis, mas a forma "automatização" é preferível por ser um substantivo deverbal de "automatizar", enquanto "automação" é um aportuguesamento do termo inglês "automation".

Materiais de suporte

Ferramentas

Selenium IDE

Sobre o Selenium IDE

Selenium IDE é um ambiente de desenvolvimento integrado para os testes com Selenium. Foi desenvolvido como uma extensão do Firefox e permite gravar, editar e depurar os testes.

Instalação

O Selenium IDE está disponível em https://addons.mozilla.org/pt-br/firefox/addon/selenium-ide/

Plugins

O Selenium IDE possui muitos plugins que adicionam novas e úteis funcionalidades. Os plugins estão disponíveis para download em http://www.seleniumhq.org/download/ . Segue a lista dos principais plugins:

Principais funções

As funções do Selenium IDE tem a seguinte estrutura: função(parâmetro1 , parâmetro2).

A função é selecionada no campo Comando.

O parâmetro1 é informado no campo Alvo.

O parâmetro2 é informado no campo Valor.

A quantidade de parâmetros depende da função selecionada.

Segue a lista com as principais funções:

Função Descrição
open(URL) Abre uma URL
type(locator,value) Insere um valor no elemento informado
click(locator) Clica em um elemento
storeText(locator,variável) Armazena um texto em uma variável
storeEval(script,variável) Armazena o resultado de um script em variável
fireEvent(locator, enventName) Simula um evento (focus, blur)
sendKeys(locator, value) Simula o evento keystroke em um elemento, como se digitasse o valor tecla por tecla.
assertText(locator, pattern) Confere se o texto está no elemento informado
assertValue(locator,pattern) Confere se o texto está no elemento informado
assertTextPresent(pattern) Retorna verdadeiro se o texto da tela corresponder ao texto informado
assertAttribute(attibuteLocator,pattern) Faz a asserção do pattern informado no atributo. Retorna verdadeiro se a asserção for correta.
waitForTextNotPresent(pattern) Aguarda o texto informado não estar disponível na tela
waitForValue(locator,pattern) Aguarda um valor em um elemento
forXml(file) Caminho do arquivo XML. Exemplo: file://C:/testdata.xml
endForXml() Finaliza o For do Xml. É colocado no final do bloco de código iniciado pelo comando forXml.

Adicionando novas funções

Você pode adicionar novas funções no Selenium IDE. Para isso, você deve criar a função em javascript e adicionar seu caminho no campo Opções > Opções > Extensões do Selenium Core (user-extensions.js).

Algumas extensões úteis podem ser encontradas em Funções do Selenium IDE

Localizando elementos com XPath

O XPath é uma linguagem de consulta, semelhante a expressão regular, para pesquisa em documentos com estrutura XML (como HTML por exemplo). É um recurso extremamente útil e muito utilizado durante a criação de scripts de testes de software em plataforma web. Caracteres:

/ (barra): Pesquisa a partir da raiz da árvore.

// (duas barras): Pesquisa em toda a árvore.

[ ] (colchetes): Definição das propriedades de um elemento.

@ (arroba)Propriedade do elemento.

* (asterisco): Todos os elementos.


Exemplo: //div[@id="pswd_info"]/ul/li[@id="letra"]@class

Descrição: Está pesquisando em toda a árvore uma DIV que tenha o atributo ID igual a "pswd_info". Encontrada a DIV, vai até a primeira UL, depois pesquisa pela LI que contenha o atributo ID igual a "letra". Encontrado esse elemento, está setando o atributo class.


Selenium Webdriver

Sobre 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.

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.

Principais funções

Função Descrição
get(“url”); Abrir o browser
navigate().refresh(); Atualizar a página
quit(); Fechar a página
driver.findElement(By.id(“Entrar”)).click(); Clica no botão
driver.manage().window().maximize(); Maximizar janela
driver.findElement(By.id(“Nome”)).clear(); Apaga informações de um campo
WebElement elemento = driver.findElement(By.id(“ID do elemento”)); Encontrar elemento pelo ID
WebElement element = driver.findElement(By.className(“nome classe”)); Encontrar elemento pela classe
assertTrue(topicosrecentes.isDisplayed()); Validar se o elemento está exibido na página
assertTrue(menusobre.getText().contains(“SOBRE”)); Validar se o nome do elemento contém o texto
assertTrue(tagwebdriver.getText().equals(“Webdriver”)); Validar se o nome do elemento é igual o texto
driver.findElement(By.id(“ConfirmaNome”)).isDisplayed(); É usado para que o usuário possa visualizar se o elemento está visível para o utilizador
driver.findElement(By.id(“ConfirmaNome”)).isEnabled(); Usado para verificar se o elemento está ativo na tela em determinado momento, é muito usado em fluxo de sites
driver.findElement(By.id(“SexoM”)).isSelected(); Verifica se o elemento está selecionado no determinado momento
driver.findElement(By.id(“Nome”)).sendKeys(“André Iguera”); Com esse comando, inserimos valores em determinados campos do browser
Thread.sleep(5000); Aguardar um tempo (ms)

Referências