Cucumber Report Generation - Example

 Here’s a complete working example of Cucumber Report Generation using:

  • ✅ Feature File

  • ✅ Step Definition (Steps.java)

  • TestNGRunner.java

  • ✅ Auto-generated HTML/JSON report


📁 Project Structure:

AutomationCucumber/
├── src/test/java/ │ ├── features/login.feature │ ├── stepDefinitions/Steps.java │ └── cucumberOptions/TestNGRunner.java └── pom.xml (includes required plugins)

✅ 1. Feature Filelogin.feature

📄 src/test/java/features/login.feature


Feature: Login Functionality Scenario: Valid Login Given user is on login page When user enters username "admin" and password "1234" Then homepage should be displayed

✅ 2. Step DefinitionsSteps.java

📄 src/test/java/stepDefinitions/Steps.java


package stepDefinitions; import io.cucumber.java.en.*; public class Steps { @Given("user is on login page") public void user_is_on_login_page() { System.out.println("User navigated to login page"); } @When("user enters username {string} and password {string}") public void user_enters_credentials(String username, String password) { System.out.println("Entered username: " + username + ", password: " + password); } @Then("homepage should be displayed") public void homepage_should_be_displayed() { System.out.println("Homepage is displayed"); } }

✅ 3. TestNG RunnerTestNGRunner.java

📄 src/test/java/cucumberOptions/TestNGRunner.java


package cucumberOptions; import io.cucumber.testng.AbstractTestNGCucumberTests; import io.cucumber.testng.CucumberOptions; @CucumberOptions( features = "src/test/java/features", glue = "stepDefinitions", plugin = { "pretty", "html:target/cucumber-reports.html", "json:target/cucumber.json" }, monochrome = true ) public class TestNGRunner extends AbstractTestNGCucumberTests { }

✅ 4. Run the Tests

Run TestNGRunner.java. After the test runs:

  • ✅ Console shows "pretty" readable output

  • ✅ HTML report is generated at: target/cucumber-reports.html

  • ✅ JSON report at: target/cucumber.json


📄 Example Output (console)

User navigated to login page Entered username: admin, password: 1234 Homepage is displayed


🧠 Pro Tip:

You can view the HTML report in your browser:

Right-click on: target/cucumber-reports.html → Open with → Browser