Selenium com as Cucumber (Tutorial da Estrutura BDD)

โšก Resumo Inteligente

Selenium com as Cucumber forma uma estrutura poderosa de Desenvolvimento Orientado a Comportamento (BDD) que combina a sintaxe Gherkin em inglรชs simples com Selenium Automaรงรฃo com WebDriver. Este tutorial explica os prรฉ-requisitos, apresenta trรชs cenรกrios prรกticos e mostra como arquivos de recursos, definiรงรตes de etapas e uma classe TestRunner se integram para executar testes de navegador.

  • ???? Definiรงรฃo Essencial: Cucumber รฉ uma ferramenta de teste BDD que descreve o comportamento do aplicativo em linguagem simples usando Gherkin, e Selenium Controla as aรงรตes do navegador em segundo plano.
  • ๐Ÿค Ponte de partes interessadas: Cucumber Conecta analistas de negรณcios, testadores manuais, engenheiros de automaรงรฃo e desenvolvedores por meio de uma especificaรงรฃo de teste compartilhada e de fรกcil leitura.
  • ๐Ÿ“ฆ Potes necessรกrios: Selenium independente, Cucumber-essencial, Cucumber-Java, Cucumber-junit, Pepino, JUnit, e Hamcrest-core formam o conjunto mรญnimo de dependรชncias.
  • ๐Ÿงฑ Trรชs arquivos de projeto: Um arquivo .feature com cenรกrios, uma classe Steps.java de definiรงรฃo de passos e um TestRunner Runner.java com @CucumberOpรงรตes de cola.
  • ๐Ÿ” Testes orientados por dados: Utilize as tabelas de Cenรกrio e Exemplos para executar o mesmo fluxo com vรกrios conjuntos de credenciais em uma รบnica execuรงรฃo.

Selenium com as Cucumber (Tutorial da Estrutura BDD)

Neste tutorial vocรช aprenderรก como integrar Cucumber com as Selenium WebDriver para construir uma estrutura de Desenvolvimento Orientado a Comportamento (BDD) que seja legรญvel, de fรกcil manutenรงรฃo e orientada a dados.

O que รฉ a Cucumber?

Cucumber รฉ uma ferramenta de teste que oferece suporte ao Desenvolvimento Orientado a Comportamento (BDD). Ela descreve o comportamento de um aplicativo em texto simples em inglรชs usando a linguagem Gherkin, o que permite que pessoas sem conhecimento de programaรงรฃo contribuam para as especificaรงรตes de teste sem precisar aprender uma linguagem de programaรงรฃo. Saiba mais em nosso [link para a documentaรงรฃo]. Cucumber tutorial.

O que รฉ a Selenium?

Selenium รฉ uma ferramenta de automaรงรฃo usada para Teste funcional de aplicaรงรตes baseadas na web. Selenium Suporta vรกrias linguagens de programaรงรฃo, incluindo Java, Rubi, Pythone C#, o que a torna uma escolha natural para equipes com diferentes formaรงรตes tรฉcnicas. Saiba mais em nosso Selenium tutorial.

Por que usar Cucumber com as Selenium?

Cucumber e Selenium sรฃo duas das tecnologias de teste mais amplamente adotadas. A maioria das organizaรงรตes jรก as utiliza. Selenium para testes funcionais e quero criar camadas Cucumber em cima porque Cucumber facilita a leitura e a compreensรฃo do fluxo do aplicativo..

Cucumber รฉ baseado na estrutura de Desenvolvimento Orientado a Comportamento (BDD) que atua como uma ponte entre as seguintes funรงรตes:

  1. Engenheiro de Software e Analista de Negรณcios.
  2. Testador manual e testador de automaรงรฃo.
  3. Testador manual e desenvolvedores.

O Cucumber Estrutura BDD tambรฉm Ajuda os clientes a compreenderem o cรณdigo da aplicaรงรฃo. Porque utiliza a linguagem Gherkin, que รฉ escrita em texto simples. Qualquer pessoa na organizaรงรฃo pode acompanhar o comportamento do software. A sintaxe Gherkin รฉ em inglรชs simples e legรญvel, o que mantรฉm a especificaรงรฃo acessรญvel a leitores nรฃo tรฉcnicos.

