Thursday 23 March 2017

APPIUM : Introduction to APPIUM mobile automation tool

What Is Appium?
Appium is mobile web, native and hybrid software application test automation tool developed and supported by Sauce Labs . 
It is open-source software automation tool which is useful to automate android and IOS platform apps.

Most important thing is : Appium is “cross-platform” automation tool so you can write software automation tests against iOS and  Android (multiple platforms) using same API.
“cross-platform” enables you large amount of code reuse between iOS and Android test suites.
Appium support software test automation on emulator or simulator and physical mobile devices too.

Appium is developed on few key philosophy points :
1.      Should not have to recompile your app to automate it.
2.      Should not be locked into a specific language or framework. 
3.      Should be open source
4.      Should not reinvent the wheel when it comes to automation APIs.



How is Appium built?
Appium is basically an HTTP server written in Node.js® that creates and handles webdriver sessions.
Node.js® is a platform built on Chrome’s JavaScript runtime for easily building fast, scalable network applications. Node.js uses an event-driven, non-blocking I/O model that makes it lightweight and efficient, perfect for data-intensive real-time applications that run across distributed devices.
Appium architecture
As Appium is an HTTP server, its performs pretty much same as Selenium Webdriver server by
·         Receiving request/commands from client libraries*
·         Executes the command on the target devices/emulators
·         Responds with an HTTP response
Hence Appium works as a Client/Server architecture.
Appium Desired capabilities?
Desired Capabilities are sent by the Client to Server via JSON Objects by requesting the automation session we need.
These desired capabilities are found in the link below

Why Need Appium?
If you are mobile app software test engineer, Appium can makes your mobile app regression testing task easy. Specially for large mobile apps where continues apps are updating with new features and functionalities. Another main benefit of using appium for mobile app automation is : It supports bellow given multiple platforms and languages. Also you can use any testing framework.

Multiple Platforms Support
Appium support bellow given different platforms.
Android
IOS
FirefoxOS
Multiple Languages Support
Appium supports bellow given languages with the Selenium WebDriver API and language-specific client libraries.
Java
Objective-C
JavaScript with Node.js
PHP
Python
Ruby
C#
Clojure
Perl

Also there are other advantages like no source code is needed to test app as you can test it directly, also you can engage built in apps like camera, calendar etc in your test script if required.

Limitations Of Appium
There are few limitation in appium right now.
l  For Android, No Support for Android API level < 17.
l  Script execution is very slow on IOS platform.
l  Gestures support is limited.
l  No support for Toast messages
.
I think, this is enough to use any open source software automation testing tool in terms of usage flexibility.

Note : Appium supports only Android 17+ API level versions. Otherwise you need to use selendroid. You can find API level for your phone based on its version

No comments:

Post a Comment