Please post your Web Driver questions in official Web Driver forum

Thursday, May 28, 2015

Appium Architecture

Back to Appium Tutorial Index

Appium is an HTTP server which is written in Node.js and exposes REST API. It creates and handles multiple WebDriver sessions. It receives connections from a client, listens for commands, executes those commands on a mobile device, and responds with an HTTP response. It is same as the Selenium server, where in selenium server gets HTTP requests from Selenium client libraries.
Like selenium tests, appium tests are also written once and can be run on multiple devices (well almost). This primarily entails four entities -

  • Tests, written in one of the appium supported languages
  • Appium server (also known as test server), which interacts with device (or emulator) running the test
  • Device (or emulator) to run tests on
  • Machine from where tests are run

This could be visualized from following Appium Architecture Image
Herein one machine can be used to run both appium server and test. In Appium video tutorial we would be running appium server on the same machine on which tests are executed. Test code performs HTTP calls to server which then translates those commands into device specific actions sent to device.  These commands are user interactions to the device for ex - clicking on button, swiping the screen, scrolling in to area etc
Fork me on GitHub