For every cucumber project there is a single directory at the root of the project named "features". This is where all of your cucumber features will reside. In this directory you will find additional directories, which is step_definition and support directories

What is "Feature File"?

Features file contain high level description of the Test Scenario in simple language. It is known as Gherkin. Gherkin is a plain English text language

Feature File consist of following components -

  • Feature: A feature would describe the current test script which has to be executed.
  • Scenario: Scenario describes the steps and expected outcome for a particular test case.
  • Scenario Outline: Same scenario can be executed for multiple sets of data using scenario outline. The data is provided by a tabular structure separated by (I I).
  • Given: It specifies the context of the text to be executed. By using datatables "Given", step can also be parameterized.
  • When: "When" specifies the test action that has to performed
  • Then: The expected outcome of the test can be represented by "Then"

Sample Feature File Example:

Feature: Visit career guide page in
Scenario: Visit
Given: I am on
When: I click on career guide menu
Then: I should see career guide page

Cucumber Basics

What is "Step Definition"?

Step definition maps the Test Case Steps in the feature files(introduced by Given/When/Then) to code. It which executes the steps on Application Under Test and checks the outcomes against expected results. For a step definition to be executed, it must match the given component in a feature. Step definition is defined in ruby files under "features/step_definitions/*_steps.rb".

Example for Step Definition: Here we will above example of browsing do We will use features like "When, Then, Given "

Step 1:

Given (/^ I am on$/) do

Browser.goto "" -This will visit career.guru99 on browser


Step 2:
When (/^ click on career guide menu$/) do

Browser.text (:name, " career guide" ).click – This will click "career guide menu"

Step 3:

Then (/^ I should see career guide page$/) do

Browser.goto "" - It will visit "career guide page"



  • You need 2 Files – Features and Step Definition to execute a Cucmber test scenario
  • Features file contain high level description of the Test Scenario in simple language
  • Steps Definition file contains the actual code to execute the Test Scenario in the Features file.