Cucumber com as Selenium Visรฃo geral do framework BDD

Prรฉ-requisitos para usar Cucumber com as Selenium

Antes de comeรงarmos o Cucumber-Selenium Para a integraรงรฃo, vocรช precisa dos seguintes itens:

Selenium arquivos jar:

  • Selenium-servidor autรดnomo

Vocรช pode baixรก-los em https://www.selenium.dev/downloads/.

Selenium Pรกgina de downloads para arquivos jar

Arquivos Jar para Cucumber:

  • Cucumber-core
  • Cucumber-html
  • Cobertura Cobertura de cรณdigo
  • Cucumber-Java
  • Cucumber-junta
  • Cucumber-jvm-deps
  • Cucumber-relatรณrio
  • Nรบcleo Hamcrest
  • Pepino
  • JUnit

Vocรช pode baixรก-los em https://mvnrepository.com/search?q=CucumberVocรช precisarรก procurar cada arquivo JAR e baixรก-los um por um.

Por exemplo, veja como baixar um dos arquivos jar, o โ€œCucumberBiblioteca "-core".

Clique no link de download acima. Vocรช serรก redirecionado para o site do repositรณrio Maven. Agora, procure o arquivo JAR especรญfico (neste caso, โ€œCucumber Nรบcleoโ€), conforme mostrado na captura de tela abaixo:

Procurando Cucumber Arquivo JAR principal no repositรณrio Maven

Na pรกgina seguinte, clique na versรฃo 1.2.2:

Selecionar Cucumber Versรฃo principal 1.2.2 no Maven

Na prรณxima tela, clique em "Download" para obter o arquivo. Cucumber Arquivo JAR principal:

Faรงa o download do Cucumber Arquivo JAR principal

Observaรงรฃo: Para sua conveniรชncia, incluรญmos os arquivos JAR do Maven necessรกrios em um pacote. aqui.Esses arquivos JAR podem ficar desatualizados e incompatรญveis com o tempo, por isso recomendamos que vocรช os baixe manualmente usando o mรฉtodo descrito acima.

Teste de automaรงรฃo usando Cucumber com as Selenium

Vamos ver como usar Cucumber com as Selenium Passo a passo. Aqui abordaremos trรชs cenรกrios:

  • Cenรกrio 1: Imprima texto no console.
  • Cenรกrio 2: Insira as credenciais de login e redefina o valor.
  • Cenรกrio 3: Insira as credenciais de login em Guru99 e redefinir o valor โ€” repetido para 3 conjuntos de dados.

Cenรกrio 1: Imprimir texto no console

Nesse cenรกrio, simplesmente imprimimos o texto no console usando Cucumber.

Passo 1) Crie um projeto em Eclipse.

Crie uma Java projeto com o nome "CucumberComSelenium" como mostrado na imagem abaixo.

Criar CucumberComSelenium Java projeto em Eclipse

Java configuraรงรฃo do nome do projeto em Eclipse

Passo 2) Adicione os arquivos JAR ao projeto.

Clique com o botรฃo direito do mouse no projeto > Propriedades > Java Caminho de construรงรฃo. Adicione todas as bibliotecas que vocรช baixou anteriormente.

Adicione Cucumber e Selenium arquivos jar para Java Caminho de construรงรฃo

Passo 3) Crie um arquivo de recursos.

Para criar um arquivo de recursos, primeiro crie uma pasta "Recursos", conforme mostrado na captura de tela abaixo.

Crie uma pasta de recursos em Eclipse projeto

Digite o nome da pasta โ€œRecursosโ€ e clique em Concluir.

Configure o nome da pasta Recursos em Eclipse

A pasta "Recursos" fica visรญvel no explorador de projetos.

Agora crie um arquivo de recurso dentro da pasta Features com o nome MeuTeste.recursoO processo รฉ semelhante ร  criaรงรฃo de uma pasta.

