Appium is an open source mobile automation tool. Appium is basically an HTTP server written in node.js technology that creates and handles webdriver sessions. Now you must be thinking why they have used nodejs platform. Well we will see this in detail in appium architecture later. This post is to give you a glimpse of appium and how you can utilize your webdriver API knowledge/skills to automate your native, hybrid and even web application on both Android and iOS.
There are tools like Monkey Talk, Calabash, Robotium, Selendriod etc. but of these tools requires some extra agent needs to be complied with your application source code so that they can interact to perform desired action on application.
If you look at selenium webdriver architecture you will find that your WebDriver API code is first translated into WebDriver SPI (Stateless Programming Interface) and from there JSON Wire protocol is called using HTTP transport mechanism then JSON objects are broken down using JSON Wire commands by the browser or RemoteWebDriver server.
This was a high level view of webdriver architecture. it seems not clear enogh right? Don’t worry we will discuss it later in some post.
Motivation of mentioning architecture of webdriver is to give you a visibility that at what level Appium actually works.
It actually uses JSON wire protocol, that provides flexibility not only to write test script in our own selenium supporting language and no modification is required in your source code (apk/app files) at all.
Hope this article is helpful understanding overview of Appium tool.