{"id":16535630,"url":"https://github.com/hjsblogger/parallel-testing-with-robot-framework","last_synced_at":"2025-04-04T20:44:03.686Z","repository":{"id":146118802,"uuid":"528386861","full_name":"hjsblogger/parallel-testing-with-robot-framework","owner":"hjsblogger","description":"The repo contains demo on performing parallel testing with Selenium Robot (on Local Grid as well as on LambdaTest Grid)","archived":false,"fork":false,"pushed_at":"2024-09-13T09:18:13.000Z","size":722,"stargazers_count":1,"open_issues_count":2,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-02-10T05:23:28.850Z","etag":null,"topics":["automation-testing","cloud-automation","pabot","selenium-python","selenium-webdriver"],"latest_commit_sha":null,"homepage":"","language":"RobotFramework","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/hjsblogger.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":"2022-08-24T11:10:28.000Z","updated_at":"2024-09-13T09:18:16.000Z","dependencies_parsed_at":"2024-08-07T09:56:22.291Z","dependency_job_id":"ed53d810-5592-47ae-b794-df07c0351a49","html_url":"https://github.com/hjsblogger/parallel-testing-with-robot-framework","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hjsblogger%2Fparallel-testing-with-robot-framework","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hjsblogger%2Fparallel-testing-with-robot-framework/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hjsblogger%2Fparallel-testing-with-robot-framework/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hjsblogger%2Fparallel-testing-with-robot-framework/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hjsblogger","download_url":"https://codeload.github.com/hjsblogger/parallel-testing-with-robot-framework/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247249600,"owners_count":20908211,"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":["automation-testing","cloud-automation","pabot","selenium-python","selenium-webdriver"],"created_at":"2024-10-11T18:28:22.939Z","updated_at":"2025-04-04T20:44:03.662Z","avatar_url":"https://github.com/hjsblogger.png","language":"RobotFramework","readme":"Perform the following steps for running the Robot tests in parallel on the Selenium Grid:\n\n## Installation of Python packages\n\nPackages that need to be installed are present in *pyproject.toml* Execution is performed on the LambdaTest Selenium Grid. We are using Selenium 4.9.0 for the execution.  \n\nInstall the Python packages by running the *poetry install* command on the terminal\n\n```bash\npoetry install\n```\n\nIt installs the libraries that are required for testing. Shown below is the execution snapshot:\n\n\u003cimg width=\"1080\" alt=\"Screenshot 2022-09-16 at 2 10 49 PM\" src=\"https://user-images.githubusercontent.com/1688653/196665109-f5a39ba0-2442-4e4b-8ff2-5f6b6d7f83dd.png\"\u003e\n\u003cimg width=\"822\" alt=\"Screenshot 2022-09-16 at 2 12 17 PM\" src=\"https://user-images.githubusercontent.com/1688653/190631088-2a01af38-3b1a-43a6-95bc-07847a839c8c.png\"\u003e\n\u003cimg width=\"823\" alt=\"Screenshot 2022-09-16 at 2 12 04 PM\" src=\"https://user-images.githubusercontent.com/1688653/190631089-bf274eed-1703-46a5-8f69-0f890a396612.png\"\u003e\n\u003cimg width=\"819\" alt=\"Screenshot 2022-09-16 at 2 12 29 PM\" src=\"https://user-images.githubusercontent.com/1688653/190631083-b8b1f5c6-393d-4330-96bd-33fedc8ff023.png\"\u003e\n\u003cimg width=\"806\" alt=\"Screenshot 2022-09-16 at 2 12 46 PM\" src=\"https://user-images.githubusercontent.com/1688653/190631076-23bcc619-3f72-487d-8a0a-7d5f36e539be.png\"\u003e\n\nInstall the project dependencies by running ```poetry install``` or ```poetry install --no-root``` on the terminal\n\n\u003cimg width=\"1004\" alt=\"Robot_Poetry_Install\" src=\"https://user-images.githubusercontent.com/1688653/235434976-aab55a98-4e5e-4240-a65d-186aa8ea60ce.png\"\u003e\n\nThe global dependencies (i.e. Robot Framework 6.0 and Selenium 4.9.0) are installed by running ```pip install -r requirements.txt``` or ```pip3 install -r requirements.txt```on the terminal\n\n\u003cimg width=\"1405\" alt=\"Robot_Requirements_Install\" src=\"https://user-images.githubusercontent.com/1688653/235434959-dda506bd-f5c0-4762-88d3-92724690ab27.png\"\u003e\n\n## Configure Environment Variables\n\nBefore the tests are run, please set the environment variables LT_USERNAME \u0026 LT_ACCESS_KEY from the terminal. The account details are available on your [LambdaTest Profile](https://accounts.lambdatest.com/detail/profile) page.\n\nFor macOS:\n\n```bash\nexport LT_USERNAME=LT_USERNAME\nexport LT_ACCESS_KEY=LT_ACCESS_KEY\n```\n\nFor Linux:\n\n```bash\nexport LT_USERNAME=LT_USERNAME\nexport LT_ACCESS_KEY=LT_ACCESS_KEY\n```\n\nFor Windows:\n\n```bash\nset LT_USERNAME=LT_USERNAME\nset LT_ACCESS_KEY=LT_ACCESS_KEY\n```\n\n## Splitting test execution at the suite level\n\nAs stated in the [official documentation of Robot framework](https://docs.robotframework.org/docs/parallel#usage), Pabot splits execution on suite level (by default). That means that each process will run a single suite. Test Cases from the suite will be executed sequentially.\n\nRun the following command ```pabot --verbose --processes 4 Tests/CloudGrid/``` on the terminal to run tests in parallel at the suite-level. This command will run the tests in the respective .robot files in parallel, whereas individual tests in each robot file will run in a sequential manner.\n\nShown below is the terminal screenshot of successful execution:\n\n\u003cimg width=\"1428\" alt=\"Robot_Suite_Level_Execution_Terminal\" src=\"https://user-images.githubusercontent.com/1688653/235423782-d2eb29d2-2ae2-4228-8b9b-395411e41fc7.png\"\u003e\n\nAs seen on the [LambdaTest Automation Dashboard](https://automation.lambdatest.com/build), three tests - 2 from *Tests/test_todo_app.robot* and 1 from *Tests/test_sel_playground.robot* are run in parallel\n\n\u003cimg width=\"1428\" alt=\"Robot_Suite_Level_Execution_Progress\" src=\"https://user-images.githubusercontent.com/1688653/235423049-4263ffcb-786c-4cd2-8ccc-22266cf3e6da.png\"\u003e\n\nHere is the successful execution status as seen in the [LambdaTest Automation Dashboard](https://automation.lambdatest.com/build)\n\n\u003cimg width=\"1440\" alt=\"Robot_Suite_Level_Execution_Completion\" src=\"https://user-images.githubusercontent.com/1688653/235423018-23cc7ce1-649c-4f55-9d77-84c0b45ccfb4.png\"\u003e\n\n## Splitting test execution on the test level\n\nRun the following command ```pabot --verbose --processes 4 --testlevelsplit Tests/CloudGrid/``` on the terminal to run tests in parallel at the test-level. This command will run the tests in the respective .robot files in parallel.\n\nShown below is the terminal screenshot of successful execution:\n\n\u003cimg width=\"1411\" alt=\"Robot_Test_Level_Execution\" src=\"https://user-images.githubusercontent.com/1688653/235419139-7e2a661a-83f0-4f3c-89e6-a85d4a21a28e.png\"\u003e\n\nAs seen on the [LambdaTest Automation Dashboard](https://automation.lambdatest.com/build), three tests - 2 from *Tests/test_todo_app.robot* and 1 from *Tests/test_sel_playground.robot* are run in parallel\n\n\u003cimg width=\"1428\" alt=\"Robot_Test_Level_Execution_Progress\" src=\"https://user-images.githubusercontent.com/1688653/235419768-7d79ed7b-c0c6-46d8-979e-2f3a88c33580.png\"\u003e\n\nHere is the successful execution status as seen in the [LambdaTest Automation Dashboard](https://automation.lambdatest.com/build)\n\n\u003cimg width=\"1428\" alt=\"Robot_Test_Level_Execution_Completion\" src=\"https://user-images.githubusercontent.com/1688653/235419907-e09fee67-8325-4c0f-afb1-298f00aea7c1.png\"\u003e\n\n## Need Assistance?\nFeel free to fork the repo and contribute to make it better! Email to [himanshu[dot]sheth[at]gmail[dot]com](mailto:himanshu.sheth@gmail.com) for any queries or ping me on the following social media sites:\n\n\u003cb\u003eTwitter\u003c/b\u003e: [@hjsblogger](https://www.twitter.com/hjsblogger)\n\u003cbr/\u003e\n\u003cb\u003eLinkedIn\u003c/b\u003e: [@hjsblogger](https://linkedin.com/in/hjsblogger)\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhjsblogger%2Fparallel-testing-with-robot-framework","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhjsblogger%2Fparallel-testing-with-robot-framework","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhjsblogger%2Fparallel-testing-with-robot-framework/lists"}