Pepino - Anotações

Annotationé um texto predefinido, que possui um significado específico. Permite ao compilador / interpretador saber o que deve ser feito na execução. Pepino tem as seguintes anotações -

  • Given -

    • Ele descreve o pré-requisito para que o teste seja executado.

    • Exemplo - GIVEN Eu sou um usuário do Facebook

  • When -

    • Ele define o ponto de gatilho para qualquer execução de cenário de teste.

    • Exemplo - QUANDO eu inserir "<nome de usuário>"

  • Then -

    • Em seguida, mantém o resultado esperado para o teste a ser executado.

    • Exemplo - ENTÃO o login deve ser bem-sucedido.

  • And -

    • Ele fornece a condição AND lógica entre quaisquer duas instruções. AND pode ser usado em conjunto com as instruções GIVEN, WHEN e THEN.

    • Exemplo - QUANDO eu insiro meu "<nome de usuário>" E insiro minha "<senha>"

  • But -

    • Significa condição OR lógica entre quaisquer duas declarações. OR pode ser usado em conjunto com as instruções GIVEN, WHEN e THEN.

    • Exemplo - ENTÃO o login deve ser bem-sucedido. MAS a página inicial não deve faltar.

  • Scenario -

    • Os detalhes sobre o cenário em teste precisam ser capturados após a palavra-chave “Cenário:”

    • Exemplo -

      Cenário:

      DADO Eu sou um usuário do Facebook

      QUANDO eu entro no meu

      E eu entro no meu

      ENTÃO o login deve ser bem-sucedido.

      MAS a página inicial não deve faltar.

  • Scenario Outline - (a ser abordado mais tarde)

  • Examples - (a ser abordado mais tarde)

  • Background -

    • O histórico geralmente contém instruções sobre o que configurar antes da execução de cada cenário. No entanto, ele é executado após o gancho “Antes” (a ser abordado posteriormente). Portanto, isso é ideal para ser usado para código quando quisermos configurar o navegador da web ou estabelecer a conectividade do banco de dados.

      • Exemplo -

        Fundo:

        Vá para a página inicial do Facebook.

Cenário de Exemplo

Vamos automatizar um cenário para entender melhor as anotações.

Step 1

Crie um projeto de teste Maven denominado como AnnotationTest.

  • Vá para Arquivo → Novo → Outros → Maven → Projeto Maven → Avançar.

  • Forneça a ID do grupo (a ID do grupo identificará seu projeto exclusivamente em todos os projetos).

  • Forneça a Id do artefato (a Id do artefato é o nome do jar sem versão. Você pode escolher qualquer nome que esteja em minúsculas).

  • Clique em Concluir.

  • Abrir pom.xml −

    • Vá para o explorador de pacotes no lado esquerdo do Eclipse.

    • Expanda o projeto AnnotationTest.

    • Localize o arquivo pom.xml.

    • Clique com o botão direito e selecione a opção Abrir com “Editor de Texto”.

  • Adicionar dependência para Selenium - Isso indicará Maven, quais arquivos jar Selenium devem ser baixados do repositório central para o repositório local.

    • Abra pom.xml está no modo de edição, crie a tag de dependências (<dependencies> </dependencies>), dentro da tag do projeto.

    • Dentro da tag de dependências, crie a tag de dependência (<dependency> </dependency>).

    • Forneça as seguintes informações na tag de dependência.

<dependency> 
   <groupId>org.seleniumhq.selenium</groupId> 
   <artifactId>selenium-java</artifactId> 
   <version>2.47.1</version> 
</dependency>
  • Adicionar dependência para Cucumber-Java - Isso indicará Maven, quais arquivos Cucumber devem ser baixados do repositório central para o repositório local.

    • Crie mais uma tag de dependência.

    • Forneça as informações a seguir na tag de dependência.

<dependency> 
   <groupId>info.cukes</groupId> 
   <artifactId>cucumber-java</artifactId> 
   <version>1.0.2</version> 
   <scope>test</scope> 
</dependency>
  • Adicionar dependência para Cucumber-JUnit - Isso indicará Maven, quais arquivos Cucumber JUnit devem ser baixados do repositório central para o repositório local.

    • Crie mais uma tag de dependência.

    • Forneça as seguintes informações na tag de dependência.

<dependency> 
   <groupId>info.cukes</groupId> 
   <artifactId>cucumber-junit</artifactId> 
   <version>1.0.2</version> 
   <scope>test</scope> 
</dependency>
  • Adicionar dependência para JUnit - Isso indicará Maven, quais arquivos JUnit devem ser baixados do repositório central para o repositório local.

    • Crie mais uma tag de dependência.

    • Forneça as seguintes informações na tag de dependência.

