Selênio com pepino (estrutura BDD): tutorial com exemplo

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.on2vhf.be/cucumber-tutorials.html

O que é selênio?

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

Saiba mais em - https://www.on2vhf.be/selenium-tutorial.html

Neste tutorial do pepino, vamos aprender-

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 estão usando Selenium, querem integrar Selenium com Pepino como o Pepino faz é fácil de ler e entender o fluxo do aplicativo.

A ferramenta Cucumber é baseada na estrutura Behavior Driven Development que atua 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.

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

Pré-requisito para usar pepino com selênio

Antes de iniciarmos a integração do Cucumber Selenium, precisamos dos seguintes itens:

  • Arquivos jar de selênio:
  • Selenium-server-standalone

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

Arquivos jar para pepino:

  • Caroço de pepino
  • Pepino-html
  • cobertura de código de cobertura
  • Pepino-java
  • Pepino-junit
  • Cucumber-jvm-deps
  • Relatório de pepino
  • Hemcrest-core
  • Maxixe
  • Junit

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 para você fazer o download de 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', como mostrado na captura de tela abaixo:

Na próxima página, clique na versão 1.2.2,

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

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

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

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

  • Cenário 1: imprimir 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: imprimir texto no console.

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

Passo 1) Crie um projeto no eclipse.

Crie um projeto Java com o nome 'CucumberWithSelenium' conforme mostrado na captura de tela abaixo.

Passo 2) Adicionando arquivos Jar no projeto.

Clique com o botão direito do mouse em Projeto> Selecionar propriedades> Ir para o caminho de construção Java. Adicione todas as bibliotecas baixadas anteriormente.

Etapa 3) Criando arquivo de feição

Para criar o arquivo de feições, primeiro crie a pasta de feições como mostrado na captura de tela abaixo.

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

Agora, crie um arquivo de feição na pasta 'Features' com o nome de 'MyTest.feature' - o processo é semelhante à criação de uma pasta

Observação: Pode ser necessário instalar o Plug-in Cucumber Eclipse para que isso funcione. Vá para - Ajuda-> Instalar Novo Software-> copiar colar o link http://cucumber.github.io/cucumber-eclipse/update-site/ e instale

Passo 4) Escreva cenários.

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

Recurso: Redefina a funcionalidade na página de login do aplicativo

Cenário: Verificação do botão Reset

Dado Abra o Firefox e execute o aplicativo

Quando digite o nome de usuário e a senha

Em seguida, redefina a credencial

Explicação do código

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

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

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.

Etapa 5) Escrevendo script de testrunner de selênio para design de estrutura Selenium Cucumber

Aqui nós criamos o pacote 'TestRunner' e então o arquivo de classe 'Runner.java' 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 código de exemplo Java Cucumber acima, executamos o teste de pepino usando as seguintes anotações:

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

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

Captura de tela do arquivo TestRunner.

Etapa 6) Criação de script de definição de etapa.

Agora aqui nós criamos o pacote 'StepDefinition' e então o arquivo de script 'Steps.java' sob ele. Aqui, na verdade, escrevemos um script de selênio 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 'Passos'. A anotação de pepino é usada para mapear com arquivo de feição. Cada método de anotação é definido:

@Dado anotação define o método para abrir o firefox e lançar o aplicativo

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

@Então anotação define o 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 se parece.

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

Etapa 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 captura de tela abaixo.

Etapa 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'.

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

Aqui, apenas inseriremos a credencial na página de login de demonstração do Guru99 e redefiniremos o valor

Para o Cenário 2, precisamos atualizar apenas o script 'Steps.java'. Aqui, na verdade, escrevemos o script de selênio conforme as etapas abaixo. Primeiro, precisamos adicionar o arquivo jar Selenium a este projeto.

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('https://demo.on2vhf.be/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 de selênio acima.

Passo 2) Execute o script.

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

Etapa 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.
  • Reinicialize os valores.

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 feições conforme mostrado abaixo:

Aqui, atualizamos o arquivo de feições com a sintaxe 'Esboço do cenário' e 'exemplos'.

Recurso: Redefina a funcionalidade na página de login do aplicativo

Esboço do cenário: Verificação do botão de redefinição com números de credenciais

Dado Abra o Firefox e execute o aplicativo

Quando digite o nome de usuário e a senha

Em seguida, redefina a credencial

Exemplos:

| nome de usuário | senha |

| Usuário1 | senha1 |

| Usuário2 | senha2 |

| Usuário3 | senha3 |

// Nesta linha definimos o conjunto de dados.

Passo 2) Agora atualize o script Step.java.

Aqui nós 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.on2vhf.be/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(); } } 

Etapa 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.

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.
  • Reinicialize os valores.

Conclusão.

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

O pepino pode ser integrado ao Selênio usando as 3 etapas seguintes

  1. Crie um arquivo de feições no qual define as feições e cenários passo a passo usando a linguagem Gherkin.
  2. Crie o arquivo Testrunner. Neste arquivo, integramos o Cucumber com o framework BDD no Selenium. Executamos este script.
  3. Definição da etapa de criação, o script de selênio real definido neste pacote.