Parametrização de Dados para Automação de Teste – Parte 4

Série de posts

Este post faz parte de uma série chamada Parametrização de Dados de Teste!
Clique neste link para acessar a série de posts, ou acesse pelo menu Série de Posts.

Pré-Condição

Leia novamente e exercite o post Parametrização de Dados para Automação de Teste – Parte 2: Data Driven com JUnit para relembrar como funciona o Data Driven com JUnit.

JUnit Params

Página: http://pragmatists.github.io/JUnitParams
GitHub: https://github.com/Pragmatists/JUnitParams

Ele é um projeto open source que adiciona um executor (runner) que torna a parametrização de dados com JUnit (versão => 4.6) mais fácil. São algumas das diferenças entre a parametrização do JUnit versus JUnit Params:

  • os parâmetros passam a ser nos métodos de teste e não na classe
  • menos código para parametrizar os testes
  • podemos ter, na mesma classe de teste, métodos parametrizados e não parametrizados
  • os parâmetros podem ser passados através de um arquivo .csv
  • você pode criar uma classe concentrando os dados parametrizados

Como parametrizar os testes usando um arquivo .csv

1. Adicionar a biblioteca do JUnit Params

Adicionar a biblioteca nas dependências do seu projeto:

Maven

Gradle

2. Criar o arquivo .csv (massa de dados)

Antes de escrever o código com os parâmetros é necessário que você tenha a massa de dados já criada.
Seguindo o mesmo exemplo da série de posts, temos as seguintes informações que estão no arquivo .csv separadas por vírgula ( , ):

  • Nome
  • Cidade
  • Faixa de idade
  • Resultado

Conteúdo do arquivo .csv

Observação: neste exemplo não estou usando cabeçalhos no arquivo. No final deste post há um exemplo utilizando um cabeçalho.

3. Criar um método de teste com parâmetros

O método de teste deve ser público, sem retorno e, neste caso, ter a quantidade de parâmetros iguais as colunas do arquivo .csv

O nome dos atributos não importa, mas é recomendado que ele seja facilmente lembrado e associado ao que a informação significa.

4. Adicionar anotação de teste

Para que seja necessário carregar as informações do arquivo .csv devemos usar a anotação @FileParameters. Ela recebe como parâmetro o local (caminho completo) e nome do arquivo.

5. Associação dos dados

Utilizar o nome das variáveis, que são os parâmetros do método de teste, dentro do script de teste.

6. Adicionar Runner

O último passo é adicionar o runner (executor) customizado do JUnit Params. Como ele altera a forma de execução interna do JUnit ele se faz necessário para que as funcionalidades realmente funcionem durante a execução, como a leitura dos dados no arquivo que estamos fazendo.

A anotação @RunWith(JUnitParamsRunner.class) deve ir acima da linha com o nome da classe de teste.

Código completo

Visualize o projeto no GitHub: https://github.com/eliasnogueira/parametrizacao-script-teste

Utilizando um cabeçalho no arquivo .csv

Se você deseja adicionar um cabeçalho ao arquivo .csv e fazer com que ele não seja utilizado como uma informação dentro do script de teste siga estes passos:

  • Adicione os cabeçalhos no arquivo .csv
  • Na anotação @FileParameters:
    • adicione o atributo value e associe com o caminho completo e nome do arquivo .csv
    • adicionar o atributo mapper e associe com a classe CsvWithHeaderMapper.class

O mapper é o tipo de mapeamento que será feito ao ler o arquivo .csv, neste caso iremos informar para a anotação que existe um header (cabeçalho) no arquivo, e este deve ser ignorado. Por isso informamos a classe CsvWithHeaderMapper.class.

Exemplo de código simplificado:

Arquivo csv
Note que agora há um cabeçalho.

Anotação modificada
Note que há dois parâmetros na anotação @FileParameters: value e mapper

 

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *