Many test cases depend on the functionality of a given system or software. As such, there might be hundreds of thousands of test cases. We may have to spend many hours, days, and weeks manually performing all those test cases. For those who don't have that sort of time, that’s where Appium comes in. Appium performs all those test cases in just seconds according to our instructions.

Why Appium?

There are some automation tools for mobile devices, but these tools are specific to a platform. For example, there is one tool called Robotham, which works well only for android devices. Similarly, Selenium android only works for Android devices. Calabash is another mobile automation tool that only works for iOS devices.

To overcome these types of limitations, automation testers choose Appium. Appium is the only tool that works on both Android and iOS. Using Appium, you can write automation tests on both Android and iOS apps. So it is one of the most popular tools in the market right now available for cross-platform testing.

Appium also perfectly works for all native, hybrid and web apps. If an app is exclusively developed on mobile platforms like Android or iOS, we call it a native app, but some apps involve a mobile platform and the web platform. Some apps are developed with extra elements from websites or are web apps that act like apps but are not installed on mobile devices. Therefore, the cross-platform use of Appium is very useful for testing these kinds of apps.


Appium Architecture

Appium Client Code

If you want to automate mobile apps, you should start writing automation code. For Appium, I am using eclipse to write Java code. As we discussed above, Appium can be written in several languages like Python, Java, C#, Javascript, and Ruby.

Appium wraps your code into one Json format and sends it to the server when you write your code in any language. The Appium server only expects the Json format input. Appium automatically converts your code to Json format, so it does not matter which language you write your client code.

Appium Server

To run the Appium server, you can download the server files to your local machine and run the server in specified port number. After defining a port for this server, you can redirect your client code to this port.

When you start an Appium server, it will keep listening to your client code. You might think why we are redirected to the Appium server. It's because this server can interpret your code and understand what you need to perform. All the responsibilities of performing different tasks on your mobile phone are taken care of by the Appium server.

The Appium server receives the Json format input from the client and understands the actions we need to do on the mobile phone. Then, it redirects those actions and executes those on mobile devices. Once our phone gets a response, it travels in the same direction and gives a response to our server.

Similarly, the Appium server sends back to the Appium client code in Json format again, and the Appium client can parse the Json. After parsing, the Json Appium client displays the result to the user.

Hope you learned something new about application testing today.