https://github.com/lana-20/mobileautomation
https://github.com/lana-20/mobileautomation
Last synced: 8 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/lana-20/mobileautomation
- Owner: lana-20
- Created: 2021-04-22T01:12:46.000Z (over 4 years ago)
- Default Branch: main
- Last Pushed: 2022-12-06T22:55:01.000Z (almost 3 years ago)
- Last Synced: 2024-12-30T09:47:19.993Z (10 months ago)
- Size: 29.3 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
#
*Automated Mobile Testing using Appium*
____
## Appium - an open-source tool for automating different types of mobile apps.
The mobile app marget is huge, and keeps increasing constantly.
It's essential to learn mobile app development and testing, due to the increasing demand.
____
Reports:
π https://www.statista.com/topics/1002/mobile-app-usage
230 billion apps have been downloaded worldwide to mobile devices
π https://www.statista.com/forecasts/1262892/mobile-app-revenue-worldwide-by-segment
the worldwide mobile revenue in 2020 amounted to $318 billion and is expected to reach $613 billion by 2025
____
π΅ Types of Mobile Apps
____
π Native π
β£ β£ developed for a particular mobile device or platform, such as Android or iOS)
β£ β£ e.g., iPhone apps are written in Swift, and Android apps are written in Java
β£ β£ better performing, high degree of reliability, as they use underlying system architecture and the device's built-in features
β£ β£ can run in both online and offline modes
β£ β£ tied to the mobile OS it was designed for, hence cannot be run on another OS
β£ β£ development is costly, since the same app must be rewritten for another OS
β£ β£ available for download on mobile via a respective app store.
β£ β£ example 1: The Washington Post app is a native app bundled with iPhone. It can be downloaded from the Apple App Store
β£ β£ example 2: The popular Instagram app on an Adroid devide is native.
____
π Mobile Web π
β£ β£ a.k.a. [PWA - Progressive Web Apps](https://developer.mozilla.org/en-US/docs/Web/Progressive_web_apps)
β£ β£ accessed over a mobile browser
β£ β£ easily accessed via built-in browsers, such as Safari on iOS and Chrome on Android
β£ β£ browsers are primarily developed using tech such as HTML5 or JavaScript, which provide customization capabilties
β£ β£ browsers are served from a server and not stored offline anywhere on a device
β£ β£ common code base allows for access on any device with browsers, like any typical web app
β£ β£ uses responsive design standards to cater to devices of different screen sizes and resolutions
β£ β£ can access mobile-specific features, such as dialing a phone number or location-based mapping
β£ β£ can only be accessed with a valid network (WiFi/5G/4G/3G)
β£ β£ example 1: A mobile website of The New York Times can be opened with any mobile browser. The URL is http://mobile.nytimes.com. Can perform the same actions as web, such as browser refresh. Can open using the Safari app on an iPhone device or simulator running iOS.
β£ β£ example2: Can also run the mobile site of The New York Times on an Android emulator running Adroid OS. Open the site on the default browser app.
____
π Hybrid π
β£ β£ a.k.a. [Cross-Platform](https://ionic.io/resources/articles/ionic-vs-react-native-a-comparison-guide)
β£ β£ β£ Cross-Platform *Web* Platforms: [Ionic](https://ionicframework.com/), [Cordova](https://cordova.apache.org/)
β£ β£ β£ [Cross-Platform *Native* Platforms](https://github.com/lana-20/native-reactnative-flutter#readme): [React Native](http://react-native.org/), [Xamarin](https://dotnet.microsoft.com/en-us/apps/xamarin), [Flutter](https://flutter.dev/), [NativeScript](https://nativescript.org/)
β£ β£ consists of websites packaged in a native wrapper
β£ β£ developed in web tech, such as HTML5, CSS, JavaScript, but run inside a native constainer, hence giving it the native app 'feel'
β£ β£ relies on HTML rendering in the mobile browser, with a limitation that the browser is embedded within the app
β£ β£ common code base for all the mobile OS, such as iOS and Android
β£ β£ web-to-native abstraction layer enables access to device-specific capabilities - such as a camera, device local storage, and an accelerometer - which are nor accessible in Mobile Web apps otherwise
β£ β£ Most favored approach for a company with a web page. The company often builds a hybrid app as a wrapper used over the web page.
β£ β£ tools, such as Apache Cordova or React Native, can be used to build a hybrid app
β£ β£ can be downloaded via respective app stores
β£ β£ example1: Evernote app is a hybrid app that can be downloaded from the respective app store.
____
π΅ [Architecture](https://github.com/lana-20/appium-architecture)

β£ XCUITest | Apple iOS
β£ UI Automator | Google Android
____
π΅ Pros
β£ open source
β£ cross platform
β£ no recompile/modify needed (e.g., to submit to an app store)
____
*12 Step Guide to configure and run Mobile Automation test cases using Appium* |
------------ |
1.Download Java and set JAVA_HOME in environment variables. |
2.Download Android Studio from this [link](https://developer.android.com/studio). |
3.Check Android installation path on the machine. |
4.Set ANDROID_HOME environment variables path to SDK location and include bin folder paths in the PATH variable. |
5.Open Android Studio and configure an Emulator (AVD - Android Virtual Device). |
6.Open the Emulator and check if itβs working. |
7.Download Node.js from this [link](https://nodejs.org/en/download/). |
8.Set NODE_HOME environmental variables path. |
9.Download Appium Server from Node. |
10.Download Appium Java client library. |
11.Install Eclipse -- Create a Project in Eclipse -- Configure Appium libraries. |
12.Start Appium Server. |