{"id":18223995,"url":"https://github.com/pirate-emperor/testify","last_synced_at":"2026-02-15T23:01:41.498Z","repository":{"id":260798958,"uuid":"882357880","full_name":"Pirate-Emperor/Testify","owner":"Pirate-Emperor","description":"Testify is a Python-based automation framework for web and mobile testing, using Selenium and Appium. It features modular design, detailed logging, robust exception handling, and JSON-based configuration for easy integration and scalability.","archived":false,"fork":false,"pushed_at":"2024-11-02T16:06:53.000Z","size":22,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-04T19:41:49.766Z","etag":null,"topics":["appium","appium-android","appium-ios","appium-tests","python","selenium","selenium-python","test-automation","testing-framework"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Pirate-Emperor.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}},"created_at":"2024-11-02T16:05:06.000Z","updated_at":"2024-11-16T11:53:53.000Z","dependencies_parsed_at":"2024-11-02T17:17:29.460Z","dependency_job_id":"979adc39-3051-41dc-a864-9e27b28308a6","html_url":"https://github.com/Pirate-Emperor/Testify","commit_stats":null,"previous_names":["pirate-emperor/testify"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Pirate-Emperor/Testify","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Pirate-Emperor%2FTestify","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Pirate-Emperor%2FTestify/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Pirate-Emperor%2FTestify/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Pirate-Emperor%2FTestify/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Pirate-Emperor","download_url":"https://codeload.github.com/Pirate-Emperor/Testify/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Pirate-Emperor%2FTestify/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278863812,"owners_count":26059243,"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-10-07T02:00:06.786Z","response_time":59,"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":["appium","appium-android","appium-ios","appium-tests","python","selenium","selenium-python","test-automation","testing-framework"],"created_at":"2024-11-04T01:05:44.460Z","updated_at":"2025-10-07T23:33:09.517Z","avatar_url":"https://github.com/Pirate-Emperor.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Testify - Universal Test Automation Framework\n\n**Testify** is a powerful Python-based automation framework designed for both web and mobile application testing. Leveraging **Selenium** for web automation and **Appium** for mobile testing, Testify is designed with flexibility, modularity, and ease of use in mind. It features a **Page Object Model (POM)** architecture, robust logging, and exception handling mechanisms, making it suitable for a wide range of testing scenarios.\n\n## Table of Contents\n- [Overview](#overview)\n- [Features](#features)\n- [Installation](#installation)\n- [Usage](#usage)\n- [Project Structure](#project-structure)\n- [Logging and Reports](#logging-and-reports)\n- [Configuration](#configuration)\n- [Contributing](#contributing)\n- [License](#license)\n\n## Overview\n\nTestify aims to streamline and automate testing for both web and mobile platforms, providing a **scalable** and **configurable** framework that can be integrated into any project. Whether you're performing functional tests on a web browser or running mobile tests on emulators or real devices, Testify’s unified structure enables you to manage all your tests in one place. \n\nThis framework is ideal for **QA teams**, **developers**, and **automation engineers** looking for a comprehensive and easy-to-extend test suite.\n\n## Features\n\n- **Cross-Platform Support**: Web automation using **Selenium** and mobile automation using **Appium**.\n- **Page Object Model (POM)**: Ensures modular and maintainable test scripts.\n- **Extensive Logging**: Provides detailed logging with configurable verbosity levels.\n- **Robust Exception Handling**: Graceful handling of test errors with informative messages.\n- **JSON-Based Configuration**: Easily manage project settings and configurations.\n- **Parallel Execution**: Run multiple tests concurrently to save time.\n- **Extensible**: Supports adding new modules and extending test coverage with ease.\n- **Detailed Test Reports**: Automatically generates reports after test execution.\n  \n## Installation\n\nTo install and configure **Testify**, follow the steps below:\n\n### Prerequisites\n\n- Python 3.7 or later\n- Selenium\n- Appium (for mobile automation)\n- WebDriver (ChromeDriver, GeckoDriver, etc.)\n- Appium server and mobile device emulators (for mobile testing)\n\n### Setup\n\n1. **Clone the repository:**\n\n    ```bash\n    git clone https://github.com/Pirate-Emperor/testify.git\n    cd testify\n    ```\n\n2. **Install dependencies:**\n\n    ```bash\n    pip install -r requirements.txt\n    ```\n\n3. **Configure WebDriver \u0026 Appium:**  \n   Set up the WebDriver for your browser (e.g., ChromeDriver for Chrome) and ensure that the Appium server is running.\n\n## Usage\n\n1. **Run Web Tests:**\n\n    Testify supports web testing using Selenium. To execute web tests, follow this command:\n\n    ```bash\n    python -m unittest discover tests/web_tests\n    ```\n\n2. **Run Mobile Tests:**\n\n    For mobile automation using Appium:\n\n    ```bash\n    python -m unittest discover tests/mobile_tests\n    ```\n\n3. **Configuration Management:**\n\n    Update your project configuration by editing the `config.json` file in the project root. This file includes all the settings for both web and mobile test environments.\n\n4. **Logging and Reports:**\n\n    Logs and reports are stored under the `logs/` and `reports/` directories, respectively. After test execution, detailed HTML reports are generated for review.\n\n## Project Structure\n\nThe following structure highlights the main components of Testify:\n\n```bash\ntestify/\n  ├─ config/\n  │  ├─ __init__.py\n  │  └─ config.json\n  ├─ pages/\n  │  ├─ mobile_pages/\n  │  │  ├─ __init__.py\n  │  │  └─ base_mobile_page.py\n  │  ├─ web_pages/\n  │  │  ├─ __init__.py\n  │  │  └─ base_web_page.py\n  │  ├─ __init__.py\n  │  └─ base_page.py\n  ├─ tests/\n  │  └─ conftest.py\n  ├─ utils/\n  │  ├─ __init__.py\n  │  ├─ config_parser.py\n  │  ├─ driver_setup.py\n  │  ├─ logging_config.py\n  │  ├─ mobile_driver_setup.py\n  │  └─ web_driver_setup.py\n  ├─ LICENSE\n  └─ README.md\n```\n\n## Logging and Reports\n\n- **Logging**: Testify comes with detailed logging, capturing every action performed during the test execution. Logs are automatically saved in the `logs/` directory with timestamps for easier debugging.\n  \n- **Reports**: After each test execution, an HTML report is generated in the `reports/` directory, summarizing test results (pass, fail, error) along with screenshots of failures (if any).\n\n## Configuration\n\nTestify utilizes a JSON configuration file to manage different aspects of the test environment, making it easy to customize and adapt to various projects.\n\n### Example `config.json`:\n\n```json\n{\n  \"web\": {\n    \"browser\": \"chrome\",\n    \"headless\": false,\n    \"timeout\": 30\n  },\n  \"mobile\": {\n    \"platformName\": \"Android\",\n    \"deviceName\": \"Pixel_3\",\n    \"app\": \"path/to/your/app.apk\",\n    \"automationName\": \"UiAutomator2\"\n  },\n  \"logging\": {\n    \"level\": \"INFO\",\n    \"file\": \"logs/testify.log\"\n  }\n}\n```\n\n## Contributing\n\nContributions to **Testify** are welcome! To contribute:\n\n1. Fork the repository.\n2. Create a new branch (`git checkout -b feature/your-feature`).\n3. Make your changes.\n4. Submit a pull request.\n\n## License\n\nThis project is licensed under the Pirate-Emperor License. See the [LICENSE](LICENSE) file for details.\n\n## Author\n\n**Pirate-Emperor**\n\n[![Twitter](https://skillicons.dev/icons?i=twitter)](https://twitter.com/PirateKingRahul)\n[![Discord](https://skillicons.dev/icons?i=discord)](https://discord.com/users/1200728704981143634)\n[![LinkedIn](https://skillicons.dev/icons?i=linkedin)](https://www.linkedin.com/in/piratekingrahul)\n\n[![Reddit](https://img.shields.io/badge/Reddit-FF5700?style=for-the-badge\u0026logo=reddit\u0026logoColor=white)](https://www.reddit.com/u/PirateKingRahul)\n[![Medium](https://img.shields.io/badge/Medium-42404E?style=for-the-badge\u0026logo=medium\u0026logoColor=white)](https://medium.com/@piratekingrahul)\n\n- GitHub: [Pirate-Emperor](https://github.com/Pirate-Emperor)\n- Reddit: [PirateKingRahul](https://www.reddit.com/u/PirateKingRahul/)\n- Twitter: [PirateKingRahul](https://twitter.com/PirateKingRahul)\n- Discord: [PirateKingRahul](https://discord.com/users/1200728704981143634)\n- LinkedIn: [PirateKingRahul](https://www.linkedin.com/in/piratekingrahul)\n- Skype: [Join Skype](https://join.skype.com/invite/yfjOJG3wv9Ki)\n- Medium: [PirateKingRahul](https://medium.com/@piratekingrahul)\n\n---\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpirate-emperor%2Ftestify","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpirate-emperor%2Ftestify","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpirate-emperor%2Ftestify/lists"}