Selênio com Pepino (Quadro BDD)


Neste tutorial, você aprenderá como integrar o Cucumber ao Selenium Webdriver.

O que é pepino?

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 é Selênio?

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 Pepino com Selênio?

Pepino e Selênio são duas tecnologias populares.

A maioria das organizações usa Selenium para testes funcionais. Essas organizações que usam Selenium desejam integrar Selenium com Cucumber, pois o Cucumber faz é fácil ler e entender o fluxo do aplicativo.

A ferramenta Cucumber é baseada na estrutura Behavior Driven Development que funciona como a ponte entre o seguintewing pessoas:

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

Estrutura Cucumber 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.

Pepino com Selênio

Pré-requisito para usar Pepino com Selênio

Antes de iniciarmos a integração do Cucumber Selenium, precisamos do seguintewing Unid:

  • Arquivos jar de selênio:
  • Servidor Selenium autônomo

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

Pré-requisito para usar pepino com selênio

Arquivos jar para pepino:

  • Núcleo de pepino
  • Pepino-html
  • cobertura de código de cobertura
  • Pepino-java
  • Junit de pepino
  • Pepino-jvm-deps
  • Relatórios de pepino
  • 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 a você como baixar um dos arquivos jar, ou seja, “Cucumber-core”.

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

Pré-requisito para usar pepino com selênio

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

Pré-requisito para usar pepino com selênio

Na próxima tela, clique em download para obter o arquivo jar ‘Cucumber Core’.

Pré-requisito para usar pepino com selênio

Note: Para sua facilidade, agrupamos os arquivos jar necessários para download do Maven plítica de privacidade . 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 pepino com selênio.

Vamos estudar passo a passo os passos para usar Pepino com Selênio. Aqui iremos cobrir 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) Criar projeto em eclipse.

Crie um projeto Java com o nome “CucumberWithSelenium” conforme mostrado na imagem abaixo.

Teste de automação usando pepino com selênio

Teste de automação usando pepino com selênio

Passo 2) Adicionando arquivos Jar no projeto.

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

Teste de automação usando pepino com selênio

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 pepino com selênio

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

Teste de automação usando pepino com selênio

Teste de automação usando pepino com selênio

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 pepino com selênio

Nota: Pode ser necessário instalar o Pepino 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 Selenium testrunner para design de estrutura Selenium Cucumber

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 código de exemplo Cucumber Java acima, executamos o teste de pepino usando o seguintewing 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 pepino com selênio

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

Agora, aqui criamos o pacote 'StepDefinition' e, em seguida, o arquivo de script 'Steps.java' nele. Aqui, na verdade, escrevemos um script Selenium para realizar o teste nos métodos Cucumber.

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’. A anotação pepino é usada para mapear com arquivo de recurso. Cada método de anotação é definido:

@Dado anotação definir método para abrir firefox e inicie 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 pepino com selênio

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 pepino com selênio

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 pepino com selênio

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 nas etapas abaixo. Primeiro, precisamos adicionar o arquivo jar Selenium a 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 seguintewing:

  • 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 seguintewing:

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.

Pepino pode ser integrado ao Selenium usando o seguintewing Passos 3

  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 o Cucumber ao framework BDD no Selenium. Executamos este script.
  3. Definição de Create Step, o script Selenium real definido neste pacote.