Blog > Data Driven com Webdriver
Blog > Data Driven com Webdriver
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.
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
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).
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.