Skip to content

nagyzsolt1989/MobileTestFramework

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Logo

Python Mobile Automation Framework

Badge   Badge   Badge   Badge  

OverviewFramework StackDocumentationDemo

📑 Menu

📜 Overview

A python mobile test framework for Android and iOS utilizing Appium, Selenium, Pytest and the latest tech available in January 2023.

🏭 Framework Stack

framework stack

📚 Features

  • 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

📘 Documentation

❗ Prerequisites

  • Python 3
  • Pycharm
  • PIP
  • Appium 2
  • Selenium 4
  • Android Emulator
  • iOS Simulator

🎑 Design Patterns

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

💾 Dependencies

  • Appium-Python-Client
  • selenium
  • pytest
  • pytest-parallel
  • pytest-xdist
  • pytest-rerunfailures
  • pytest-html
  • pytest-metadata
  • requests
  • allure-pytest
  • python-dotenv
  • pytest-testrail

📂 Directory Tree

/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

📀 Demo

  • After the configuration is adjusted in conftest.py, a test run can be initiated from the PyCharm

test_run

  • Allure report

allure_1 allure_2

  • Slack notification

slack_notification

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages