How sharathy27/cucumber_framework_ui_automation works
Purpose and Scope
This is a Java/Maven Cucumber UI-automation framework. It drives browser-based acceptance scenarios, primarily around login, navigation, dynamic-table data, CEO-name verification, and pending-timesheet workflows. The implementation is test-only; no application service or web frontend is present.
Execution Entry Points
Cucumber suites are launched through JUnit-style runner classes:
• Cucumber_Framework/src/test/java/runner/TestRunner.java
• Cucumber_Framework/src/test/java/runner/ReRunner.java
TestRunner is the primary suite entry point; ReRunner likely supports rerunning failures. Maven dependency/build orchestration is defined by Cucumber_Framework/pom.xml.
Behavior Specification Layer
Gherkin feature files define executable business scenarios and bind to Java step implementations:
• Cucumber_Framework/src/test/resources/features/Verify_CEO_Name.feature
• Cucumber_Framework/src/test/resources/features/Get_Data_From_Dynamic_Table.feature
• Cucumber_Framework/src/test/java/steps/Verify_CEO_Name_StepDef.java
• Cucumber_Framework/src/test/java/steps/Dynamic_Table_StepDefinition.java
Control flow is runner → feature scenario → matching Cucumber step definition → page-object operation → Selenium browser interaction/assertion.
Step Definition Orchestration
The steps package is the scenario orchestration boundary. It translates Gherkin language into reusable UI actions, navigation, extraction, and verification logic. Shared lifecycle or cross-scenario actions are centralized separately:
• Cucumber_Framework/src/test/java/steps/CommonStepDefinitions.java
• Cucumber_Framework/src/test/java/steps/Verify_Menu_Button_Functionality_StepDef.java
• Cucumber_Framework/src/test/java/steps/Verify_Pending_Timesheets_StepDef.java
Steps should delegate browser-specific selectors and operations to page objects rather than directly owning UI mechanics.
Page Object UI Boundary
Page objects represent the target application’s screens and isolate Selenium locators/interactions from scenario logic:
• Cucumber_Framework/src/test/java/pageObjects/LoginPage.java
• Cucumber_Framework/src/test/java/pageObjects/HomePage.java
• Cucumber_Framework/src/test/java/pageObjects/TimePage.java
The likely workflow boundary is authentication through LoginPage, post-login navigation/action through HomePage, then time/timesheet operations through TimePage.
Browser, Runtime, and Configuration
The framework runs on the JVM and uses a shared driver-management layer for browser lifecycle and a global-values layer for environment-wide state:
• Cucumber_Framework/src/test/java/constants/DriverManager.java
• Cucumber_Framework/src/test/java/constants/GlobalVariables.java
• Cucumber_Framework/src/test/resources/config.properties
Selenium WebDriver is the material external automation runtime implied by the page-object/driver architecture. Target application URL, credentials, browser selection, or similar environment parameters are expected to cross into execution through config.properties.
Evidence, Logging, and Reports
Execution produces persisted reporting artifacts in HTML, JSON, PDF, Excel, and Spark formats:
• Cucumber_Framework/src/test/resources/extent.properties
• Cucumber_Framework/src/test/resources/log4j2.properties
• Cucumber_Framework/test-output/HtmlReport/ExtentHtml.html
• Cucumber_Framework/test-output/SparkReport/Spark.html
Logs are retained under Cucumber_Framework/logs, while screenshot capture is provisioned by Cucumber_Framework/Screenshots. These outputs form the post-execution observability boundary rather than inputs to test control flow.
Main entry points: TestRunner.java Primary suite runner · DriverManager.java Driver manager · HomePage.java Home page · Verify_CEO_Name_StepDef.java CEO step definitions
Components 18
Execution
- Maven build · Resolves test dependencies and launches suites.
Cucumber_Framework/pom.xml - Primary suite runner
Cucumber_Framework/src/test/java/runner/TestRunner.java - Failure rerun runner
Cucumber_Framework/src/test/java/runner/ReRunner.java - Environment config · Supplies target and browser settings.
Cucumber_Framework/src/test/resources/config.properties
Scenarios
- CEO verification scenarios
Cucumber_Framework/src/test/resources/features/Verify_CEO_Name.feature - Dynamic-table scenarios
Cucumber_Framework/src/test/resources/features/Get_Data_From_Dynamic_Table.feature
Automation Layers
- CEO step definitions
Cucumber_Framework/src/test/java/steps/Verify_CEO_Name_StepDef.java - Dynamic-table steps
Cucumber_Framework/src/test/java/steps/Dynamic_Table_StepDefinition.java - Shared workflow steps · Lifecycle, menu, and pending-timesheet scenario orchestration.
Cucumber_Framework/src/test/java/steps/CommonStepDefinitions.java - Login page
Cucumber_Framework/src/test/java/pageObjects/LoginPage.java - Home page · Post-login navigation and actions.
Cucumber_Framework/src/test/java/pageObjects/HomePage.java - Time page · Timesheet operations and verification.
Cucumber_Framework/src/test/java/pageObjects/TimePage.java - Driver manager · Creates and manages shared Selenium WebDriver sessions.
Cucumber_Framework/src/test/java/constants/DriverManager.java - Global state
Cucumber_Framework/src/test/java/constants/GlobalVariables.java
Evidence
- Reporting configuration
Cucumber_Framework/src/test/resources/extent.properties - Execution reports · Persisted post-execution test evidence.
Cucumber_Framework/test-output/HtmlReport/ExtentHtml.html - Logs and screenshots
Cucumber_Framework/logs
Other components
- Target application browser · External browser-driven application under test.
Connections 21
- Maven build → Primary suite runner: launches
- Maven build → Failure rerun runner: launches
- Environment config → Driver manager: configures
- Primary suite runner → CEO verification scenarios: executes
- Primary suite runner → Dynamic-table scenarios: executes
- Failure rerun runner → Primary suite runner: reruns failures from
- CEO verification scenarios → CEO step definitions: binds steps
- Dynamic-table scenarios → Dynamic-table steps: binds steps
- CEO step definitions → Login page: authenticates through
- CEO step definitions → Home page: verifies through
- Dynamic-table steps → Home page: navigates through
- Shared workflow steps → Home page: drives navigation
- Shared workflow steps → Time page: drives timesheets
- Login page → Driver manager: uses
- Home page → Driver manager: uses
- Time page → Driver manager: uses
- Driver manager → Target application browser: controls
- Global state → Shared workflow steps: supplies state
- Primary suite runner → Reporting configuration: configures evidence
- Reporting configuration → Execution reports: produces
- Primary suite runner → Logs and screenshots: emits