Blog > Data Driven com Webdriver

19/jan

Este post irá apresentar o conceito de Data Driven aplicado ao WebDriver com exemplos em linguagem natural e na linguagem Java apresentando: uma forma manual, uma forma com apoio dos frameworks de teste.

O que é Data Driven

Quando criamos um script de teste como, por exemplo, um script de cadastro, informamos os dados que serão utilizados nas caixas de texto. Sempre quando há necessidade de executar o script novamente poderemos ter os seguintes problemas:

  • O registro que utilizamos para o desenvolvimento do script pode estar inutilizável ou não mais presente
  • O registro já existe na base de dados, nos retornando em erro na utilização

Para resolver estes problemas, geralmente, alteramos os dados do script para que ele possa executar sem erros. Mas isso nos gera um outro problema que é a excessiva manutenção do script para a alteração dos dados.

Data Driven, ou como chamamos em português Orientação à Dados, é uma maneira de parametrizarmos os dados do script de teste sem a necessidade de alteração dos dados fixos, uma vez que eles agora viram parâmetros.

A segunda parte que compõe o Data Driven é uma fonte de dados, ou seja, de onde os dados virão para preencher os parâmetros do script de teste.

Para explicarmos na prática como é um script Data Driven, iremos apresentar primeiro como é um script sem Data Driven.

Como é um script sem Data Driven?

Antes de apresentar um script Data Driven iremos colocar um contexto no exemplo.

Exemplo

Você precisa testar se um usuário pertence a determinado grupo de usuários. Com isso teremos um caso de teste, de forma simples:

  • Acessar a página da aplicação
  • Preencher os campos usuário, senha e clicar no botão Login
  • Validar se é apresentado, após o login, o nome do grupo pertencente ao usuário logado

Em um script em português estruturado teremos:

acessar_pagina(“http://exemplo.com/login“)<br>digitar_valor_no_campo(“usuario“, “elias“)<br>digitar_no_campo(“senha“, “123456“)<br>clicar_no_botao(“Login“)<br>validar_resultado(“Admin“)

Com Webdriver, em uma página fictícia, ignorando todos os imports em Java + JUnit teremos o seguinte código.

Nas linhas 17 e 18 estamos preenchendo os campos de usuário e senha com dados fixos no script. Se existir a necessidade de teste com outro usuário para testar outro grupo, teremos que alterar o script mudando os dados de usuário e senha.

O que é um script com Data Driven

Fonte de Dados

Já sabemos que, para tornar um script Data Driven, necessitamos alterar os dados fixos por parâmetros. Mas você já se perguntou de onde os dados irão surgir?

Todos os dados/registros que necessitarmos devem ser provenientes de alguma fonte de dados. São exemplos de fontes de dados:

  • Uma array ou lista de dados dentro do próprio código
  • O retorno de uma consulta num banco de dados
  • Um arquivo .txt, .csv ou .xls
  • Um serviço SOAP ou REST

Então já sabemos que, para transformar um script sem Data Driven em um com precisamos adicionar alguma fonte de dados externa.

Exemplo com JUnit

Neste exemplo utilizaremos o suporte do JUnit para apresentar um script parametrizado (Data Driven) onde, automaticamente, executara quantas vezes a fonte de dados possuir registros.

A linha 27 apresenta uma anotação chamada @RunWith, que indica ao script de teste que ele deve se preparar para executar com parâmetros (Data Driven)

As linhas 30, 31 e 32 apresentam três atributos referentes ao usuário, senha e resultado para comparação. Eles são necessários porque terão a responsabilidade de passar os dados da fonte de dados para o script.

As linhas 34 a 38 apresentam um construtor. Ele é o responsável direto de receber os dados dinamicamente da fonte de dados e passar os mesmos para os atributos.

Na linha 45 e 46 note que, a invés dos dados fixos, temos os atributos de usuário senha, que estarão com o valor referente ao item da fonte de dados no momento da execução.

A linha 49 apresenta a utilização de mais um atributo para comparar o valor do resultado que vem a fonte de dados contra o resultado em tela para o login daquele usuário.

As linhas 54 a 61 apresentam a fonte de dados, neste caso como um array no próprio script. Analisaremos melhor este item.

Note que possuímos dois registros, um para o “elias” e outro para o “cristiano”, logo o script irá executar duas vezes, um para cada registro.

A anotação @Parameters diz para o método que ele conterá os registros necessários para a execução, onde este método retorna um array de objetos (os registros que serão associados aos atributos na mesma sequencia que eles foram definidos).

Conclusão

Neste post, de forma resumida, aprendemos o que é Data Driven e como aplica-lo na prática com a utilização de Java e JUnit.

Se você tentar reproduzir o código deste post lembre-se que:

  • A pagina colocada aqui não existe
  • Os imports a diversas classes foram ignorados
  • Você precisa adicionar as bibliotecas do Webdriver no classpath de sua IDE favorita

POSTS RELACIONADOS

AGENDA

CURSOS RELACIONADOS