Appium for beginners..

Tharaka Liyanage
2 min readNov 2, 2021

--

Hello there, are you new to Appium and looking where to start your learning?
😎 Here you go…

In this article I will give you an introduction on What is Appium, Why Appium Leads in the market among other Mobile Automation tools and Appium architecture.

What is Appium ? 🧐

  • Open-source Mobile Automation tool
  • Supporting for Native Apps (Android & iOS) , Hybrid (Mobile+Web) and Mobile browsers
  • Internally uses WebDriver Json wire to test Apps
  • Test on Simulators (iOS), Emulators (Android), and Real devices (iOS, Android, FirefoxOS).

Why Appium is powerful in market ? 👀

  • The only Cross platform (Android/iOS/Firefox OS) test automation tool
  • Works for Native, Hybrid and mobile web apps
  • Support web driver API - Selenium family
  • Client code can be written in any language supported by Webdriver ( eg. Java, c# , Javascript, python, Ruby)
  • Works on any testing framework

Appium Architecture

Appium Clients

  • It’s your client code or simply the automation code you write to automate mobile App
  • You can use any preferred language like Java, c# , Javascript, python, Ruby, PHP

Appium Server

  • To be downloaded and started locally on a port (default 4723)
  • Written in Node.js
  • Can be built and installed from source or installed directly from NPM.

Client-Server Architecture

Here comes the interesting part. 👁

Let’s see how these client , server and mobile devices are working together to run your automation code.

Assume now you have your client code or Appium tests with you. Here in client code you have already given details about on which mobile platform, which App, which screen you need to run your tests.

Once you start running your tests, Appium converts this client code to json format at run time (regardless the client code language) and send it to the server. Server is always waiting and keep listening until it receives client code in json format.

By now you might have a question in your mind why client is redirecting to Appium server port or else why we are sending our code to Appium server. This is because, Server has capability to interpret the client code by reading this json and understand what needs to be performed.

Once Server interprets what are the required actions need to be performed (eg. on which platform (iOS/Android) tests should run), it decides on correct testing framework (XCUITest/UIAutomator2) and root to the correct iOS or Android mobile device in order to execute automated tests on Mobile Apps.

Once Mobile device received the response from server it traverse through the same direction and sends response back to server and then response json to client.

This article explains how Appium runs your automated tests on Mobile Apps and hope you got a brief idea on how Appium works.

See you in the next blog….✌️

--

--