Selenium fazendo o melhor dos nossos Cucumber (Estrutura BDD)


Neste tutorial você aprenderá como integrar Cucumber fazendo o melhor dos nossos Selenium Driver da Web.

O que é o Cucumber?

Cucumber é uma abordagem de teste que oferece suporte ao Behavior Driven Development (BDD). Ele explica o comportamento do aplicativo em um texto simples em inglês usando a linguagem Gherkin.

Saiba mais em - https://www.guru99.com/cucumber-tutorials.html

O que é o Selenium?

Selenium é uma ferramenta de automação para Teste funcional do aplicativo baseado na web. Selenium suporta diferentes linguagens como java, ruby, python C#, etc.

Saiba mais em - https://www.guru99.com/selenium-tutorial.html

Por que usar Cucumber fazendo o melhor dos nossos Selenium?

Cucumber e Selenium são duas tecnologias populares.

A maioria das organizações utiliza Selenium para testes funcionais. Essas organizações que estão usando Selenium, deseja integrar Selenium fazendo o melhor dos nossos Cucumber as Cucumber faz é fácil ler e entender o fluxo do aplicativo.

Cucumber ferramenta é baseada na estrutura de Desenvolvimento Orientado ao Comportamento que funciona como a ponte entre as seguintes pessoas:

  1. Engenheiro de Software e Analista de Negócios.
  2. Testador manual e testador de automação.
  3. Testador manual e desenvolvedores.

Cucumber Estrutura BDD também beneficia o cliente ao entender o código do aplicativo pois usa a linguagem Gherkin, que está em texto simples. Qualquer pessoa na organização pode compreender o comportamento do software. A sintaxe do Gherkin está em texto simples, legível e compreensível.

Cucumber fazendo o melhor dos nossos Selenium

Pré-requisito para usar Cucumber fazendo o melhor dos nossos Selenium

Antes de começarmos Cucumber Selenium integração, precisamos dos seguintes itens:

  • Selenium arquivos jar:
  • Selenium-servidor autônomo

Pode ser baixado em http://www.seleniumhq.org/download/

Pré-requisito para uso Cucumber fazendo o melhor dos nossos Selenium

Arquivos jar para Cucumber :

  • Cucumber-core
  • Cucumber-html
  • cobertura de código de cobertura
  • Cucumber-Java
  • Cucumber-junta
  • Cucumber-jvm-deps
  • Cucumber-relatório
  • Núcleo Hamcrest
  • Pepino
  • Junito

Pode ser baixado em https://mvnrepository.com/search?q=Cucumber

Você precisa pesquisar os arquivos e baixá-los um por um individualmente.

Por exemplo, mostraremos como baixar um dos arquivos jar, ou seja, “Cucumber-essencial."

Clique no link de download acima. Ele redireciona para o site abaixo. Agora pesquise o jar específico, ou seja, 'Cucumber Core' conforme mostrado na captura de tela abaixo:

Pré-requisito para uso Cucumber fazendo o melhor dos nossos Selenium

Na próxima página, Clique da versão 1.2.2,

Pré-requisito para uso Cucumber fazendo o melhor dos nossos Selenium

Na próxima tela, clique em download para obter o 'Cucumber Arquivo jar principal.

Pré-requisito para uso Cucumber fazendo o melhor dos nossos Selenium

Note: Para sua facilidade, agrupamos os arquivos jar necessários para download do Maven aqui. Com o tempo, esses frascos podem ser atualizados e se tornarem incompatíveis. Você deve baixá-los usando o método ilustrado acima.

Teste de automação usando Cucumber fazendo o melhor dos nossos Selenium.

Vamos estudar os passos para usar Cucumber com selênio passo a passo. Aqui cobriremos 3 cenários:

  • Cenário 1: Imprima texto no console.
  • Cenário 2: Insira a credencial de login e redefina o valor.
  • Cenário 3: Insira a credencial de login no Guru99 e redefina o valor. Faça isso para 3 conjuntos de dados.

Cenário 1: Imprima texto no console.

Neste cenário, apenas imprimimos o texto no console usando Cucumber.

Passo 1) Crie um projeto no Eclipse.

Crie Java projeto com o nome “CucumberCom o Selenium”Conforme mostrado na imagem abaixo.

Teste de automação usando Cucumber fazendo o melhor dos nossos Selenium

Teste de automação usando Cucumber fazendo o melhor dos nossos Selenium

Passo 2) Adicionando arquivos Jar no projeto.

Clique com o botão direito no projeto > Selecione Propriedades > Vá para Java Construir caminho. Adicione todas as bibliotecas baixadas anteriormente.

Teste de automação usando Cucumber fazendo o melhor dos nossos Selenium

Passo 3) Criando arquivo de recurso

Para criar o arquivo de recursos, primeiro crie a pasta de recursos conforme mostrado na captura de tela abaixo.

