A python mobile test framework for Android and iOS utilizing Appium, Selenium, Pytest and the latest tech available in January 2023.
- Utilizing Page Object Model
- Integrated Allure reporting
- Attach screenshots to Allure before every click or input field change
- Attach a screenshot to Allure on test failure
- Capability to post the test results to Slack
- Capability to post the test results to TestRail
- Capability to retry failed cases
- Customizable console and file logger
- Python 3
- Pycharm
- PIP
- Appium 2
- Selenium 4
- Android Emulator
- iOS Simulator
Page Object Model: A structure where every page of the application is represented with a class that contains the elements for that page with the methods for interacting with these elements. When the UI of the app changes the tests themselves don’t need to change, only the page object class should be updated. The advantages of POM:
- Easier code maintenance
- Code reusability
- Improved readability and reliability
- Appium-Python-Client
- selenium
- pytest
- pytest-parallel
- pytest-xdist
- pytest-rerunfailures
- pytest-html
- pytest-metadata
- requests
- allure-pytest
- python-dotenv
- pytest-testrail
/Users/zsnagy/Repos/MobileTestFramework
├── apps
│ ├── demoApp.apk
│ └── demoApp.zip
├── framework
│ ├── __init__.py
│ └── core
│ ├── __init__.py
│ ├── page_base.py
│ └── test_base.py
├── pages
│ ├── __init__.py
│ ├── android
│ │ ├── __init__.py
│ │ ├── page_home.py
│ │ ├── page_sign_in.py
│ │ └── page_validation.py
│ └── ios
│ ├── __init__.py
│ ├── page_home.py
│ ├── page_sign_in.py
│ └── page_validation.py
├── tests
│ ├── __init__.py
│ ├── android
│ │ ├── __init__.py
│ │ ├── test_home.py
│ │ ├── test_sign_in.py
│ │ └── test_validation.py
│ └── ios
│ ├── __init__.py
│ ├── test_home.py
│ ├── test_sign_in.py
│ └── test_validation.py
├── utils
│ ├── __init__.py
│ ├── listeners
│ │ ├── __init__.py
│ │ └── event_listener.py
│ └── slack
│ ├── __init__.py
│ └── slack_notification.py
├── conftest.py
├── pytest.ini
├── requirements.txt
├── README.md
└── testrail.cfg
- After the configuration is adjusted in conftest.py, a test run can be initiated from the PyCharm
- Allure report
- Slack notification