{"id":29821207,"url":"https://github.com/halloichbinrohit/paralleltestinginrobotframework","last_synced_at":"2026-04-14T00:02:37.213Z","repository":{"id":306497449,"uuid":"1026131533","full_name":"halloichbinrohit/ParallelTestingInRobotFramework","owner":"halloichbinrohit","description":"This Framework created for UI automation based on Robot Framework and uses pabot for Parallel Testing","archived":false,"fork":false,"pushed_at":"2025-07-25T20:27:12.000Z","size":4886,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-07-26T03:39:34.903Z","etag":null,"topics":["allure-report","allure-robotframework","datadriventesting","pabot","python","python3","robot-framework","robotframework","robotframework-testing","seleniumlibrary","ui","uiautomation"],"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/halloichbinrohit.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-07-25T11:05:49.000Z","updated_at":"2025-07-25T20:42:17.000Z","dependencies_parsed_at":"2025-07-26T03:51:07.869Z","dependency_job_id":null,"html_url":"https://github.com/halloichbinrohit/ParallelTestingInRobotFramework","commit_stats":null,"previous_names":["halloichbinrohit/paralleltestinginrobotframework"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/halloichbinrohit/ParallelTestingInRobotFramework","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/halloichbinrohit%2FParallelTestingInRobotFramework","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/halloichbinrohit%2FParallelTestingInRobotFramework/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/halloichbinrohit%2FParallelTestingInRobotFramework/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/halloichbinrohit%2FParallelTestingInRobotFramework/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/halloichbinrohit","download_url":"https://codeload.github.com/halloichbinrohit/ParallelTestingInRobotFramework/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/halloichbinrohit%2FParallelTestingInRobotFramework/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":267605945,"owners_count":24114619,"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-28T02:00:09.689Z","response_time":68,"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":["allure-report","allure-robotframework","datadriventesting","pabot","python","python3","robot-framework","robotframework","robotframework-testing","seleniumlibrary","ui","uiautomation"],"created_at":"2025-07-29T00:00:46.367Z","updated_at":"2026-04-14T00:02:37.175Z","avatar_url":"https://github.com/halloichbinrohit.png","language":"HTML","readme":"# Parallel UI Test Automation Framework using Robot Framework and Pabot Library\n- This repository contains a modular and scalable UI automation framework built using **Robot Framework**, **Python**, and **Selenium** library. \n- It supports **parallel execution**, **data-driven testing**, and generates **detailed reports** using **Allure** and **Default Robot Framework Report**.\n---\n## 📂 Project Structure\n```\n│   .pabotsuitenames                                                      # Defines suite names or grouping when using Pabot (parallel execution tool).\n│   README.md                                                             # Overview of the project, setup instructions, how to run tests, dependencies, and usage.      \n│   requirements.txt                                                      # Lists Python packages needed (e.g., robotframework, pabot, allure-robotframework, etc.).\n│   runtest.ps1                                                           # A PowerShell script that orchestrates running the full test suite via Robot Framework and Pabot, possibly including Allure report generation.\n├───allure-report                                                         # Output directory of the generated Allure HTML report, giving a rich UI view of test execution data.\n├───allure-results                                                        # Contains raw test result artifacts (JSON, XML, attachments) generated during execution—used for building Allure reports.\n├───libraries\n│   │   logger.py                                                         # A custom Python library module defining logging or reporting keywords for use in Robot scripts. Makes logs more structured and reusable across test suites.\n├───logs                                                                  # Stores .log files generated for each test scenario, usually plain-text or structured logs\n│       Invalid user but valid password_app.log\n│       Login with empty user but password_app.log\n│       Login with locked out user_app.log\n│       Login with user but empty password_app.log\n│       Valid user but invalid password_app.log\n│       Verify Login Page Heading Displayed With Required Text_app.log\n│       Verify Login Page Title For SauceDemo Website_app.log\n│       Verify Login Successful For Valid Credentials_app.log\n├───pages\n│       Home_Page.resource                                               # Keywords for homepage validation, navigation flows.\n│       Login_Page.resource                                              # Contains reusable keywords representing login screen interactions (enter username, password, click, etc.).\n├───results\n│   │   log.html                                                         # Detailed HTML log report generated by Robot Framework.\n│   │   output.xml                                                       # Core Robot Framework execution data file (XML).\n│   │   report.html                                                      # Summary HTML report (pass/fail, test suites, tags).\n│   └───pabot_results                                                    # Pabot-specific subfolder capturing parallel execution results (separate directory)\n├───testcases\n│       Invalid_Login_Tests.robot                                        # Suite for negative login scenarios (wrong username, locked accounts, missing fields), data driven based\n│       Sauce_Home_Tests.robot                                           # Tests for homepage behavior (home page display, title etc)\n│       Valid_Login_Tests.robot                                          # Scenarios verifying successful login flows.\n├───testdata\n│   │   Invalid_Login_Tests.csv                                          # Data‑driven values for invalid login scenarios (usernames, passwords, error messages).\n│   │   invalid_login_test_data.py                                       # Python-based data provider (perhaps used to parameterize tests programmatically).\n└───utils                                                                # Shared support logic used across resources or tests:\n        common.resource                                                  # Generic or cross-functional keywords (e.g. setup/teardown, navigation, global utilities).\n        helpers.resource                                                 # Additional reusable utility keywords (e.g. element inspection, waits, assertions)\n        logging.resource                                                 # Robot-level keyword wrappers for structured logging, potentially interfacing with logger.py.\n```\n---\n## 🚀 Features\n- ✅ **Pabot/robot based test runner**\n- ✅ **Parallel testing** with `robotframework-pabot` library\n- ✅ **Separate logging for each test**\n- ✅ **Interactive Allure** and **Robot Framework HTML** reports\n- ✅ **Template based driven data tests**\n- ✅ **Custom utility functions**\n- ✅ Supports **Custom logging library** and **Page Object Model**\n---\n## 🧰 Tools \u0026 Libraries Used\n- pycharm/vscode\n- robotframework\n- robotframework-seleniumlibrary\n- allure-robotframework\n- robotframework-pabot\n---\n## 📝 Logging\n- Each test creates a separate log file under the logs/ directory using a custom logger defined in `utils/logging.resource and libraries/logger.py`.\n---\n## 📂 Sample Test Types\n- 🔁 Basic validations on Homepage (title, heading etc)\n- 📄 Validation of successful login\n- 🔐 Validation of invalid logins and error messages based on data driven approach\n---\n## 📈 Reporting\n- ✅ Allure : Provides interactive test results, Captures logs, attachments\n- ✅ Report HTML : Generates Default Robot Framework HTML Report\n---\n### 🔄 Parallel Execution\n- This framework uses `robotframework-pabot` to execute tests in parallel:\n```commandline\n#Split execution on test level instead of default suite level\npabot --testlevelsplit\n```\n- You can also control the number of workers:\n```commandline\n#How many parallel executors to use (default max of 2 and cpu count).\npabot --processes\n```\n---\n## 🧪 How to Run Tests\n### Pre-requisites\n- You should have python \u0026 allure cli installed on your system, if not please install\n- [Python](https://www.python.org/downloads/)\n- Allure CLI [here](https://allurereport.org/docs/install)\n- IDE of your choice for ex: [Pycharm](https://jetbrains.com/pycharm/download) Or [VS Code](https://code.visualstudio.com/download)\n- Clone/download the repo on your system, open in IDE or navigate to project root directory\n\n### 1. 📦 Install Dependencies\n```bash\npip install -r requirements.txt\n```\n### 2. 📦 Run All Tests (with Allure and HTML reports)\n```bash\npabot --processes 3 --loglevel TRACE -d results --listener allure_robotframework:allure-results testcases\n```\n### 3. 📦 Generating Allure Report\n```bash\nallure generate allure-results -o allure-report --clean\n```\n### 4. 📦 Opening Allure And Robot Framework Default HTML Reports in browser\n```bash\n# Open Robot Framework Default Report\nStart-Process \"results\\report.html\"\n# Open Allure Report\nStart-Process \"allure\" -ArgumentList \"open\", \"allure-report\"\n```\n### 5. 📦 Or directly run **runtest.ps1** in **powershell mode** if **python** and **allure-cli** is installed\n- This will first clear the\n  - **allure-results**: directory that generates with **xml** and **json** files for allure report generation post test execution, so that we get fresh version of these file on each run\n  - **results**: directory that contains the **report.html** i.e, self-contained html report generated by **pytest-html**\n  - **logs**: directory containing separate log file for each executed test in parallel mode using **pytest-xdist**\n- Install dependencies as mentioned in **step 1**\n- Run All Tests with **Allure, HTML reports** options leveraging `robotframework-pabot` option **--processes 3** to distribute 3 tests at a time based on file for parallel testing as per **step 2**\n- Generate allure report in **allure-report** directory based on xml/json file generated in **allure-results** directory as per **step 3**\n- Directly open **Robot Framework Default HTML Report** from **results\\report.html** directory and interactive **allure report** from **allure-report** in your system default browser as per **step 4**\n---\n## 📊 Sample Reports\n### ✅ Allure Report\n![sample1](sample-screenshots/allure1.png)\n![sample2](sample-screenshots/allure2.png)\n\n### ✅ Robot Framework Default Report\n![pytest-html1](sample-screenshots/robot1.png)\n![pytest-html2](sample-screenshots/robot2.png)\n---\n## 🙋‍♂️ Author: Rohit Negi\n- 📧 Email: [rohitnegichd@gmail.com](mailto:rohitnegichd@gmail.com)\n- 📞 Phone: [+91-8077683563](tel:+91-8077683563)\n- 🔗 LinkedIn: [linkedin.com/in/halloichbinrohit](https://www.linkedin.com/in/halloichbinrohit/)","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhalloichbinrohit%2Fparalleltestinginrobotframework","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhalloichbinrohit%2Fparalleltestinginrobotframework","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhalloichbinrohit%2Fparalleltestinginrobotframework/lists"}