Now that we have understood the different types of mobile apps, let's take a look at how Appium is architected to support mobile app automation. Appium is basically a web server written in Node.js. The server performs actions in the given order:
- Receives connection from client and initiates a session
- Listens for commands issued
- Executes those commands
- Returns the command execution status
So basically, Appium is a client-server architecture.
The Appium server receives a connection from client in the form of a JSON object over HTTP. Once the server receives the details, it creates a session, as specified in JSON, and returns the session ID, which will be maintained until the Appium server is running. So, all testing will be performed in the context of this newly created session. The following is a diagram depicting the Appium architecture:
The Appium server is written in Node.js; it can be installed via npm or directly from source.