{"id":19874286,"url":"https://github.com/avdhutssh/ui-automation_cucumber_selenium","last_synced_at":"2026-04-15T14:03:54.063Z","repository":{"id":259192902,"uuid":"876547020","full_name":"avdhutssh/UI-Automation_Cucumber_Selenium","owner":"avdhutssh","description":"Maven Project for doing UI automation testing Using Cucumber, Selenium, TestNg","archived":false,"fork":false,"pushed_at":"2024-10-25T13:12:53.000Z","size":1599,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-01T01:26:54.995Z","etag":null,"topics":["cucumber","java","maven","selenium"],"latest_commit_sha":null,"homepage":"","language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/avdhutssh.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2024-10-22T06:45:26.000Z","updated_at":"2024-11-27T08:18:17.000Z","dependencies_parsed_at":"2024-11-12T16:23:04.968Z","dependency_job_id":"f3f025ec-fd65-4665-8be8-1b03835be4d2","html_url":"https://github.com/avdhutssh/UI-Automation_Cucumber_Selenium","commit_stats":null,"previous_names":["avdhutssh/ui-automation_cucumber_selenium"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/avdhutssh/UI-Automation_Cucumber_Selenium","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/avdhutssh%2FUI-Automation_Cucumber_Selenium","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/avdhutssh%2FUI-Automation_Cucumber_Selenium/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/avdhutssh%2FUI-Automation_Cucumber_Selenium/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/avdhutssh%2FUI-Automation_Cucumber_Selenium/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/avdhutssh","download_url":"https://codeload.github.com/avdhutssh/UI-Automation_Cucumber_Selenium/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/avdhutssh%2FUI-Automation_Cucumber_Selenium/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":267306876,"owners_count":24067039,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-07-27T02:00:11.917Z","response_time":82,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["cucumber","java","maven","selenium"],"created_at":"2024-11-12T16:22:38.973Z","updated_at":"2026-04-15T14:03:54.032Z","avatar_url":"https://github.com/avdhutssh.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003c!--\n    #/**\n    # * @author Avdhut Shirgaonkar\n    # * Email: avdhut.ssh@gmail.com\n    # * LinkedIn: https://www.linkedin.com/in/avdhut-shirgaonkar-811243136/\n    # */\n    #/***************************************************/\n--\u003e\n\n# 💻 UI Automation Using Selenium, Java, and Cucumber (Maven Project)\n\n## 📑 Table of Contents\n\n- [Introduction](#introduction)\n- [Prerequisites](#prerequisites)\n- [Project Structure](#project-structure)\n- [Getting Started](#getting-started)\n- [Test Execution](#test-execution)\n- [Scenario Overview](#scenario-overview)\n- [Reporting](#reporting)\n- [CICD](#cicd)\n- [Contacts](#contacts)\n\n## 📖 Introduction\n\nThis project contains a Cucumber-based UI automation framework integrated with Selenium WebDriver and TestNG for parallel test execution. It automates test cases for NBA websites such as [Warriors](https://www.nba.com/warriors), utilizing the Page Object Model (POM) to separate test logic from web page elements.\n\nThe framework supports parallel test execution using TestNG and Maven Surefire, allowing seamless scaling for large test suites. It provides detailed reports using Cucumber's HTML plugin and supports CI/CD pipelines using Jenkins or GitHub Actions.\n\n## 🛠️ Prerequisites\n\nBefore you start, ensure you have the following installed:\n\n- **Java Development Kit (JDK)**: Version 8 or later.\n- **Maven**: To manage project dependencies.\n- **Git**: To clone the repository.\n- **An IDE**: (such as IntelliJ IDEA or Eclipse) with TestNG and Cucumber plugins installed.\n\nFor CI/CD:\n\n- **Jenkins**: For automated build and test execution.\n- **GitHub Actions**: Integrated for CI pipelines.\n\n## 📁 Project Structure\n\nThis project follows the **Page Object Model (POM)** approach and includes components designed for flexibility and scalability. Below is an overview of the structure:\n\n```plaintext\n| src/\n├── main/\n│   ├── java/\n│   │   ├── nba/\n│   │   │   ├── 1. AutomationFramework/Utilities/               # Common utility classes\n│   │   │   │   ├── Base.java  # Parent class for Util classes and contain wait utils\n│   │   │   │   ├── BrowserDriverFactory.java  # Browser driver configuration\n│   │   │   │   ├── ElementUtils.java          # Methods for element interactions\n│   │   │   │   ├── FileUtils.java          # Methods for file handling\n│   │   │   │   ├── PropertyReader.java        # Reads properties from config files\n│   │   │   ├── 2. Warriors/PageObjects/\n│   │   │   │   ├── WarriorsHomePage.java      # Home page interactions for Warriors website\n│   │   │   │   ├── WarriorsShopPage.java      # Shop page interactions\n│   │   │   │   ├── WarriorsNewsFeaturesPage.java  # News \u0026 Features interactions\n│   │   │   ├── 3. Bulls/PageObjects/\n│   │   │   │   ├── BullsHomePage.java      # Home page interactions for Bulls website\n│   │   │   ├── 4. Sixers/PageObjects/\n│   │   │   │   ├── SixersHomePage.java      # Home page interactions for Sixers website\n│   └── resources/                             # Configuration files (e.g., log4j.xml, config.properties)\n├── test/\n│   ├── java/\n│   │   ├── nba/\n│   │   │   ├── 1. StepDefinitions            # Step definitions for feature files\n│   │   │   │   ├── warriors/WarriorsSteps.java         # Step definitions for NBA Warriors page scenarios\n│   │   │   │   ├── bulls/BullsSteps.java         # Step definitions for NBA Bulls page scenarios\n│   │   │   │   ├── sixers/SixersSteps.java         # Step definitions for NBA Sixers page scenarios\n│   │   │   ├── 2. Hooks/                      # Cucumber hooks for setup/teardown\n│   │   │   ├── 3. Runners/                    # TestNG runner class for Cucumber\n│   └── resources/                             # Feature files defining test scenarios\n│       └── Features/\n│           ├── coreProduct.feature            # Feature file for Core Product scenarios\n│           ├── deriveProduct1.feature            # Feature file for Derived Product1 scenarios\n│           ├── deriveProduct2.feature            # Feature file for Derived Product2 scenarios\n├── target/                                    # Compiled output and cucumber reports\n├── pom.xml                                    # Maven project file\n└── TestNG.xml                                # TestNG configuration file for managing test suite execution by passing the tags\n```\n\n## ▶️ Getting Started\n\n1. Clone the repository:\n\n```bash\ngit clone https://github.com/avdhutssh/UI-Automation_Cucumber_Selenium.git\n```\n\n2. Navigate to the project directory:\n\n```bash\ncd UI-Automation_Cucumber_Selenium\n```\n\n3. Run Maven clean install to resolve dependencies:\n\n```bash\nmvn clean install\n```\n\nThis will download all required dependencies such as Selenium, Cucumber, TestNG and Log4j.\n\n## 🚀 Test Execution\n\nRun all the test cases using Maven:\n\n### 1. Execute All Tests\n\n```bash\nmvn clean test\n```\n\n### 2. Execute with Specific Tags\n\n```bash\nmvn test -Dcucumber.filter.tags=\"@Regression\"\n```\n\n### 3. Execute with Specific browser\n\n```bash\nmvn clean test -Dbrowser=firefox\n```\n\n### 4. Execute by controlling the parallel thread count\n\n```bash\nmvn clean test -Ddataproviderthreadcount=4\n```\n\n## 📜 Scenario Overview\n\n### Core Product Scenarios\n\n1. Find and Store All Men's Jackets: Automates navigating to the Shop page, selecting Men's Jackets, and storing product information in a text file.\n\n2. Count Video Feeds in News \u0026 Features Section: Navigates to the News \u0026 Features section, counts the total number of video feeds, and counts the feeds present for a specified number of days.\n\n### Derived Product 1 Scenarios\n\n1. Verify and retrive the title of each slide present below tickets menu\n\n### Derived Product 2 Scenarios\n\n1. Find and store all the footer hyperlinks in a CSV file and report the duplicate footer links.\n\n## 🎯 Reporting\n\nThis project uses **cucumber Reports** for detailed reporting of scenario executions, including logs, screenshots, and status updates.\n\nTo view the generated reports:\n\n1. After test execution, navigate to the `target/` directory.\n2. Open the `cucumber-html-report.html` file to view a detailed execution report where required files and logs are added to the cucumber report\n\nYou can also capture screenshots for failed scenario and view them in the cucumber Report.\n\n![CucumberReport](/Misc/CucumberReport.png)\n\n## 🤖 CI/CD Using Jenkins\n\n### 1. Jenkins Integration\n\nYou can integrate the project with Jenkins for Continuous Integration. Follow these steps:\n\n1. Install Maven plugin\n2. Set up a Maven Project Dashboard in Jenkins.\n3. Clone the GitHub repository under Source Code Management\n4. In the Build section, add the following command to run the tests:\n   ```bash\n   mvn clean test\n   ```\n\n![Jenkins-Execution](/Misc/Jenkins.png)\n\n### 2. GitHub Actions\n\nThis project also uses **GitHub Actions** for CI/CD:\n\n- The CI pipeline triggers on every push or pull request to the main branch.\n- It automatically runs the test cases using the TestNG suite on github provided Windows machine and generates the Cucumber Reports as Artifacts.\n- The results can be viewed in the `Actions` tab of the GitHub repository.\n- Refer workflow yaml file for same. [Workflow file](/.github/workflows/maven.yml)\n  ![GitHub Actions](/Misc/GitHub_Actions.png)\n\n\n## 📧 Contacts\n\n- [![Email](https://img.shields.io/badge/Email-avdhut.ssh@gmail.com-green)](mailto:avdhut.ssh@gmail.com)\n- [![LinkedIn](https://img.shields.io/badge/LinkedIn-Profile-blue)](https://www.linkedin.com/in/avdhut-shirgaonkar-811243136/)\n\nFeel free to reach out if you have any questions, or suggestions.\n\nHappy Learning!\n\nAvdhut Shirgaonkar\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Favdhutssh%2Fui-automation_cucumber_selenium","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Favdhutssh%2Fui-automation_cucumber_selenium","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Favdhutssh%2Fui-automation_cucumber_selenium/lists"}