{"id":28488486,"url":"https://github.com/jagatheshwarann/cucumberbdd-test-framework","last_synced_at":"2026-02-23T08:02:57.636Z","repository":{"id":273850097,"uuid":"613402142","full_name":"JagatheshwaranN/CucumberBDD-Test-Framework","owner":"JagatheshwaranN","description":"This repository contains a Cucumber BDD-based Automation Framework built using Java, Selenium WebDriver, and TestNG, designed to streamline the testing of web applications. The framework promotes collaboration through human-readable feature files and is adaptable to suit the requirements of any modern BDD-driven automation project.","archived":false,"fork":false,"pushed_at":"2025-04-04T16:00:02.000Z","size":367,"stargazers_count":2,"open_issues_count":1,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-10-25T08:12:36.025Z","etag":null,"topics":["aes-encryption","ashot","bdd-framework","cucumber","cucumber-java","cucumber-report","gherkin","java","log4j2","maven","page-object-model","pico-container","restassured","selenium","selenium-webdriver","testng"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/JagatheshwaranN.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-03-13T13:59:01.000Z","updated_at":"2025-04-04T16:00:05.000Z","dependencies_parsed_at":"2025-02-09T09:18:49.221Z","dependency_job_id":"1a0aa0c7-00a5-4931-bb2a-5ad51c8bc3dd","html_url":"https://github.com/JagatheshwaranN/CucumberBDD-Test-Framework","commit_stats":null,"previous_names":["jagatheshwarann/cucumberbddtestframework","jagatheshwarann/cucumberbdd-test-framework"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/JagatheshwaranN/CucumberBDD-Test-Framework","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JagatheshwaranN%2FCucumberBDD-Test-Framework","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JagatheshwaranN%2FCucumberBDD-Test-Framework/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JagatheshwaranN%2FCucumberBDD-Test-Framework/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JagatheshwaranN%2FCucumberBDD-Test-Framework/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/JagatheshwaranN","download_url":"https://codeload.github.com/JagatheshwaranN/CucumberBDD-Test-Framework/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JagatheshwaranN%2FCucumberBDD-Test-Framework/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29739758,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-23T07:44:07.782Z","status":"ssl_error","status_checked_at":"2026-02-23T07:44:07.432Z","response_time":90,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["aes-encryption","ashot","bdd-framework","cucumber","cucumber-java","cucumber-report","gherkin","java","log4j2","maven","page-object-model","pico-container","restassured","selenium","selenium-webdriver","testng"],"created_at":"2025-06-08T05:31:00.057Z","updated_at":"2026-02-23T08:02:57.621Z","avatar_url":"https://github.com/JagatheshwaranN.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🖥️ Cucumber BDD Test Framework\n\n## 📖 Overview\n\nThis repository contains a Cucumber BDD-based Test Automation Framework built using Java, Selenium WebDriver, and TestNG. It supports Behavior-Driven Development (BDD) for web application testing, enabling collaboration between technical and non-technical stakeholders through human-readable feature files. The framework is modular, scalable, and maintainable, with a clear separation of concerns. It integrates custom services, utility classes, page components, and step definitions, and supports both UI and API testing, data-driven testing, and service layer validation, making it adaptable for a wide range of automation projects.\n\n---\n\n## ✨ Key Features\n\n🧪 **Behavior-Driven Development (BDD)** with Cucumber and Gherkin syntax  \n⚙️ **Modular Page Object Model (POM)** for UI automation  \n🔄 **Data-Driven Testing** using Excel and Custom DataTable Mappers  \n🔗 **Service Layer Support** for API interaction and validation  \n🔍 **Custom Parameter \u0026 Data Table Type Bindings** for reusable step logic  \n🧩 **Hooks and Context Management** for clean stateful execution  \n📸 **Screenshot Capture and Logging** integrated with step failures  \n📊 **Advanced Reporting** using ExtentReports  \n🔧 **Multiple Environments** via `stage.properties`, `prod.properties`  \n🚀 **TestNG and Cucumber CLI Runners** for flexible execution  \n🌐 **Selenium WebDriver** for automated browser interaction  \n🔐 **AES Encryption** for encryption and decryption of sensitive data  \n\n---\n\n## 🔧 Prerequisites\n\nBefore running the framework, ensure the following tools are installed on your system:\n\n✅ Java 11 or higher  \n✅ Maven (for dependency management)  \n✅ IDE (e.g., IntelliJ IDEA, Eclipse)  \n\n---\n\n## 🚀 Getting Started\n\nFollow the steps below to set up and execute your tests using the **Cucumber BDD Test Framework**.\n\n---\n\n### 1️⃣ Clone the Repository\n\n```bash\ngit clone https://github.com/JagatheshwaranN/CucumberBDDTestFramework.git\n```\n\n---\n\n### 2️⃣ Set Up the Project\n\nNavigate to the project directory and run the following Maven command:\n\n```bash\nmvn clean install\n```\n\nThis will download all required dependencies and compile the project.\n\n---\n\n### 3️⃣ Run Tests\n\nYou can execute your tests using Maven with custom parameters:\n\n```bash\nmvn test -DBrowser=Chrome -DRunType=Local -Dorg.freemarker.loggerLibrary=NONE -DFULL_PAGE_SCREENSHOT=No\n```\n\n**Parameters:**\n- `Browser` → Specify the browser (e.g., Chrome, Firefox)  \n- `RunType` → Choose between Local or Remote execution  \n- `FULL_PAGE_SCREENSHOT` → Enable/Disable full-page screenshot capture  \n\n---\n\n### 4️⃣ Generating Reports\n\n📁 Reports and logs will be auto-generated after test execution:\n\n✅ **Cucumber HTML Report** → `/target/cucumber`  \n✅ **ExtentReports HTML Report** → `/target/reports`  \n✅ **TestNG HTML Report** → `/target/surefire-reports`  \n✅ **Screenshots for failed steps** → `/resources/screenshots`  \n✅ **Detailed Cucumber HTML Report** → `/target/cucumber-html-reports`  \n\n\u003e 🔔 **Note:**  \n\u003e To generate the **Detailed Cucumber Report**, use the following command:\n\u003e\n\u003e ```bash\n\u003e mvn verify\n\u003e ```\n\u003e instead of:\n\u003e ```bash\n\u003e mvn test\n\u003e ```\n\n---\n\n## 🤝 Contributions\n\nFeel free to fork the repository, raise issues, or submit pull requests to enhance the framework further!\n\n---\n\n## 🧑🏻 Maintainer\n\nBuilt and maintained with ❤️ by **Jagatheshwaran N**  \nGitHub: [@JagatheshwaranN](https://github.com/JagatheshwaranN)\n\n---\n\n## 📜 License\n\nThis project is open-sourced under the [MIT License](LICENSE).\n\n---\n\n## 📁 Directory Structure\n\n```plaintext\nCucumberBDDTestFramework/\n├── src/\n│   ├── main/\n│   │   ├── java/\n│   │   │   └── com/\n│   │   │       └── qa/\n│   │   │           └── ctf/\n│   │   │               ├── base/\n│   │   │               │   ├── ElementActions\n│   │   │               │   ├── Page\n│   │   │               │   └── PageComponent\n│   │   │               ├── constant/\n│   │   │               │   ├── BrowserType\n│   │   │               │   ├── RunType\n│   │   │               │   └── TestConstants\n│   │   │               ├── context/\n│   │   │               │   └── TestContext\n│   │   │               ├── factory/\n│   │   │               │   ├── BrowserFactory\n│   │   │               │   ├── DriverFactory\n│   │   │               │   └── RunFactory\n│   │   │               ├── handler/\n│   │   │               │   ├── AlertHandler\n│   │   │               │   ├── BrowserHandler\n│   │   │               │   ├── DateTimeHandler\n│   │   │               │   ├── DropDownHandler\n│   │   │               │   ├── InteractionHandler\n│   │   │               │   ├── JavaScriptHandler\n│   │   │               │   ├── VerificationHandler\n│   │   │               │   └── WaitHandler\n│   │   │               ├── hook/\n│   │   │               │   └── TestHook\n│   │   │               ├── service/\n│   │   │               │   ├── CookieMapper\n│   │   │               │   ├── ServiceRequest\n│   │   │               │   └── SpecBuilder\n│   │   │               └── util/\n│   │   │                   ├── EncryptionManager\n│   │   │                   ├── ExcelReader\n│   │   │                   ├── ExceptionHub\n│   │   │                   ├── FileReader\n│   │   │                   └── ScreenCapture\n│   └── resources/\n│       └── log4j2.properties\n├── test/\n│   ├── java/\n│   │   └── com/\n│   │       └── qa/\n│   │           └── ctf/\n│   │               └── app/\n│   │                   ├── Cookies\n│   │                   ├── CustomDataTableType\n│   │                   ├── CustomParameterType\n│   │                   ├── base/\n│   │                   │   ├── PageBase\n│   │                   │   └── PageFactory\n│   │                   ├── constant/\n│   │                   │   ├── Endpoint\n│   │                   │   └── Message\n│   │                   ├── context/\n│   │                   │   └── AppContext\n│   │                   ├── domain/\n│   │                   │   ├── BillingDetails\n│   │                   │   ├── ExcelDataToDataTable\n│   │                   │   └── Product\n│   │                   ├── objects/\n│   │                   │   ├── AccountPageObject\n│   │                   │   ├── CartPageObject\n│   │                   │   ├── CheckoutPageObject\n│   │                   │   ├── LoginPageObject\n│   │                   │   └── StorePageObject\n│   │                   ├── pages/\n│   │                   │   ├── AccountPage\n│   │                   │   ├── CartPage\n│   │                   │   ├── CheckoutPage\n│   │                   │   ├── LoginPage\n│   │                   │   └── StorePage\n│   │                   ├── runner/\n│   │                   │   └── TestNGRunnerTest\n│   │                   ├── service/\n│   │                   │   └── CartService\n│   │                   └── steps/\n│   │                       ├── BaseSteps\n│   │                       ├── CartSteps\n│   │                       ├── CheckoutSteps\n│   │                       ├── CustomerSteps\n│   │                       ├── LoginSteps\n│   │                       └── StoreSteps\n│   └── resources/\n│       ├── config/\n│       │   ├── prod.properties\n│       │   └── stage.properties\n│       ├── data/\n│       │   └── testData.xlsx\n│       ├── features/\n│       │   ├── AddToCartOnStore.feature\n│       │   ├── LoginToStore.feature\n│       │   ├── PlaceOrderAsGuest.feature\n│       │   ├── PlaceOrderAsGuestByService.feature\n│       │   └── PlaceOrderWithExcelDataAsGuest.feature\n│       ├── logs/\n│       │   └── AutomationExecution.log\n│       ├── screenshots/\n|       |   └── 19_03_2025_11_21_07.png\n│       ├── xml/\n│       |   └── testNG.xml\n│       ├── extent.properties\n│       ├── cucumber.properties\n│       ├── html-config.xml\n│       ├── pdf-config.yaml\n│       └── spark-config.xml\n└── pom.xml\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjagatheshwarann%2Fcucumberbdd-test-framework","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjagatheshwarann%2Fcucumberbdd-test-framework","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjagatheshwarann%2Fcucumberbdd-test-framework/lists"}