Appium is an open source mobile app test automation framework and tool, used for the purpose of testing the mobile native, web and hybrid applications built in Android and iOS, and primarily supports Macintosh and Linux platform.
It is a cross platform automation tool and may prove to be more useful and productive in testing the apps targeted for the multiple platforms, especially the web-view based apps. Appium is built and based on the selenium technology viz. selenium APIs. It facilitates the advantage of writing test scripts in any programming language. Further, it can be used with all other types of test framework such as NUnit.
A tester well versed and efficient in using selenium tool will find appium easy to use and run the test scripts. Appium is almost similar to selenium, with the difference of types of software application supported and tested by these tools. Selenium is used to test the web based applications whereas appium tests the mobile native, web and hybrid applications viz. android and iOS applications.
In addition, appium android and iOS drivers are built on the top of selenium web driver API to interact with the android and iOS applications. Commands and features used in appium and selenium are almost same, like in selenium, selenium IDE is used to record and playback whereas in appium, appium inspector supports the feature of record and playback for all platforms except windows.
Standalone installation and setup of appium is not enough to run and execute mobile test scripts. Appium requires other essential tools and resources which needs to be installed, setup or to be on the machine or system along with the appium installation, to successfully carry out the mobile app testing using appium framework. These pre-requisites are:
Appium uses HTTP protocol, where tests to be interfaced with the appium uses http libraries and JSON to send HTTP request for creating HTTP sessions. When the new HTTP session gets created, Node JS will transfers the commands to platform drivers which are active. Accordingly, the commands are executed either on real device or on emulators. The client i.e. the device or the emulator responds back to the appium server with the results in the form of HTTP response, which is subsequently logged by the appium server.