As per a report from Statista, the number of mobile application downloads worldwide is projected to rise from being approximately 178 billion in the year 2017 to over 258 billion by 2022.
Source: Statista
At this point, mobile testing services come into the picture and play a vital role regarding mobile app development. At the early stages of the testing, test scenarios were mostly manually executed on real devices or emulators by executing all expected behaviors with different scenarios. This has led to the rise of Mobile Automation Testing. A stable Mobile Automation Testing framework ensures the testing time is reduced considerably with high quality of testing. Naturally, there is a growing demand for more efficient and cost-effective testing across all platforms. As a result of this, the workload of developers, and especially testers, has greatly increased.
What is Appium?
Appium is an open-source tool for automating mobile applications. It supports native, mobile web, and hybrid applications on iOS mobile, Android mobile, and Windows desktop platforms.
Using Appium, you can run automated tests on physical devices or emulators, or both.
The apps that are written using the traditional iOS, Android, or Windows SDKs are known as native applications. The web applications that can be accessed using a mobile web browser are known as Mobile web applications. For instance, Appium supports Chrome on Android and Safari on iOS. Applications that encapsulate the native control-web-view for interacting with the web content are known as Hybrid Apps. Hybrid applications merge the best of native and web applications.
Why is Appium?
Mobile automation testing is crucial to the modern app. Other than Appium there are many open-source mobile test automation tools available on the market. Some of the popular ones are Calabash, Espresso, UIautomator, and Robotium, etc.
* A comparison between the most used mobile automation tools. Source: Bitbar.com
* A comparison between the most used mobile automation tools
How does Appium work?
Appium interacts with an application automatically, by leveraging the behavior of the various components such as buttons, text boxes and links in the UI.
It can be reused to write and run tests repeatedly against the given application at various sessions.
Here’s how Appium works for Android and iOS mobile devices:
Appium on Android device
Appium uses the UIAutomator test case to test the Android user interface to automate Android devices. The UI Automator is a native UI automation framework for Android.
The requests are sent to the Appium server using Mobile JSON Wire Protocol. Appium server forward these requests to Android real device/emulator. These commands are interpreted by bootstrap.jar which converts them into mobile understandable UIAutomator format. The UI Automator commands can now be performed on the device/emulator.
Appium on iOS device
Like Android devices, Appium uses Apple’s XCUITest API to test the user interface element for automating apps on IOS devices. That is, it utilizes the principle of RESTful services by sending JSON files. These files then work with an iOS application using UI elements such as buttons and text labels.
What makes Appium so special?
- It is open source and has huge community support.
- Provides support to Native, Web, and Hybrid mobile applications and the tests can be executed on Real Devices, Simulators, and Emulators.
- Appium is cross-platform mobile testing, which means the same test would work on multiple platforms.
- Support major programming languages such as Java, Python, C#, Ruby, JavaScript with Node.js, and PHP.
- Appium provides a record and playback option.
- Appium is compatible with any testing framework.
- Your test code can run on emulators, simulators, real devices, and cloud-based mobile automation services such as SeeTest, AWSDevice Farm, BrowserStack, Sauce Labs, etc.