cucumber gherkin tutorial
Este tutorial informativo explica as vantagens da estrutura do Cucumber Gherkin e como escrever scripts de automação usando a linguagem Gherkin com exemplos claros:
Cucumber é uma ferramenta baseada no framework Behavior Driven Development (BDD). BDD é uma metodologia para entender a funcionalidade de um aplicativo na representação de texto simples.
O principal objetivo da estrutura de Desenvolvimento Orientado a Comportamento é fazer com que várias funções de projeto, como Analistas de Negócios, Garantia de Qualidade, Desenvolvedores, etc., entendam a aplicação sem se aprofundar nos aspectos técnicos.
A ferramenta Cucumber é geralmente usada em tempo real para escrever testes de aceitação de um aplicativo. A ferramenta Cucumber fornece suporte para várias linguagens de programação, como Java, Ruby, .Net, etc. Pode ser integrada com várias ferramentas como Selenium, Capybara, etc.
O que você aprenderá:
O que é Gherkin?
Gherkin é a linguagem usada pela ferramenta Cucumber. É uma representação simples em inglês do comportamento do aplicativo. Cucumber usa o conceito de arquivos de recursos para fins de documentação. O conteúdo dos arquivos de recursos é escrito na linguagem Gherkin.
Nos tópicos a seguir, veremos mais sobre as vantagens da estrutura Cucumber Gherkin, Integrando Cucumber com Selenium, Criando um arquivo de recurso e seu arquivo de definição de etapa correspondente e um arquivo de recurso de amostra.
Termos comuns para estrutura de pepino pepino
A estrutura do Cucumber Gherkin usa certas palavras-chave que são essenciais para escrever um arquivo de feição.
Os termos a seguir são mais comumente usados em arquivos de recursos:
# 1) Característica:
Um arquivo de recurso deve fornecer uma descrição de alto nível de um aplicativo em teste (AUT). A primeira linha do arquivo de feição deve começar com a palavra-chave ‘Recurso’ seguindo a descrição deuma aplicaçãosob teste. De acordo com os padrões prescritos por Cucumber, o arquivo de feição deve incluir os três elementos a seguir como a primeira linha.
- Palavra-chave de recurso
- Nome do Recurso
- Descrição do recurso (opcional)
A palavra-chave do recurso deve ser seguida por um nome de recurso. Pode incluir uma seção de descrição opcional que pode se estender por várias linhas do arquivo de feição. Um arquivo de recurso tem a extensão .feature.
# 2) Cenário:
Um cenário é uma especificação de teste da funcionalidade a ser testada. Idealmente, um arquivo de recurso pode conter um ou mais cenários como parte do recurso. Um cenário inclui várias etapas de teste. De acordo com os padrões do pepino, um cenário deve incluir 3-5 etapas de teste, pois cenários longos tendem a perder seu poder expressivo quando o número de etapas aumenta.
Um cenário pode incluir as seguintes etapas:
- Ação a ser executada por um usuário.
- Resultados esperados da ação.
Na linguagem Gherkin, um cenário deve incluir as seguintes palavras-chave:
- Dado
- Quando
- Então
- E
Dado:
A palavra-chave fornecida é usada para especificar as pré-condições para a execução de um cenário específico. Um cenário pode incluir mais de uma instrução dada ou pode não haver nenhuma instrução dada para um cenário.
Quando:
Esta palavra-chave é usada para especificar a ação ou um evento executado pelo usuário, como clicar em um botão, inserir dados na caixa de texto, etc. Pode haver várias instruções when em um único cenário.
Então:
Em seguida, a palavra-chave é usada para especificar o resultado esperado de uma ação executada pelo usuário. Idealmente, a palavra-chave When deve ser seguida pela palavra-chave Then para compreender o resultado esperado das ações do usuário.
E:
E palavra-chave é usada como uma palavra-chave de conjunção para combinar várias instruções. Por exemplo, Várias instruções dadas e quando em um cenário podem ser combinadas usando a palavra-chave ‘E’.
# 3) Esboço do cenário:
Um esboço de cenário é uma forma de parametrização de cenários.
Isso é idealmente usado quando o mesmo cenário precisa ser executado para vários conjuntos de dados, mas as etapas de teste permanecem as mesmas. O esboço do cenário deve ser seguido pela palavra-chave ‘Exemplos’, que especifica o conjunto de valores para cada parâmetro.
Abaixo está o exemplo para entender o conceito de esboço do cenário:
Exemplo:
Esboço do cenário: Enviar um arquivo
Dado que um usuário está na tela de upload de arquivo.
Quando o usuário clica no botão Navegar.
E o usuário entra na caixa de texto de upload.
E o usuário clica no botão Enter.
Então verifica se o upload do arquivo foi bem-sucedido.
Exemplos:
nome do arquivo |
| file1 |
| file2 |
Os parâmetros dentro do esboço do cenário devem ser especificados com os caracteres ‘’. Uma lista de valores de dados para o parâmetro deve ser especificada usando o símbolo Pipe (|).
# 4) Histórico:
A palavra-chave de fundo é usada para agrupar várias instruções fornecidas em um único grupo.
Isso geralmente é usado quando o mesmo conjunto de instruções fornecidas é repetido em cada cenário de um arquivo de característica. Em vez de especificar as declarações fornecidas para cada cenário repetidamente, elas podem ser especificadas com a palavra-chave ‘Plano de fundo’ antes do primeiro cenário.
Exemplo:
Fundo:
O usuário fornecido está na página de login do aplicativo
Vantagens da estrutura do pepino pepino
A seguir estão as vantagens da estrutura Cucumber Gherkin que tornam a Cucumber a escolha ideal para a metodologia Agile em rápida evolução no mundo corporativo de hoje:
- Cucumber é uma ferramenta de código aberto.
- A representação em texto simples torna mais fácil para usuários não técnicos entender os cenários.
- Ele preenche a lacuna de comunicação entre as várias partes interessadas do projeto, como analistas de negócios, desenvolvedores e pessoal de garantia de qualidade.
- Casos de teste de automação desenvolvidos com a ferramenta Cucumber são mais fáceis de manter e entender.
- Fácil de integrar com outras ferramentas como Selenium e Capybara.
Integração de pepino com selênio
Pepino e selênio são as duas ferramentas de teste funcional mais poderosas. A integração do Cucumber com o Selenium Webdriver ajuda vários membros não técnicos de uma equipe de projeto a entender o fluxo do aplicativo.
A seguir estão as etapas a serem seguidas para a integração do Cucumber com o Selenium Webdriver:
Passo 1:
O Cucumber pode ser integrado ao Selenium Webdriver fazendo o download dos arquivos JAR necessários.
A seguir, está a lista de arquivos JAR que devem ser baixados para usar o Cucumber com Selenium Webdriver:
- cobertura 2.1.1.jar
- pepino-core-1.2.2.jar
- cucumber-java-1.2.2.jar
- pepino-junit-1.2.2.jar
- cucumber-jvm-deps-1.0.3.jar
- cucumber-reporting-0.1.0.jar
- gherkin-2.12.2.jar
- hamcrest-core-1.3.jar
- junit-4.11.jar
Os arquivos JAR acima podem ser baixados do Maven local na rede Internet .
Cada um dos Arquivos JAR acima deve ser baixado individualmente do site acima.
Passo 2:
Crie um novo projeto no Eclipse e adicione os arquivos JAR acima ao projeto. Para adicionar os arquivos JAR ao projeto, clique com o botão direito no projeto -> Caminho de construção -> Configurar caminho de construção.
Clique em Adicionar JARs externos e adicione a lista de arquivos JAR acima ao projeto.
Etapa 3:
Antes de criar os arquivos de recursos e arquivos de definição de etapas, precisamos instalar um plugin Natural no Eclipse. Isso pode ser feito copiando e colando o URL para Ajuda -> Instalar Novo Software -> URL
Clique no Próximo botão para instalar o plugin no Eclipse.
Criando um arquivo de característica
Crie pastas separadas para arquivos de recursos e arquivos de definição de etapas na estrutura do projeto. Os arquivos de definição de etapa incluem linhas de codificação Java, enquanto o arquivo de recurso contém instruções em inglês na forma da linguagem Gherkin.
- Crie uma pasta separada para armazenar o arquivo de feição clicando com o botão direito no projeto -> Novo -> Pacote .
- O arquivo de feição pode ser criado navegando para Clique com o botão direito no projeto / pacote -> Novo -> Arquivo .
- Forneça um nome para o arquivo de feição. O arquivo de recurso deve ser seguido pela extensão .feature
- A estrutura do projeto deve ser semelhante à estrutura abaixo.
Criação de um arquivo de definição de etapa
Cada etapa do arquivo de recurso deve ser mapeada para uma definição de etapa correspondente. As tags usadas no arquivo Cucumber Gherkin devem ser mapeadas para sua definição de etapa usando as tags @Given, @When e @Then.
A seguir está a sintaxe de um arquivo de definição de etapa:
Sintaxe:
@TagName (“^ Nome da etapa $”)
Public void methodName ()
{
Definição de Método
}
app cartão de tempo livre para android
Os nomes das etapas devem ser prefixados com o símbolo carat (^) e sufixados com o símbolo ($). O nome do método pode ser qualquer nome válido que seja aceitável de acordo com os padrões de codificação Java. A definição do método inclui instruções de codificação em Java ou qualquer outra linguagem de programação de escolha do testador.
Exemplos de arquivo de recurso e arquivo de definição de etapa
Para criar arquivo de recurso e arquivo de definição de etapa, o seguinte cenário pode ser usado:
Cenário:
- Abra a página de Login de um aplicativo em teste.
- Digite o nome de usuário
- Digite a senha
- Clique no botão Login.
- Verifique se o login do usuário foi bem-sucedido.
Arquivo de recurso:
O cenário acima pode ser escrito na forma de um arquivo de recurso conforme abaixo:
Recurso: Faça login em um aplicativo em teste.
Cenário: Faça login no aplicativo.
Dado Abra o navegador Chrome e inicie o aplicativo.
Quando O usuário insere o nome de usuário no campo Nome do usuário.
E O usuário insere uma senha no campo Senha.
Quando O usuário clica no botão Login.
Arquivo de definição de etapa:
No recurso acima, um arquivo pode ser mapeado para seu arquivo de definição de etapa correspondente, conforme mostrado abaixo. Observe que, para fornecer um link entre o arquivo de característica e o arquivo de definição de etapa, um arquivo executor de teste deve ser criado.
Abaixo está a representação do arquivo de definição de etapa de acordo com seu arquivo de característica.
package com.sample.stepdefinitions; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeDriver; import cucumber.api.java.en.And; import cucumber.api.java.en.Given; import cucumber.api.java.en.When; public class StepDefinition { WebDriver driver; @Given('^Open Chrome browser and launch the application$') public void openBrowser() { driver = new ChromeDriver(); driver.manage().window().maximize(); driver.get('www.facebook.com'); } @When('^User enters username onto the UserName field$') public void enterUserName() { driver.findElement(By.name('username')).sendKeys('test@demo.com'); } @And('^User enters password onto the Password field$') public void enterPassword() { driver.findElement(By.name('password')).sendKeys('test@123'); } @When('^User clicks on Login button$') public void clickOnLogin() { driver.findElement(By.name('loginbutton')).click(); } }
A classe TestRunner é usada para fornecer o link entre o arquivo de recurso e o arquivo de definição de etapa. Abaixo está o exemplo de representação da aparência da classe TestRunner. Uma classe TestRunner é geralmente uma classe vazia sem definição de classe.
Package com.sample.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 { }
Precisamos executar o arquivo de classe TestRunner para a execução de arquivos de recursos e arquivos de definição de etapas.
Exemplos
Abaixo está a representação do arquivo de recursos de vários cenários.
Exemplo 1:
Para verificar se o nome de usuário e a senha estão disponíveis na página de login:
Recurso: Verifique a exibição dos campos de nome de usuário e senha em uma página de login.
Cenário: Para verificar a exibição dos campos de nome de usuário e senha.
Dado O usuário abre o navegador Firefox e navega para o aplicativo em teste.
Quando O usuário navega para uma página de login.
Então Verifique a exibição do campo de nome de usuário na página de Login.
E Verifique a exibição do campo de senha na página de Login.
Exemplo # 2:
Abaixo está o exemplo de palavra-chave de esboço de cenário em Pepino Pepino:
Recurso: Verifique se o login foi bem-sucedido para vários conjuntos de dados de teste.
Esboço do cenário: Para verificar se o login foi bem-sucedido para vários conjuntos de dados de teste.
Dado Abra o navegador Chrome e inicie o aplicativo.
Quando O usuário entra no campo UserName.
E O usuário entra no campo Senha.
Quando O usuário clica no botão Login.
Exemplos:
| nome de usuário | senha |
| usuário1 | senha1 |
| usuário2 | senha2 |
Conclusão
- BDD é uma metodologia para entender a funcionalidade de um aplicativo em representação de texto simples.
- Cucumber é uma ferramenta que usa Behavior Driven Development para escrever testes de aceitação de um aplicativo. É usado para preencher a lacuna de comunicação entre as várias partes interessadas do projeto.
- O principal uso do Cucumber está em sua simplicidade para entender o uso de arquivos de recursos por usuários não técnicos.
Ainda não é tarde para experimentar esta ferramenta Cucumber usando a linguagem Gherkin.
Leitura recomendada
- Tutorial Geb - Teste de automação de navegador usando a ferramenta Geb
- Tutorial Cucumber Selenium: Cucumber Java Selenium WebDriver Integration
- Teste de automação usando a ferramenta Cucumber e Selenium - Selenium Tutorial # 30
- O que é teste de automação (guia definitivo para iniciar a automação de teste)
- Tutorial do Spock: Testando com Spock e Groovy
- Melhores ferramentas de teste de software 2021 [QA Test Automation Tools]
- Tutorial de teste destrutivo e teste não destrutivo
- Teste Funcional Vs Teste Não Funcional