{"id":28331226,"url":"https://github.com/shababahmedd/selenium4finance","last_synced_at":"2026-04-18T02:33:22.617Z","repository":{"id":292546991,"uuid":"971461776","full_name":"ShababAhmedd/Selenium4Finance","owner":"ShababAhmedd","description":"Full source code of the Selenium-based automation suite for DailyFinance web app, including test scripts, configuration, and Allure reports.","archived":false,"fork":false,"pushed_at":"2025-05-11T18:55:33.000Z","size":10326,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-19T02:37:59.676Z","etag":null,"topics":["allure-report","apache-commons-csv","automation-testing","chromedriver","data-driven-testing","gmail-api","gradle","java","java-faker","oop","page-object-model","pagefactory","sdet","selenium","selenium-webdriver","simple-json","testng","web-table-scraping"],"latest_commit_sha":null,"homepage":"","language":"Java","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/ShababAhmedd.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,"zenodo":null}},"created_at":"2025-04-23T14:57:38.000Z","updated_at":"2025-05-11T19:18:43.000Z","dependencies_parsed_at":"2025-05-10T21:29:55.816Z","dependency_job_id":"05c09fd7-f1a0-44e7-a74d-d11a29f2768a","html_url":"https://github.com/ShababAhmedd/Selenium4Finance","commit_stats":null,"previous_names":["shababahmedd/testng","shababahmedd/selenium4finance"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ShababAhmedd/Selenium4Finance","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ShababAhmedd%2FSelenium4Finance","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ShababAhmedd%2FSelenium4Finance/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ShababAhmedd%2FSelenium4Finance/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ShababAhmedd%2FSelenium4Finance/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ShababAhmedd","download_url":"https://codeload.github.com/ShababAhmedd/Selenium4Finance/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ShababAhmedd%2FSelenium4Finance/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":264958623,"owners_count":23689035,"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","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":["allure-report","apache-commons-csv","automation-testing","chromedriver","data-driven-testing","gmail-api","gradle","java","java-faker","oop","page-object-model","pagefactory","sdet","selenium","selenium-webdriver","simple-json","testng","web-table-scraping"],"created_at":"2025-05-26T18:29:12.721Z","updated_at":"2026-04-18T02:33:17.594Z","avatar_url":"https://github.com/ShababAhmedd.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Daily Finance Test Suite\nThis is a Selenium-based test automation project using Java, TestNG, and the Page Object Model (POM) design pattern. It automates critical user workflows on [Daily Finance App](https://dailyfinance.roadtocareer.net/), including registration, password reset, profile updates, adding daily costs, search box, admin verification, and data scraping.\n\n\n##  Features Covered\n\n-  User registration with dynamic Gmail ID\n-  Email confirmation via Gmail API\n-  Password reset with negative and positive test cases\n-  Login with updated credentials\n-  Adding cost with all and mandatory fields\n-  Profile update with email change\n-  Admin login and verification of updated user\n-  Registration of users from CSV file\n-  Web table data scraping and writing to a text file\n-  All tests follow the POM (Page Object Model) structure\n\n\n##  Tech Stack Used\n\n- **Java** – Programming language\n- **Selenium WebDriver** – For browser automation\n- **TestNG** – Test framework for structuring and executing tests\n- **Gradle** – Project and dependency management\n- **Apache Commons CSV** – For reading user data from CSV files\n- **REST Assured** – For Gmail API integration and email validation\n- **Allure** – For test reporting\n- **Git \u0026 GitHub** – Version control\n\n\n##  Setup Instructions\n\n1. **Clone the repository**\n\n   ```bash\n      git clone https://github.com/ShababAhmedd/Selenium4Finance.git\n      cd Selenium4Finance\n   ```\n\n 2. **Open the project in IntelliJ IDEA or your preferred IDE**\n\n   - Choose **Gradle** as the build system\n   - Choose **Groovy** as the Gradle DSL\n  \n3. **Let Gradle resolve all dependencies**\n   - Dependencies are managed in `build.gradle`\n   - All the necessary dependencies are already downloaded.\n     \n4. **Required Resource Files**\n   Before running the project, create the following files inside `src/test/resources/`:\n   - `config.properties` – Holds your Gmail API token. Use `config.sample.properties` as a reference.\n   - `users.csv` – Stores user data to be registered. Use `users.sample.json` as a template. Update the file with the user data to be registered. \n   - `localStorage.json` – Used for storing local auth tokens. Use `localStorage.sample.json` as a reference (just create the file empty. The authToken and authTokenData will be written after running the project).\n\u003e These files are excluded from version control for security. You must create them manually based on the provided samples.\n\u003e These sample files can be found within `sample-resources` which is situated at the root of this project.\n\n5. **Configure Gmail API Token**\n\n   - Open `src/test/resources/config.properties`\n   - Add your Gmail access token like this:\n     ```base\n        g_token = your_generated_gmail_token\n     ```\n   \u003e - Gmail API token must be refreshed manually after expiration.\n\n##  Running the Tests\n- To execute the entire regression suite, run:\n   ```bash\n   gradle clean test -PsuiteName=\"regressionSuite.xml\"\n   ```\n\n- To run with admin credentials (securely passed via CLI):\n   ```bash\n   gradle clean test -PsuiteName=\"regressionSuite.xml\" -Pemail=\"admin@test.com\" -Ppassword=\"admin123\"\n   ```\n- Individual test classes can also be run via CLI or IDE. To execute a specific test class (e.g., ItemTestRunner) directly via CLI:\n  ```bash\n   gradle clean test --tests \"testrunner.ItemTestRunner\"\n  ```\n\n\n## Generating Allure Reports\n\n1. **Run your tests** using Gradle as usual:\n2. Generate Allure results:\n   If your project is configured with the Allure plugin, run:\n   ```bash\n   allure generate allure-results --clean -output\n   ```\n3. Open the report in your browser:\n   ```bash\n   allure serve allure-results\n   ```\n\n## Video Demonstration\n### A complete screen recording of the automation test suite execution has been captured:\nhttps://github.com/user-attachments/assets/864968b1-a629-40fe-aabe-fc2f84188646\n\n## Allure Report\n- Overview:\n  ![Allure Report Overview](screenshots/allure_overview.png)\n- Behaviours:\n  ![Allure Report Behaviours](screenshots/allure_behaviours.png)\n  \n## Test Case Documentation\n[Standard Test Case](https://docs.google.com/spreadsheets/d/1FfP8uhOovGiPdhLYGbcd3hMMJA67-N6T9a2mAqXDDN4/edit?usp=sharing)\n\n##  Project Structure\n```\nTestNG_project/\n├── sample-resources/               # Sample template files (safe to share)\n│   ├── config.sample.properties\n│   ├── localStorage.sample.json\n│   └── users.sample.csv\n├── src/\n│   └── test/\n│       ├── java/\n│       │   ├── config/             # Setup, UserModel, RegistrationDataSet\n│       │   ├── controller/         # Gmail API controller for email/Snippet\n│       │   ├── page/               # Page Object Model (POM) classes\n│       │   └── testrunner/         # Test classes for each user/admin flow\n|       |   └── utils/              # Utils\n│       └── resources/              # Local resources (config.properties, localStorage.json, users.csv were not pushed to repo)\n│           ├── config.properties\n│           ├── users.json\n|           ├── regressionSuite.xml     # TestNG suite configuration\n│           ├── localStorage.json\n|           ├── users.csv\n│           └── webTable.txt            \n├── build.gradle                    # Gradle build configuration\n└── README.md\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshababahmedd%2Fselenium4finance","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fshababahmedd%2Fselenium4finance","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshababahmedd%2Fselenium4finance/lists"}