Crie o seu primeiro Cucumber Roteiro (2 exemplos)

โšก Resumo Inteligente

Cucumber A execuรงรฃo de scripts ajuda vocรช a transformar cenรกrios Gherkin em linguagem simples em testes automatizados executรกveis โ€‹โ€‹usando arquivos de definiรงรฃo de etapas, permitindo que as equipes validem o comportamento, compartilhem intenรงรตes entre as partes interessadas e entreguem projetos confiรกveis โ€‹โ€‹orientados a BDD. Cucumber or Cucumber-JVM.

  • ???? Noรงรตes bรกsicas sobre pepinos em conserva: Os arquivos de funcionalidades descrevem cenรกrios na sintaxe Dado-Quando-Entรฃo, que tanto os testadores quanto as equipes de negรณcios podem ler.
  • ๐Ÿ“ Definiรงรฃo dos passos: Cada etapa do Gherkin corresponde a um bloco de cรณdigo escrito em Ruby. Javaou outro idioma compatรญvel.
  • โš™๏ธ Configuraรงรฃo do projeto: O RubyMine ou qualquer IDE pode hospedar a pasta features, a pasta step_definitions e a configuraรงรฃo do executor.
  • โœ… Dois exemplos: Um cenรกrio de multiplicaรงรฃo e um GuruO cenรกrio de login de demonstraรงรฃo 99 demonstra a execuรงรฃo BDD de ponta a ponta.
  • ๐Ÿงช Versรตes modernas: Cucumber-JVM 7.x e Cucumber O Ruby 9.x continua sendo a versรฃo estรกvel atual usada em todos os pipelines de CI.

Cucumber Script

Neste tutorial, vocรช criarรก Cucumber Scripts para testar dois cenรกrios usando a sintaxe Gherkin e arquivos de definiรงรฃo de etapas. Cucumber ร‰ um framework BDD popular que conecta arquivos de funcionalidades em linguagem natural com cรณdigo de teste executรกvel, permitindo que analistas de negรณcios e desenvolvedores colaborem nas mesmas especificaรงรตes.

Cucumber Roteiro 1: Multiplicar 2 Numbers

Neste primeiro Cucumber Por exemplo, vocรช escreverรก um arquivo de funcionalidade simples que multiplica dois nรบmeros e, em seguida, criarรก um arquivo de definiรงรฃo de etapa correspondente em Ruby. O mesmo fluxo de trabalho se aplica se vocรช usar Cucumber-JVM 7.x com Java ou Kotlin em IntelliJ IDEA.

Passo 1) Abra o editor RubyMine atravรฉs do Windows menu Iniciar.

Cucumber Roteiro: Multiplicar 2 Numbers

Passo 2) No editor RubyMine, clique em Criar novo projeto.

Cucumber Roteiro: Multiplicar 2 Numbers

Passo 3) Selecione o local do projeto e clique em โ€œCriarโ€.

Cucumber Roteiro: Multiplicar 2 Numbers

Passo 4) Crie um diretรณrio para seus arquivos de funcionalidades dentro da raiz do projeto.

Cucumber Roteiro: Multiplicar 2 Numbers

Passo 5) Dรช o nome de diretรณrio como "Recursos". Cucumber irรก analisar esta pasta automaticamente.

Cucumber Roteiro: Multiplicar 2 Numbers

Passo 6) Crie e salve o arquivo em โ€œsuapasta/recursos/โ€ com o nome โ€œnome_do_arquivo.recursoโ€.

Clique aqui. se o vรญdeo nรฃo estiver acessรญvel

Cucumber Roteiro: Multiplicar 2 Numbers

Cucumber Roteiro: Multiplicar 2 Numbers

Passo 7) Para executar o cenรกrio, salve o seguinte programa dentro do arquivo Feature. Observe como as palavras-chave do Gherkin, como Feature, Scenario, Given, When e Then, descrevem o comportamento do teste.

Cucumber Roteiro: Multiplicar 2 Numbers

Code:

Feature: Multiplication 
  I multiply two numbers 
	Scenario: multiply a and b 
	  Given I have variable a 
	  And I have variable b 
      When I multiplication a and b 
      Then I display the Result

Passo 8) Agora execute seu primeiro arquivo de recurso.

Clique em โ€œIniciar Prompt de Comando com Rubyโ€.

Cucumber Roteiro: Multiplicar 2 Numbers

O resultado obtido รฉ mostrado abaixo.

Cucumber Roteiro: Multiplicar 2 Numbers

Vocรช verรก um erro porque precisa escrever um arquivo de Definiรงรฃo de Etapa que corresponda ao arquivo de Funcionalidade.

Passo 9) Crie um arquivo de Definiรงรฃo de Etapas para o seu arquivo de Funcionalidade.

Crie uma nova pasta no editor RubyMine chamada โ€œstep_definitionโ€.

Cucumber Roteiro: Multiplicar 2 Numbers

Cucumber Roteiro: Multiplicar 2 Numbers

Passo 10) Salve o arquivo em โ€œsuapasta/features/step_definitionsโ€ com o nome test_step.rb.

Cucumber Roteiro: Multiplicar 2 Numbers

Cucumber Roteiro: Multiplicar 2 Numbers