Crie o arquivo MyTest.feature na pasta Features.

Observaรงรฃo: Talvez seja necessรกrio instalar o Cucumber Eclipse Primeiro, instale o plugin. Vรก em Ajuda โ†’ Instalar novo software e cole o link. http://cucumber.github.io/cucumber-eclipse/update-site/e instale-o.

Passo 4) Escreva os cenรกrios.

As linhas abaixo estรฃo escritas em MeuTeste.recurso usando a linguagem Gherkin:

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

Code Explicaรงรฃo

Linha 1) Define a funcionalidade do negรณcio.

Linha 2) Define um cenรกrio para teste.

Linha 3) Define a prรฉ-condiรงรฃo (Dado).

Linha 4) Define a aรงรฃo a ser executada (Quando).

Linha 5) Define o resultado ou desfecho esperado (Entรฃo).

Passo 5) Escreva o Selenium Script TestRunner para o Cucumber projeto de estrutura.

Crie uma TestRunner pacote e depois um Runner.java arquivo de classe sob ele.

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 Por exemplo, executamos o teste de pepino usando as seguintes anotaรงรตes:

@Correr com() conta JUnit sobre a classe de execuรงรฃo de testes que inicia a execuรงรฃo dos nossos testes.

@CucumberOpรงรตes() Define propriedades de teste, como o caminho do arquivo de recursos e o pacote de integraรงรฃo da definiรงรฃo de etapas.

Captura de tela do arquivo TestRunner:

Script Runner.java TestRunner para Cucumber

Passo 6) Crie o script de Definiรงรฃo de Etapa.

Agora crie um Definiรงรฃo de Etapa pacote e depois um Passos.java arquivo de script abaixo dele. Dentro de Steps.java, escrevemos o Selenium lรณgica que mapeia cada etapa do Gherkin.

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.");
    }
}

A aula se chama Passos e Cucumber As anotaรงรตes mapeiam cada mรฉtodo para uma etapa do arquivo de recursos:

@Dado define o mรฉtodo para abrir Firefox e inicie o aplicativo.

@Quando Define o mรฉtodo para inserir o nome de usuรกrio e a senha.

@Entรฃo Define o mรฉtodo para redefinir as credenciais.

Cada mรฉtodo simplesmente imprime uma mensagem no console.

A captura de tela abaixo mostra o script Steps.java e a รกrvore do projeto:

Steps.java script e รกrvore do projeto em Eclipse

Observaรงรฃo: Uma definiรงรฃo de passo รฉ o cรณdigo que vocรช deseja. Cucumber Executar quando houver correspondรชncia com uma etapa de arquivo de recurso.

Passo 7) Execute o script.

Execute este script a partir do arquivo TestRunner (Runner.java), conforme mostrado abaixo.

Execute o arquivo Runner.java para executar Cucumber teste

Passo 8) Analise a saรญda.

Ao executar o arquivo Runner.java, Cucumber Imprime no console o mesmo texto definido em Steps.java.

Saรญda do console de Cucumber execuรงรฃo de teste

Cenรกrio 2: Insira as credenciais de login e redefina o valor.

Aqui inserimos as credenciais no GuruPรกgina de login de demonstraรงรฃo 99 e redefina o valor.

Para o cenรกrio 2, precisamos apenas atualizar. Passos.javaAqui adicionamos o real Selenium cรณdigo. Primeiro, certifique-se de que Selenium O arquivo jar foi adicionado ao projeto.

Confirmar Selenium O arquivo JAR estรก no classpath do projeto.

Passo 1) Atualize o script Steps.java conforme 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("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 item acima Selenium script:

Cenรกrio 2 Passos.java com Selenium lรณgica

Passo 2) Execute o script.

Apรณs atualizar o arquivo Steps.java, execute o arquivo Runner.java.

Passo 3) Analise a saรญda. Na saรญda, vocรช verรก o seguinte:

  • Navegador lanรงado.
  • GuruO local de demonstraรงรฃo do banco 99 รฉ inaugurado.
  • O nome de usuรกrio e a senha sรฃo inseridos na pรกgina de login.
  • O botรฃo Reiniciar apaga os valores.

