{"id":18259565,"url":"https://github.com/sanosuke009/poseidonframework","last_synced_at":"2025-06-27T15:07:45.887Z","repository":{"id":65242347,"uuid":"588947273","full_name":"sanosuke009/PoseidonFramework","owner":"sanosuke009","description":"An omnipotent automation framework in Python","archived":false,"fork":false,"pushed_at":"2025-02-02T05:28:22.000Z","size":26746,"stargazers_count":4,"open_issues_count":16,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-06-27T15:07:22.483Z","etag":null,"topics":["appium","automation-framework","automation-test","continuous-integration","playwright","playwright-python","python","pywinauto"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sanosuke009.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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":"2023-01-14T15:16:00.000Z","updated_at":"2024-11-26T14:52:09.000Z","dependencies_parsed_at":"2023-10-16T03:11:10.254Z","dependency_job_id":"2ff7860b-0e16-49e1-80fc-4c796b508663","html_url":"https://github.com/sanosuke009/PoseidonFramework","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/sanosuke009/PoseidonFramework","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sanosuke009%2FPoseidonFramework","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sanosuke009%2FPoseidonFramework/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sanosuke009%2FPoseidonFramework/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sanosuke009%2FPoseidonFramework/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sanosuke009","download_url":"https://codeload.github.com/sanosuke009/PoseidonFramework/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sanosuke009%2FPoseidonFramework/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262279177,"owners_count":23286550,"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":["appium","automation-framework","automation-test","continuous-integration","playwright","playwright-python","python","pywinauto"],"created_at":"2024-11-05T10:38:44.647Z","updated_at":"2025-06-27T15:07:45.862Z","avatar_url":"https://github.com/sanosuke009.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Poseidon Framework\n## A trident to penetrate the test automation barrier! One stop test automation framework for all types of application with 3-pronged approach!\n\n[![Project Poseidon](https://github.com/sanosuke009/PoseidonFramework/actions/workflows/python-app.yml/badge.svg?branch=master)](https://github.com/sanosuke009/PoseidonFramework/actions/workflows/python-app.yml)\n\n## Features:\n1. Playwright with Pytest -\u003e To Automate Web applications -\u003e In Progress\n    1. Allure report plugin -\u003e DONE\n    2. Screenshot of each validation step -\u003e DONE\n    3. Playwright default html report -\u003e DONE\n    4. Video recording of the execution -\u003e DONE\n    5. Parallel execution -\u003e DONE\n    6. Integration with CI -\u003e DONE\n    7. Segregation of pages and configured context -\u003e DONE\n    8. Integration with Github Actions -\u003e DONE\n    9. Publish Allure-Reports on Github Pages -\u003e DONE\n2. Playwright with Pytest -\u003e To Automate API -\u003e TODO\n3. PyWinAuto with Pytest -\u003e To Automate Desktop applications -\u003e TODO\n4. Appium with Pytest -\u003e To Automate Mobile applications -\u003e TODO\n\n## Installation Required:\nEither you can run \n```python\n    python3 -m pip install -r requirements.txt\n    python3 -m playwright install\n```\nOr, if you know what you are doing, then run\n```python\n    python3 -m pip install pytest\n    python3 -m pip install pytest-xdist\n    python3 -m pip install allure-pytest\n    python3 -m pip install pytest-playwright\n    python -m pip install pytest-rerunfailures\n    python3 -m playwright install  #For installing Chromium, Firefox and Webkit browsers\n```\n## If allure is not recognized as powershell command Troubleshooting:\n1. For Windows install nvm from [here](https://github.com/coreybutler/nvm-windows/releases)\n2. Install node using nvm\n```node\n    nvm install \u003cversion\u003e\n    nvm use \u003cinstalled version\u003e\n    npm install -g allure-commandline --save-dev\n```\n3. If you find authentication error then\n```shell\n    Set-ExecutionPolicy RemoteSigned -Scope CurrentUser\n```\n4. Now allure serve command should work\n5. If you are getting JAVA_HOME not set error, then you need to install Java as well from [here](https://oracle.com/in/java/technologies/downloads/) and set JAVA_HOME=\"C:\\Program Files\\Java\\jdkxxx.xx.xx\" in the environment variables.\n\n## VENV Troubleshooting:\nIn VSCode, there is no default option to create virtual environment in Python. So follow below steps to create one:\n1. Open Visual Studio Code in your project's folder.\n2. In the terminal:\n```python\n# venv is your virtual environment name\n# You can also use py -3 -m venv .venv\npython -m venv venv\n```\n3. After the virtual environment is generated, use the following command to activate the virtual environment\n```python\n# venv is your virtual environment name\nvenv\\scripts\\activate\n```\n4. If you get error message after running above command, please do this:\n    1. Change the execution policies by adding -ExecutionPolicy Bypass args. in vscode you will have to create a shell profile with these args by adding below in settings.json (ctrl + shift + p and type \"settings.json\")\n\n    ```python\n    \"terminal.integrated.profiles.windows\": {\n    \"PowerShell\": {\n        \"source\": \"PowerShell\",\n        \"icon\": \"terminal-powershell\",\n        \"args\": [\"-ExecutionPolicy\", \"Bypass\"]\n    }\n    },\n    \"terminal.integrated.defaultProfile.windows\": \"PowerShell\",\n    ```\n    2. Need to restart VS Code and the Terminal.\n    3. Run:\n    ```python\n    # venv is your virtual environment name\n    venv\\scripts\\activate\n    ```\n5. Then Python: Select Interpreter (via Ctrl + Shift + P)\n6. And select the option (in my case towards the bottom)\n7. Select --\u003e Python 3.7 (venv) ./venv/Scripts/python.exe\n\n## Remove VENV:\n```python\n    source venv/bin/activate\n    pip freeze \u003e requirements.txt\n    pip uninstall -r requirements.txt -y\n    deactivate\n    rm -r venv/\n```\n\n## Troubleshooting Importerror: module not found _greenlet:\n1. Reinstall the Microsoft Visual C++\nHere is the link for downloading [Microsoft Visual C++](https://support.microsoft.com/en-us/topic/the-latest-supported-visual-c-downloads-2647da03-1eea-4433-9aff-95f26a218cc0).\n2. Restart the system\n3. Reinstall the venv \u0026 Python packages\n\n## Starting with the first Playwright test:\n1. Install all the required packages and set up vscode as mentioned above\n2. Run:\n```python\n    pytest --alluredir=allure-results --headed --numprocesses auto\n    allure serve .\\allure-results\n```\n\n## Docker commands to dockerize and run a few test cases in the image:\n1. Install all the required packages and set up vscode as mentioned above\n2. Run:\n```shell\n    docker build -t \u003cnameoftheimage\u003e .\n    docker run -it sanochuke/poseidonframework-docker-v1 pytest web/src/test/testcases/youtube\n```\n\n# TODO:\n1. Debugging using page.pause() \u0026 inspector\n2. https://shields.io/\n3. [Cloud hosting on Vercel](https://vercel.com/pricing)\n\n\n\n# Jenkins Integration:\n## TODO\n\n## Troubleshooting for allure report:\n1. Install allure plugin for jenkins\n2. Add below code in the jenkins file:\n```bash\n    stage('Generating Reports') {\n        steps {\n            script {\n                allure([\n                    includePorperties: false,\n                    jdk: '',\n                    properties: [],\n                    reportBuildPolicy: 'ALWAYS',\n                    results: [[path: 'allure-results']]\n                ])\n            }\n        }\n    }\n```\n\n### References \u0026 Resources:\n1. [Integration with Github Action \u0026 Pages](https://elaichenkov.medium.com/allure-report-integration-with-playwright-8c1570c67dda)\n2. [Cronjob Help](https://crontab.guru/)\n3. [Scheduling Github Actions](https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows#schedule)\n4. [Scheduling Blog](https://medium.com/tradeling/how-to-schedule-jobs-using-github-actions-9f32667706ea)\n5. [JAVA_HOME Troubleshooting](https://stackoverflow.com/questions/45182717/java-home-is-set-to-an-invalid-directory)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsanosuke009%2Fposeidonframework","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsanosuke009%2Fposeidonframework","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsanosuke009%2Fposeidonframework/lists"}