Curso de Selenium WebDriver – Aula 3 – Validações

Olá pessoal,

Vamos a mais uma aula do curso de Selenium WebDriver! Estão preparados? rs

Então… existem basicamente 2 formas de realizar validações sobre um cenário de testes automatizados com o Selenium, independente dele ser IDE ou WebDriver. São eles: assert e verify. Cada um deles deve ser utilizado para um objetivo específico e por isso é importante entender a diferença entre eles.

  • Assert = Realiza a validação de um escopo de teste (condição), interrompe a execução do teste e reporta a falha.
  • Verify = Realiza a validação de um escopo de teste (condição), prossegue com o teste e reporta as falhas.

Apesar de o método waitFor ser um comando de chamada em espera, ele também serve para verificar se um elemento está presente na tela. No entanto, para que o defeito seja reportado, é necessário que a página ultrapasse o limite de tempo estabelecido para o carregamento do(s) elemento(s). Neste quesito, ele pode se comportar como uma validação do tipo Assert.

Um outro instrumento poderoso para realizar a validação de cenários de testes automatizados com o Selenium, é o método findElement, o qual é nativo do framework. Através de seu uso é possível verificar a presença e ausência de elementos da tela. Neste quesito, ele pode se comportar como uma validação do tipo Verify.5

Dito isto, é necessário também escolher aquele que for mais adequado à validação em questão. São exemplos:

  • Assert =
    1. Quando o executor está analisando o resultado da execução do teste por unidade, no momento em que ele ocorre, seja para isolar o motivo do erro/defeito/falha ou para observar aspectos como desempenho e tempo de recuperação do  sistema;
    2. Quando se está testando rotinas automáticas (triggers), pois esses são procedimentos que devem realizar passos em sequência linear.
  • Verify =
    1. Quando se está executando uma bateria longa de testes;
    2. Quando se está realizando teste de regressão;
    3. Quando se está executando um conjunto de testes que são associados.
  • waitFor =
    1. Quando o programador/tester necessita saber o tempo de resposta do carregamento de elementos da tela;
    2. Quando se está testando aspectos do sistema como eventos (exibição de popups) .
  • findElement =
    1. Quando se está verificando a ausência ou presença de elementos da tela, sem que isto esteja diretamente condicionado ao aspecto/mecanismo de carregamento deles na página.

É importante lembrar que esses são apenas exemplos de validações. A aplicação dos métodos de validação não está restrito a esses cenários.

As classes de testes implementadas com o auxílio do Selenium WebDriver devem utilizar classes e métodos próprios à realização de validações. Elas podem pertencer à linguagem/plataforma de desenvolvimento do teste (Java, C#, Ruby, etc) ou serem nativas do Selenium. A maioria delas pertencem à bibliotecas de terceiros, a exemplo do JUnit, NUnit e Apache. Mas em suma, a maior parte das validações serão implementadas com os métodos presentes no motor de testes automatizados integrado ao Selenium WebDriver (JUnit, NUnit, etc.).

Exemplos de métodos disponibilizados pelo JUnit, através da classe Assert são: assertTrue, assertFalse, assertEquals, assertSame. Eles permitem validar uma condição de teste a exemplo do preenchimento de um campo obrigatório com a chamada do método do assertNull na seguinte forma: Assert.assertNull(nome do elemento, objeto do elemento) ou a corretude de uma mensagem com o seguinte código Assert.assertEquals(“mensagem esperada”, variável atual).

metodosAssertÉ possível integrar as formas de validação com a função de tornar o testes mais completos. Um exemplo é exibido a seguir:seleniumAssert

Referências:
http://docs.seleniumhq.org/docs/06_test_design_considerations.jsp#validating-results

http://software-testing-tutorials-automation.blogspot.com.br/2014/02/selenium-webdriver-verify-element.html

http://www.dclick.com.br/2011/12/14/testes-unitarios-com-junit-de-volta-ao-basico/

Anúncios

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

w

Conectando a %s