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.

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:
- Engenheiro de Software e Analista de Negรณcios.
- Testador manual e testador de automaรงรฃo.
- 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.
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/.
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:
Na pรกgina seguinte, clique na versรฃo 1.2.2:
Na prรณxima tela, clique em "Download" para obter o arquivo. 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.
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.
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.
Digite o nome da pasta โRecursosโ e clique em Concluir.
Agora crie um arquivo de recurso dentro da pasta Features com o nome MeuTeste.recursoO processo รฉ semelhante ร criaรงรฃo de uma pasta.
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:
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:
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.
Passo 8) Analise a saรญda.
Ao executar o arquivo Runner.java, Cucumber Imprime no console o mesmo texto definido em Steps.java.
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.
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:
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.
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 |
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();
}
}
Passo 3) Execute o script atualizado.
A tela abaixo mostra uma execuรงรฃo bem-sucedida e o tempo gasto por cada conjunto 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.