Passo 11) Insira o seguinte cรณdigo no arquivo de Definiรงรฃo de Etapas. Cada bloco corresponde a uma etapa Gherkin do arquivo de Funcionalidades.

Cucumber Roteiro: Multiplicar 2 Numbers

Code :

Given(/^I have variable a$/) do 
  @a = 50
end

And(/^I have variable b$/) do 
  @b = 70 
end

When(/^I multiplication a and b$/) do 
  @mul = @a * @b
end

Then(/^I display the Result$/) do 
  puts "Multiplication of #{@a} and #{@b} is #{@mul}"
end

Passo 12) Execute o arquivo de recursos novamente.

Cucumber Roteiro: Multiplicar 2 Numbers

O resultado รฉ apresentado abaixo.

Cucumber Roteiro: Multiplicar 2 Numbers

Cucumber Script 2: Verificar saรญda quando o ID do e-mail รฉ inserido ou nรฃo inserido

Neste segundo exemplo, vocรช usarรก Ruby com Watir para executar um navegador e validar dois cenรกrios de registro no GuruSite de demonstraรงรฃo 99. Os mesmos padrรตes se aplicam se vocรช adotar Cucumber-JVM 7.x com Selenium WebDriver e Java.

Neste exemplo usamos Ruby.

Cenรกrio de TesteVerificar o resultado quando o endereรงo de e-mail NรƒO for inserido.

Etapas do teste:

  1. Navegador aberto
  2. ir para https://demo.guru99.com/
  3. Do nรฃo insira o ID do e-mail
  4. Clique em Submit

Cenรกrio de TesteVerificar a saรญda quando o endereรงo de e-mail for inserido.

Etapas do teste:

  1. Navegador aberto
  2. ir para https://demo.guru99.com/
  3. Insira o ID do e-mail
  4. Clique em Submit

Code No arquivo de recursos:

Feature: guru99 Demopage Login
To Login in Demopage we have to enter login details
Scenario: Register On Guru99 Demopage without email
Given I am on the Guru99 homepage
When enter blank details for Register
Then error email shown
Scenario: Register On Guru99 Demopage with valid email
Given I am on the Guru99 homepage
When enter details for Register
Then login details shown

Code No arquivo de definiรงรฃo de etapas:

require 'watir-webdriver'

require 'colorize'

browser = Watir::Browser.new

Given (/^I am on the Guru99 homepage$/)do

browser.goto "https://demo.guru99.com"

end

When (/^enter blank details for Register$/)do

browser.text_field(:name,"emailid").set(" ")

browser.button(:name,"btnLogin").click

end

Then (/^error email shown$/)do

puts " Email is Required".red

browser.close

end

When (/^enter details for Register$/)do

browser = Watir::Browser.new

browser.goto "https://demo.guru99.com"

browser.text_field(:name,"emailid").set("<a href="mailto:guru99@gmail.com">guru99@gmail.com</a>")

browser.button(:name,"btnLogin").click

end

Then (/^login details shown$/)do

puts " Sucessfully register"

browser.close

end

Execute o cรณdigo no prompt de comando e vocรช verรก a seguinte saรญda.

Verificar saรญda quando o ID de e-mail รฉ inserido ou nรฃo inserido

Perguntas Frequentes

Um arquivo de funcionalidades (Feature file) รฉ um arquivo de texto simples com a extensรฃo .feature que usa a sintaxe Gherkin para descrever uma funcionalidade de um aplicativo. Ele agrupa cenรกrios relacionados, escritos com as etapas Dado, Quando e Entรฃo, para que as partes interessadas nรฃo tรฉcnicas possam ler e validar o comportamento juntamente com os desenvolvedores.

Cada etapa do Gherkin รฉ composta apenas de texto. Cucumber Precisa de uma definiรงรฃo de passo que mapeie o passo para cรณdigo executรกvel em Ruby. Javaou outro idioma. Sem esse mapaping, o executor reporta etapas indefinidas e o cenรกrio nรฃo consegue executar a lรณgica pretendida.

Cucumber-JVM 7.x รฉ a versรฃo estรกvel atual e รฉ recomendada para novos usuรกrios. Java e projetos Kotlin. Cucumber Ruby 9.x continua sendo a escolha moderna para equipes Ruby. Ambas as versรตes oferecem suporte. JUnit 5. Execuรงรฃo paralela e filtragem baseada em tags para pipelines de CI.

Assistentes de IA analisam histรณrias de usuรกrios, critรฉrios de aceitaรงรฃo e defeitos histรณricos para elaborar cenรกrios Gherkin no formato Dado-Quando-Entรฃo. Eles sugerem casos extremos, caminhos alternativos e sugestรตes de tags para que as equipes de BDD (Desenvolvimento Orientado a Comportamento) cubram mais comportamentos sem precisar gastar horas escrevendo manualmente cada arquivo de funcionalidade.

Sim. As ferramentas de IA leem arquivos de recursos, comparam cada etapa do Gherkin com o cรณdigo existente e criam novos mรฉtodos de definiรงรฃo de etapas em Ruby ou JavaEles geram cรณdigo boilerplate, expressรตes regulares de parรขmetros e stubs de asserรงรฃo para que os desenvolvedores apenas refinem a lรณgica de negรณcios, em vez de escrever manualmente cada funรงรฃo de integraรงรฃo.

Resuma esta postagem com: