All Projects → prashanth-sams → python-appium-framework

prashanth-sams / python-appium-framework

Licence: other
Complete Python Appium framework in 360 degree

Programming Languages

python
139335 projects - #7 most used programming language
HTML
75241 projects
CSS
56736 projects
shell
77523 projects

Projects that are alternatives of or similar to python-appium-framework

AppiumGrid
A framework for running appium tests in parallel across devices and also on desktop browser... U like it STAR it !!
Stars: ✭ 17 (-60.47%)
Mutual labels:  parallel, selenium-webdriver, appium, appium-framework
SHAFT ENGINE
SHAFT is an MIT licensed test automation engine. Powered by best-in-class frameworks like Selenium WebDriver, Appium & RestAssured it provides a wizard-like syntax to increase productivity, and built-in wrappers to eliminate boilerplate code and to ensure your tests are extra stable and your results are extra reliable.
Stars: ✭ 170 (+295.35%)
Mutual labels:  selenium-webdriver, appium, appium-framework
OneFramework
Automation for iOS, Android, & Web Apps with one codebase. Like it, Star it & spread the word !!!
Stars: ✭ 46 (+6.98%)
Mutual labels:  selenium-webdriver, appium, allure-report
google-meet-bot
Bot for scheduling and entering google meet sessions automatically
Stars: ✭ 33 (-23.26%)
Mutual labels:  selenium, selenium-webdriver, selenium-python
Selenium Jupiter
JUnit 5 extension for Selenium WebDriver
Stars: ✭ 185 (+330.23%)
Mutual labels:  selenium, selenium-webdriver, appium
Instagram-Giveaways-Winner
Instagram Bot which when given a post url will spam mentions to increase the chances of winning. Win Instagram Giveaways!
Stars: ✭ 95 (+120.93%)
Mutual labels:  selenium, selenium-webdriver, selenium-python
Java.appium
Mobile test automation using Appium in Java
Stars: ✭ 59 (+37.21%)
Mutual labels:  selenium, selenium-webdriver, appium
Frameworkium Core
Framework for writing maintainable Selenium and REST API tests in Java.
Stars: ✭ 107 (+148.84%)
Mutual labels:  selenium, selenium-webdriver, appium
Seleniumbase
A Python framework that inspires developers to become better test automation engineers. 🧠💡
Stars: ✭ 2,520 (+5760.47%)
Mutual labels:  selenium, pytest, selenium-python
carina
Carina automation framework: Web, Mobile, API, DB etc testing...
Stars: ✭ 652 (+1416.28%)
Mutual labels:  selenium, appium, parallel-tests
robotframework-zoomba
Extended Robot Framework libraries to make testing GUI, REST/SOAP API, Mobile, and Windows Desktop easier.
Stars: ✭ 121 (+181.4%)
Mutual labels:  appium, appium-framework
selenium-cheatsheet-java
A comprehensive list of selenium commands in Java
Stars: ✭ 20 (-53.49%)
Mutual labels:  selenium, selenium-webdriver
TRA-Ticket-Booker
(已不適用新版臺鐵訂票系統,且不再更新)台灣鐵路訂票應用程式(臺鐵 / 台鐵 / 訂單程票 / 訂來回票),基於 Selenium + PyQt4。
Stars: ✭ 26 (-39.53%)
Mutual labels:  selenium, selenium-webdriver
web-ui
python+selenium+pytest+allure UI 自动化框架
Stars: ✭ 199 (+362.79%)
Mutual labels:  pytest, appium
MasterSeleniumFramework
Automation Testing | Web | Java | OOPS | Selenium WebDriver | TestNG | Maven | ExtentReport | Allure Reports | Java mail API | Design Patterns (Page Object Model, Singleton) | Jenkins | Data-Driven Testing using JSON file
Stars: ✭ 52 (+20.93%)
Mutual labels:  selenium, allure-report
java-e2e-test-example
An complete example of a pipeline focusing on API and UI (mobile and web) tests.
Stars: ✭ 18 (-58.14%)
Mutual labels:  selenium, appium
WhatsAppBulkMessenger
This tools sends WhatsApp messages and invites directly to people on WhatsApp itself, without saving their contacts 🌠
Stars: ✭ 73 (+69.77%)
Mutual labels:  selenium-webdriver, selenium-python
arjuna
Arjuna is a Python based test automation framework developed by Rahul Verma (www.rahulverma.net).
Stars: ✭ 20 (-53.49%)
Mutual labels:  selenium-webdriver, selenium-python
fBrowser
Helpful Selenium functions to make web-scraping easier and faster
Stars: ✭ 16 (-62.79%)
Mutual labels:  selenium, selenium-python
Python-Studies
All studies about python
Stars: ✭ 56 (+30.23%)
Mutual labels:  selenium, pytest

