Architecture of Appium
The architecture of Appium is a WebDriver session-handling HTTP server implemented in the Node.js programming language. The Appium server accepts JSON-formatted HTTP requests from the client libraries. Depending on the platform on which it is running, the requests are then processed in various ways.
There are 3 components included in it:
- Appium Client
- Appium Server
- End device
1) Appium Client:
The architecture of Appium Client is the name for the automation written code.
The code can be written in any computer language, including PHP, Java, and Phyton. The configuration details of the Mobile device and the application are stored in this automation script. In addition, the logic/code for running the application’s test cases is programmed.
2) Appium Server:
Appium Client is the name for the automation written code. The Node.js programming language is used to create the Appium server. It receives JSON-formatted connection and command requests from the Appium client and executes them on mobile devices. Before calling the automation code, the Server must be installed and started on the system.
The server communicates with a variety of platforms, including iOS and Android. It generates a session for interacting with mobile app end devices. It’s an HTTP server implemented in the Node.js programming language that reads HTTP requests from client libraries and sends them to the correct platform. Appium Client is the name for the automation written code.
Users must either download the source code or install it straight from NPM to start the server. It also includes the server’s graphical user interface. It’s available for download from the Appium website. We’ll go through the GUI version in greater depth in the following chapter. Because Appium is a REST API at its core, the code you use to interface with it can be written in a variety of languages, including Java, C#, Ruby, Python, and others.
3) End Device:
This is mostly a real-time mobile device or an emulator. The automation scripts are executed in the end device by the Appium server by the commands from the client.
The commands are sent to the server in JSON format by the Appium Client, which holds the configuration parameters and the automation script for the test cases. The automation script is translated to JSON format by the client’s built-in jar files.
The command is subsequently recognized by the Appium Server, which establishes a connection with the matching end device. Once the connection is established, test cases are executed in the end device. The End Device sends an HTTP response to Appium in response to the request.
It populates the log of all actions performed in the device/emulator as and when the test cases are executed in the Mobile device/emulator.