Teste de automação usando Cucumber fazendo o melhor dos nossos Selenium

Agora digite o nome da pasta 'Recursos' e clique no botão 'Concluir'.

Teste de automação usando Cucumber fazendo o melhor dos nossos Selenium

Teste de automação usando Cucumber fazendo o melhor dos nossos Selenium

Agora, crie um arquivo de recurso na pasta 'Features' com o nome “MyTest.feature” – O processo é semelhante à criação de uma pasta

Teste de automação usando Cucumber fazendo o melhor dos nossos Selenium

Nota: Talvez seja necessário instalar o Cucumber Eclipse Plugin para que isso funcione. Vá para - Ajuda-> Instalar novo software-> copie e cole o link http://cucumber.github.io/cucumber-eclipse/update-site/ e instalar

Passo 4) Escreva cenários.

As linhas abaixo são escritas no arquivo 'MyTest.feature' usando a linguagem Gherkin conforme mostrado abaixo:

Feature: Reset functionality on login page of Application 


Scenario: Verification of Reset button 


Given Open the Firefox and launch the application			


When Enter the Username and Password			


Then Reset the credential			

Explicação do código

Linha 1) Nesta linha escrevemos funcionalidade de negócios.

Linha 2) Nesta linha escrevemos um cenário para testar.

Linha 3) Nesta linha definimos a pré-condição.

Linha 4) Nesta linha definimos a ação que precisamos realizar.

Linha 4) Nesta linha definimos o resultado ou resultado esperado.

Passo 5) Escrevendo script de teste de selênio para Selenium Cucumber projeto de estrutura

Aqui criamos o pacote 'TestRunner' e, em seguida, o arquivo de classe 'Runner.java' nele.

package TestRunner;		

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

@RunWith(Cucumber.class)				
@CucumberOptions(features="Features",glue={"StepDefinition"})						
public class Runner 				
{		

}

No acima Cucumber Java código de exemplo, executamos o teste de pepino usando as seguintes anotações:

@Correr com() anotação informa sobre a classe do executor de teste para começar a executar nossos testes.

@CucmberOptions() a anotação é usada para definir algumas propriedades para nosso teste de pepino, como arquivo de recurso, definição de etapa, etc.

Captura de tela do arquivo TestRunner.

Teste de automação usando Cucumber fazendo o melhor dos nossos Selenium

Passo 6) Criando script de definição de etapa.

Agora aqui criamos o pacote 'StepDefinition' e então o arquivo de script 'Steps.java' sob ele. Aqui nós realmente escrevemos um script selenium para executar o teste sob Cucumber métodos.

package StepDefinition;		

import cucumber.api.java.en.Given;		
import cucumber.api.java.en.Then;		
import cucumber.api.java.en.When;		

public class Steps {				

     
    @Given("^Open the Firefox and launch the application$")				
    public void open_the_Firefox_and_launch_the_application() throws Throwable							
    {		
        System.out.println("This Step open the Firefox and launch the application.");					
    }		

    @When("^Enter the Username and Password$")					
    public void enter_the_Username_and_Password() throws Throwable 							
    {		
       System.out.println("This step enter the Username and Password on the login page.");					
    }		

    @Then("^Reset the credential$")					
    public void Reset_the_credential() throws Throwable 							
    {    		
        System.out.println("This step click on the Reset button.");					
    }		

}

No código acima, a classe é criada com o nome ‘Steps’. Cucumber a anotação é usada para mapear com arquivo de recurso. Cada método de anotação é definido:

@Dado anotação define método para abrir o Firefox e iniciar o aplicativo

@Quando anotação define método para inserir o nome de usuário e senha

@Então anotação define método para redefinir a credencial

Em cada método, estamos apenas imprimindo uma mensagem.

Abaixo está a captura de tela do script 'Steps.java' e da árvore do projeto, como fica.

Teste de automação usando Cucumber fazendo o melhor dos nossos Selenium

Nota: A definição das etapas nada mais é do que as etapas que você deseja executar neste método do pepino.

Passo 7) Executando o script.

O usuário pode executar este script a partir do script do executor de teste, ou seja, 'Runner.java' conforme mostrado na imagem abaixo.

Teste de automação usando Cucumber fazendo o melhor dos nossos Selenium

Passo 8) Analise a saída.

Ao executar o script 'Runner.java', ele exibe o texto no console. É o mesmo texto definido no script 'Steps.java'.

Teste de automação usando Cucumber fazendo o melhor dos nossos Selenium

Cenário 2: Insira a credencial de login e redefina o valor.

Aqui vamos apenas inserir a credencial na página de login de demonstração do Guru99 e redefinir o valor

Para o Cenário 2, precisamos atualizar apenas o script 'Steps.java'. Aqui, na verdade, escrevemos o script selenium conforme mostrado abaixo steps. Primeiro, precisamos adicionar Selenium jar para este projeto.