Animaรงรฃo do cenรกrio 2 mostrando Cucumber Selenium corrida de teste

Cenรกrio 3: Executar o fluxo de login e redefiniรงรฃo com 3 conjuntos de dados

Aqui precisamos atualizar ambos Passos.java e o arquivo de funcionalidades para executar o mesmo fluxo com trรชs conjuntos de credenciais.

Passo 1) Atualize o arquivo de recursos conforme mostrado abaixo.

Usamos o Esboรงo do Cenรกrio e Exemplos sintaxe entรฃo Cucumber repete o mesmo cenรกrio em cada linha de dados.

Feature: Reset functionality on login page of Application

Scenario Outline: Verification of reset button with multiple credentials

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 |

Arquivo de funcionalidades com descriรงรฃo do cenรกrio e tabela de exemplos.

Passo 2) Atualize o script Steps.java.

Aqui atualizamos as assinaturas dos mรฉtodos para que aceitem parรขmetros da tabela de exemplos.

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(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();
    }
}

Arquivo Steps.java atualizado com credenciais parametrizadas.

Passo 3) Execute o script atualizado.

A tela abaixo mostra uma execuรงรฃo bem-sucedida e o tempo gasto por cada conjunto de dados.

Execuรงรฃo bem-sucedida do Cenรกrio 3 com trรชs conjuntos de dados.

Passo 4) Analise os resultados. Os seguintes passos se repetem para cada um dos 3 conjuntos de dados:

  • Navegador lanรงado.
  • GuruO local de demonstraรงรฃo do banco 99 รฉ inaugurado.
  • O nome de usuรกrio e a senha sรฃo inseridos na pรกgina de login.
  • O botรฃo Reiniciar apaga os valores.

Animaรงรฃo do cenรกrio 3 mostrando parametrizado Cucumber corrida de teste

Perguntas Frequentes

Cucumber ร‰ um framework BDD que executa cenรกrios escritos em Gherkin. Selenium ร‰ uma biblioteca de automaรงรฃo de navegador que controla pรกginas da web. Cucumber Nรฃo interage diretamente com os navegadores โ€” faz chamadas. Selenium Definiรงรตes de etapas para executar as aรงรตes reais da interface do usuรกrio.

Cucumber Os arquivos de funcionalidades utilizam Gherkin, uma linguagem de domรญnio especรญfico e de linguagem simples que organiza cenรกrios com palavras-chave como Funcionalidade, Cenรกrio, Dado, Quando, Entรฃo, E, Mas, Descriรงรฃo do Cenรกrio e Exemplos. O Gherkin รฉ legรญvel tanto para partes interessadas tรฉcnicas quanto nรฃo tรฉcnicas.

Utilize a palavra-chave "Esboรงo de Cenรกrio" com uma tabela de exemplos. Cucumber executa o mesmo cenรกrio uma vez por linha, substituindo marcadores de posiรงรฃo como e com os valores de cada linha. Este รฉ o padrรฃo padrรฃo orientado a dados em Cucumber.

A IA gera cenรกrios Gherkin a partir de histรณrias de usuรกrios, recomenda definiรงรตes de etapas e corrige localizadores quebrados em Seleniume sugere dados de exemplos. Os assistentes de IA tambรฉm sinalizam cenรกrios duplicados, asserรงรตes fracas e testes desatualizados, o que mantรฉm o conjunto de testes BDD sustentรกvel ร  medida que o aplicativo muda.

Sim. Assistentes de codificaรงรฃo de IA leem arquivos de recursos Gherkin e geram correspondรชncias. Java ou definiรงรตes de etapas do Kotlin, incluindo Selenium Chamadas do WebDriver, estratรฉgias de localizaรงรฃo e vinculaรงรฃo de parรขmetros. Os desenvolvedores refinam o cรณdigo gerado, o que reduz drasticamente o cรณdigo repetitivo durante a inicializaรงรฃo.ping novas suรญtes BDD.

Resuma esta postagem com: