Appium is an open-source framework that allows mobile app developer Singapore to run automation testing of mobile applications on different platforms like Android, iOS, and Windows.

It automates the testing for:

  • Native Mobile Applications that are written using native language like iOS, Android or Windows SDKs.
  • Mobile Web Applications that can be accessed using any mobile phone browsers like Safari, Chrome or any other in-built native browser applications.
  • Hybrid Mobile Applications that have a native wrapper around the web view to make feels like native applications.

Appium is a cross-platform testing framework that is flexible, enabling you to write the testing code against multiple platforms such as iOS, Windows, and Android using the same API. This means you can use the same code for iOS that you have written for Android, saving lots of time and effort.

Appium, like that of Selenium, offers you to write the test script in different programming languages which include Java, JavaScript, PHP, Ruby, Python, and C#.

Now let us go over some key concepts of Appium that will help us to understand architecture.

Appium Concepts: Three key that are intrinsic to Appium’s architecture:

1. Appium Client-Server Architecture: Appium’s heart is a server written in node.js. The server works using a client-server architecture. In Appium the client sends requests regarding automation to the Appium server. The server processes the request in its own way and then responds with the test result or log files.

2. Appium Sessions: Everything ‘automation testing’, is done encapsulated in a session. The client sends POST requests, also known as session requests to the server. These requests carry information in a JSON Object, and communication is executed using the JSON Wire Protocol.

3. Desired Capabilities: Appium works differently on iOS and Android. Now since it is a “cross-platform” tool, a mechanism must exist to differentiate between the two operating system’s session requests. Desired Capabilities are key-value pairs of information that distinguish b/w an Android and an iOS app. With arguments like-

  • platformName
  • deviceName
  • appPackage
  • appActivity

JSON Wire Protocol: The JSON Wire Protocol is the mechanism used for communicating between client and server by website development company Singapore. According to the WebDriver protocol is a bunch of standardized endpoints that are exposed to the client using a RESTful API. This helps in establishing communication of WebDriver with a server and a client for performing automation. Appium uses the mobile JSON Wire Protocol, an extension to the Selenium JSON Wire Protocol to control different mobile phone behaviors rather than just setting up a communication stream.

Now let’s brief about the Appium architecture.

Appium Architecture: Okay, if you’ve read through the above-discussed concepts properly then, getting a grasp of the architecture easily. To make it easier, let me jot down the architecture in a pointwise:

  • Appium is an HTTP server which is written using node.js
  • The client communicates to the server using a session with the help JSON objects. The communication is handled by the mobile JSON Wire Protocol.
  • The server differentiates between an iOS and an Android request using the desired capabilities.
  • Appium server then processes the request to the respective UI Automator’s as seen in the diagram below.

  • The UI Automator then processes the request and executes the command on a simulator/emulator/real device.
  • The results communicated to the server and then back to the client system in terms of logs, using the mobile JSON Wire Protocol.

 

Looking for a freelance web development Singapore? Feel free to connect with us!

Leave a Reply

Your email address will not be published.

You may use these <abbr title="HyperText Markup Language">HTML</abbr> tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*