Insira a credencial de login e redefina o valor

Passo 1) Aqui atualizamos o script 'Steps.java' conforme mostrado no código e na captura de tela abaixo.

package StepDefinition;		

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

import cucumber.api.java.en.Given;		
import cucumber.api.java.en.Then;		
import cucumber.api.java.en.When;		

public class Steps {				

    WebDriver driver;			
    		
    @Given("^Open the Firefox and launch the application$")					
    public void open_the_Firefox_and_launch_the_application() throws Throwable							
    {		
       System.setProperty("webdriver.gecko.driver", "E://Selenium//Selenium_Jars//geckodriver.exe");					
       driver= new FirefoxDriver();					
       driver.manage().window().maximize();			
       driver.get("http://demo.guru99.com/v4");					
    }		

    @When("^Enter the Username and Password$")					
    public void enter_the_Username_and_Password() throws Throwable 							
    {		
       driver.findElement(By.name("uid")).sendKeys("username12");							
       driver.findElement(By.name("password")).sendKeys("password12");							
    }		

    @Then("^Reset the credential$")					
    public void Reset_the_credential() throws Throwable 							
    {		
       driver.findElement(By.name("btnReset")).click();					
    }		
}		

Captura de tela do script Selenium acima.

Insira a credencial de login e redefina o valor

Passo 2) Execute o script.

Após a atualização, executamos o Runner.java.

Passo 3) Analise a saída.

Na saída você pode ver o seguinte:

  • Navegador lançado.
  • O site de demonstração do banco Guru99 é aberto.
  • O nome de usuário e a senha são colocados na página de login.
  • Redefina os valores.

Insira a credencial de login e redefina o valor

Cenário 3: Insira a credencial de login no Guru99 e redefina o valor. Faça isso para 3 conjuntos de dados.

Aqui precisamos atualizar o 'Step.java' e o arquivo de recurso.

Passo 1) Atualize o arquivo de recurso conforme mostrado abaixo:

Here we update the feature file with 'Scenario Outline' and  'examples' syntax.

Feature: Reset functionality on login page of Application				


Scenario Outline: Verification of reset button with numbers of credential


Given Open the Firefox and launch the application				


When Enter the Username <username>and Password <password>				


Then Reset the credential						

Examples:                      		

|username  |password         |		

|User1     |password1        |		

|User2     |password2        |		

|User3     |password3        |

// In this line we define the set of data.

Insira a credencial de login

Passo 2) Agora atualize o script Step.java.

Aqui atualizamos os métodos para passar os parâmetros, script atualizado mostrado abaixo:

package StepDefinition;		

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

import cucumber.api.java.en.Given;		
import cucumber.api.java.en.Then;		
import cucumber.api.java.en.When;		

public class Steps {				

    WebDriver driver;			
    		
    @Given("^Open the Firefox and launch the application$")					
    public void open_the_Firefox_and_launch_the_application() throws Throwable							
    {		
       System.setProperty("webdriver.gecko.driver", "E://Selenium//Selenium_Jars//geckodriver.exe");					
       driver= new FirefoxDriver();					
       driver.manage().window().maximize();			
       driver.get("www.demo.guru99.com/v4");					
    }		

    @When("^Enter the Username \"(.*)\" and Password \"(.*)\"$")			
    public void enter_the_Username_and_Password(String username,String password) throws Throwable 							
    {		
       driver.findElement(By.name("uid")).sendKeys(username);					
       driver.findElement(By.name("password")).sendKeys(password);					
    }		

    @Then("^Reset the credential$")					
    public void	Reset_the_credential() throws Throwable 							
    {		
       driver.findElement(By.name("btnReset")).click();					
    }		
}		

Insira a credencial de login

Passo 3) Agora execute o script atualizado.

A tela abaixo mostra a execução bem-sucedida do script e o tempo gasto por cada conjunto de dados.

Insira a credencial de login

Passo 4) Analise a saída.

Na saída você pode ver o seguinte:

A saída abaixo é repetida para o número de conjuntos de dados, ou seja, 3 conjuntos.

  • Navegador lançado.
  • O site de demonstração do banco Guru99 é aberto.
  • O nome de usuário e a senha são colocados na página de login.
  • Redefina os valores.

Insira a credencial de login

Conclusão

Cucumber é uma ferramenta BDD muito popular. É fácil de ler e pode ser compreendido por todas as partes interessadas, incluindo pessoas técnicas e não técnicas.

Cucumber pode ser integrado com Selenium usando os 3 passos a seguir

  1. Crie um arquivo de recursos no qual defina o recurso e os cenários passo a passo usando a linguagem Gherkin.
  2. Crie o arquivo Testrunner. Neste arquivo, integramos Cucumber com estrutura BDD em Selenium. Executamos este script.
  3. Definição de Create Step, o script Selenium real definido neste pacote.