<dependency> 
   <groupId>junit</groupId> 
   <artifactId>junit</artifactId> 
   <version>4.10</version> 
   <scope>test</scope> 
</dependency>
  • Verifique os binários.

    • Depois que pom.xml for editado com sucesso, salve-o.

    • Vá para Projeto → Limpar - levará alguns minutos.

Step 2

Crie um pacote chamado Annotation em src/test/java

  • Selecione o projeto recém-criado.

  • Clique com o botão direito e selecione 'Novo'.

  • Selecione a opção como 'Pacote'.

  • Nomeie-o como 'Anotação'.

  • Salve isso.

Step 3

Crie um arquivo de feição chamado annotation.feature.

  • Selecione e clique com o botão direito no esboço do pacote.

  • Clique em 'Novo' arquivo.

  • Dê ao arquivo um nome como outline.feature.

  • Escreva o seguinte texto dentro do arquivo e salve-o.

Feature: annotation 
#This is how background can be used to eliminate duplicate steps 

Background: 
   User navigates to Facebook Given 
   I am on Facebook login page 

#Scenario with AND 
Scenario: 
   When I enter username as "TOM"
   And I enter password as "JERRY" 
   Then Login should fail 

#Scenario with BUT 
Scenario: 
   When I enter username as "TOM" 
   And I enter password as "JERRY" 
   Then Login should fail 
   But Relogin option should be available

Step 4

Crie um arquivo de definição de etapa.

  • Selecione e clique com o botão direito no esboço do pacote.

  • Clique em 'Novo' arquivo.

  • Dê o nome do arquivo como annotation.java

  • Escreva o seguinte texto dentro do arquivo e salve-o.

package Annotation; 

import org.openqa.selenium.By; 
import org.openqa.selenium.WebDriver; 
import org.openqa.selenium.firefox.FirefoxDriver; 

import cucumber.annotation.en.Given; 
import cucumber.annotation.en.Then; 
import cucumber.annotation.en.When; 

public class annotation { 
   WebDriver driver = null; 
   @Given("^I am on Facebook login page$") 
	
   public void goToFacebook() { 
      driver = new FirefoxDriver(); 
      driver.navigate().to("https://www.facebook.com/"); 
   }
	
   @When("^I enter username as \"(.*)\"$") 
   public void enterUsername(String arg1) {   
      driver.findElement(By.id("email")).sendKeys(arg1); 
   }
	
   @When ("^I enter password as \"(.*)\"$") 
   public void enterPassword(String arg1) {
      driver.findElement(By.id("pass")).sendKeys(arg1);
      driver.findElement(By.id("u_0_v")).click(); 
   } 
	
   @Then("^Login should fail$") 
   public void checkFail() {  
      if(driver.getCurrentUrl().equalsIgnoreCase(
         "https://www.facebook.com/login.php?login_attempt=1&lwv=110")){ 
            System.out.println("Test1 Pass"); 
      } else { 
         System.out.println("Test1 Failed"); 
      } 
      driver.close(); 
   }
	
   @Then("^Relogin option should be available$") 
   public void checkRelogin() { 
      if(driver.getCurrentUrl().equalsIgnoreCase(
         "https://www.facebook.com/login.php?login_attempt=1&lwv=110")){ 
            System.out.println("Test2 Pass"); 
      } else { 
         System.out.println("Test2 Failed"); 
      } 
      driver.close(); 
   }
}

Step 5

Crie um arquivo de classe de corredor.

  • Selecione e clique com o botão direito no esboço do pacote.

  • Clique em 'Novo' arquivo.

  • Dê um nome ao arquivo, como runTest.java

  • Escreva o seguinte texto dentro do arquivo e salve-o.

package Annotation; 

import org.junit.runner.RunWith; 
import cucumber.junit.Cucumber; 

@RunWith(Cucumber.class) 
@Cucumber.Options(format = {"pretty", "html:target/cucumber"}) 

public class runTest { }

Step 6

Execute o teste usando a opção -

  • Selecione o arquivo runTest.java no explorador de pacotes.

  • Clique com o botão direito e selecione a opção ‘Run as’

  • Selecione o teste JUnit.

Você observará as seguintes coisas ao executar este arquivo de classe -

  • O Facebook é aberto em uma nova instância do navegador Firefox.

  • TOM será passado como uma entrada para o campo de nome de usuário.

  • JERRY será passado como uma entrada para o campo de senha.

  • O login será clicado.

  • A mensagem será exibida no navegador sobre o login malsucedido.

  • No console, você verá “Test Pass” impresso

  • Resultado da etapa 1. a 5. Será executado novamente para o nome de usuário como "" e a senha como "".