Appium is an open-source tool for automating native, mobile web, and hybrid applications on various mobile platforms like iOS and AndroidOS and firefoxOS.
- You shouldn’t have to recompile your app or modify it in any way in order to automate it.
- You shouldn’t be locked into a specific language or framework to write and run your tests.
- A mobile automation framework shouldn’t reinvent the wheel when it comes to automation APIs.
- A mobile automation framework should be open source, in spirit and practice as well as in name!
Test the same app you are shipping (no need to recompile or customize the app to test)
different vendors provide different frameworks to achieve this
iOS app : UIAutomation
AndroidOS 4.2+ : UiAutomator
Android earlier versions : Selendroid
WindowsOS app : WinAppDriver
FirefoxOS app : Marionette driver
Appium supports multiple languages by using WebDriver API which specifies a client server protocol (JSON wire protocol), a client written in any language can be used to send the appropriate HTTP requests to the server.
Appium supports all languages that selenium webDriver supports.
Appium added certain extra API methods on top of selenium WebDriver for mobile automation, did n’t recreate the automation libraries from scratch.
Appium is open source. (can download and use without license).
We can write our test code in any language (for each language there are client libraries), client libraries send requests over HTTP JSON wire protocol to appium server. (till appium 1.x)
- From appium 2.x onwards, the communication will happen over w3c protocol .
- Appium drivers are maintained separately, so need to install on a need basis.
- Introduced appium plugins, so different community or individuals can create code blocks to add/alter certain appium commands which can talk with the appium drivers.
Appium server receives connection from a client, listens for requests and execute them on mobile devices, in turn sends back responses as a result of command executions.
Appium server written in Node.js.
Appium.exe (for windows OS), Appium.app (For other than windows OS) are GUI wrappers which enables to run appium server.
For appium setup windows, please refer next post.
Download link for client and appium server –
Document reference –