Introduction to Mobile Automation Testing with Appium:
- In the fast growing world, the mobile phone is not only a device to make and receive telephone calls but also a multipurpose personal gadget.
- Mobile application testing is a process where application software developed for hand held mobile devices is tested for its functionality, usability and consistency.
- Mobile application testing can be automated or manual type of testing.
Key Challenges in Mobile Application Testing:
- Variety of Mobile Devices
- Diversity in Mobile Platforms/OSes
- Device Availability:.
- Mobile network operators
- Choosing how to test
Types of Mobile Operating Systems:
Android is a very Popular Mobile OS, developed by Google Inc.
IOS is a very popular Mobile OS, developed by Apple Inc.
Windows is a Medium popular mobile OS, developed by Microsoft.
Blackberry is a Low popular mobile OS, developed by Blackberry Ltd.
Types of Mobile Apps:
- MOBILE WEB APP – these are not real apps, these are actually websites, we can launch in mobile web browsers from your smartphone.
- NATIVE APPS – These are specially developed for one platform like android, ios, windows, etc.., and these can be installed from application stores like play store, etc..
- HYBRID APPS – These are known as combination of both mobile web apps and native apps. These will open the content from existing websites in app format.
Different Mobile Automation Tools:
- Selendroid = Selenium+Android, which Supports Android Only.
- Appium = Supports Android & Ios.
- MoneyTalk = Supports Android & IOS.
- Ios Driver = Supports Ios only.
- Robotium = Supports Android only.
- KIF (keep It Functional) = Supports IOS only.
- Calabash = Supports Android & IOS only.
Appium is a Free and Open Source Mobile Automation Platform developed and supported by Sauce Labs to automate all kinds of apps like web, native and hybrid apps. It is “cross-platform” automation tool so you can write software automation tests against iOS and Android (multiple platforms) using same API. It is an webserver , runs on client server architecture. In general while writing the code, we need to specify Desired Capabilities, which contains application name, package name, platform name and version, activity name. Here Json will act as a wire protocol, So Desired Capabilities send from client to server via Json. Appium is written in NodeJS.
Why Appium Got More Popularity?
- It Supports Multi Platforms like Android and IOS.
- We can test any apps like web app, native app and hybrid apps.
- Supports all kinds of mobile apps to automate.
- It Supports web driver compatible multi language platforms like java, c#, Ruby, PHP, So easy to implement.
Limitations of Appium:
- Does not Support Android API level below 17, if your mobile contains less than API level 17, then we need to depends on Selendroid.
- Script Executions are slow in virtual devices and environments.
- Parallel Executions not supported directly, we need to depends on Sauce labs.
- No Support for pop ups appear at the bottom of the screen, called as Toast Messages.
Pre Requisites for Appium with Java in windows :
- Java (JDK/JRE).
- Eclipse IDE Editor to configure selenium with java
- Maven Plugin to implement in Maven Project Scenarios with POM.xml.
- TestNG Libraries to implement automation Framework.
- Selenium Standalone Server jar.
- Android SDK Tools Package.
- Appium Desktop Server.
- Appium Java Client Libraries.
- Node js Environment setup.
What is meant by Emulator, Simulator and Real Device?
- Both Emulator and Simulators are virtual devices.
- Virtual Device means its not real device but most of functionalities look like in real device, but except few of them.
- Android Virtual Devices called as Emulators.
- IOS Virtual Devices called as Simulators.
- Testing the App in real device called as Real Device testing.
Here you can refer visual content to get more picture