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:
- Engenheiro de Software e Analista de Negócios.
- Testador manual e testador de automação.
- 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.
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/
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:
Na próxima página, Clique da versão 1.2.2,
Na próxima tela, clique em download para obter o 'Cucumber Arquivo jar principal.
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.
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.
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.
Agora digite o nome da pasta 'Recursos' e clique no botão 'Concluir'.
Agora, crie um arquivo de recurso na pasta 'Features' com o nome “MyTest.feature” – O processo é semelhante à criação de uma pasta
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.
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.
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.
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'.
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.
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.
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.
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.
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(); } }
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.
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.
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
- Crie um arquivo de recursos no qual defina o recurso e os cenários passo a passo usando a linguagem Gherkin.
- Crie o arquivo Testrunner. Neste arquivo, integramos Cucumber com estrutura BDD em Selenium. Executamos este script.
- Definição de Create Step, o script Selenium real definido neste pacote.