Python Appium Framework

Complete Python Appium framework in 360 degree

Features

  • Locator strategy
  • Hooks (unittest)
  • Helper methods
  • Database connectivity + SSH Tunneling
  • Screenshot on failure
  • Docker support for Android
  • Handle local storage
  • Bash Runner
  • Slack notify
  • Define environment variable
  • HTML report
  • JSON report
  • Allure report
  • CLI arguments as a fixture (Pytest)
  • In-house data storage
  • Logger
  • Runner (Pytest)
  • Runner percentage with style (Pytest)
  • Parallel Tests (Pytest) x2
  • Re-run failures (Pytest)
  • Test script validation

Installation

Install python libraries

pip3 install -r requirements.txt

Test Runner

Action Command
Bash runner bash runner/android/smoke_run.sh
Default python3 -m pytest src/spec/* --app=android
Rerun failures python3 -m pytest src/spec/home_test.py --app=android --reruns 1
Parallel Test python3 -m pytest src/spec/home_test.py --app=android -v -n2

Docker Run

Android test - x1 run

docker run --privileged -d -p 6080:6080 -p 4723:4723 -p 5554:5554 -p 5555:5555 \ 
-v $(pwd)/data/apps/Android-NativeDemoApp-0.2.1.apk:/root/tmp/Android-NativeDemoApp-0.2.1.apk \
-e DEVICE="Samsung Galaxy S9" -e APPIUM=true --name android-container \
budtmo/docker-android-x86-11.0

noVnc interface: http://localhost:6080

Test Report

Type Command
HTML Report python3 -m pytest src/spec/android/*.py --html-report=report/report.html --app=android
JSON Report python3 -m pytest src/spec/android/*.py --json=report/json/report.json --app=android
Allure Report python3 -m pytest src/spec/android/* --alluredir=report --app=android

generate allure report

allure serve report/

Wrapper Methods

Methods Usage
element App.element(self, locator)
elements App.elements(self, locactor)
is_displayed App.is_displayed(self, locator)
is_displayed > elements App.is_displayed(self, locator, index=0)
is_exist App.is_exist(self, locator)
is_exist > elements App.is_exist(self, locator, index=0)
tap App.tap(self, locator)
tap > elements App.tap(self, locator, index=0)
double_tap App.double_tap(self, locator)
double_tap > elements App.double_tap(self, locator, index=0)
click App.click(self, locator)
click > elements App.click(self, locator, index=0)
swipe App.swipe(self, start=locator, dest=locator)
swipe > elements App.swipe(self, start=(locator, 2), dest=(locator, 1))
send_keys App.send_keys(self, locator, 'text')
send_keys > elements App.send_keys(self, locator, 'text', index=0)
get_screen_size App.get_screen_size(self)
back App.back(self)
close App.close(self)
reset App.reset(self)
launch_app App.send_keys(self, locator, 'text'
tap_by_coordinates App.tap_by_coordinates(self, x=338, y=204)
assert_text App.assert_text(self, 'actual', 'expected')
assert_text > elements App.assert_text(self, 'actual', 'expected', index=0)
assert_size App.assert_size(self, locator, 'more than 1')
App.assert_size(self, locator, 'greater than 1')
App.assert_size(self, locator, 'above 1')
App.assert_size(self, locator, '> 1')
App.assert_size(self, locator, 'less than 1')
App.assert_size(self, locator, 'below 1')
App.assert_size(self, locator, '< 1')
App.assert_size(self, locator, 'equal to 1')
App.assert_size(self, locator, '== 1')
assert_boolean App.assert_boolean(True, True)
swipe_until App.swipe_until(self, locator, start_x=144, start_y=434, count=20)

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].