Let’s start with a little history first, back in 2011-2014, we were using tools like Selenium web driver( using Java and C# as a programming language) and Eggplant (Black Box Tool-Language used were Sensetalk) to automate test cases of Web Applications which were to run on Windows Operating System. Everything that used to run to web browsers only were expected to have mobile applications.
We started our exploration with Appium in 2015 to see if we can automate Native apps developed in Java(Android) or Objective C(iOS) and Hybrid apps. There were other tools too like calabash, Monkey Talk and Frank, but appium holds advantages like we don’t have to modify app code/ or install any external code to our app. Overall Appium concept includes Client-Server Architecture, Session, Desired capabilities, Appium Server, Appium Client, and Appium Desktop. Because we have experience using selenium with Java, it wasn’t difficult for us to understand Appium.
These days almost everyone dealing with mobile apps knows, Appium is an open-source automation framework used for testing mobile apps (Hybrid and Native) and applications run on browsers on mobile devices. There is a lot of help available online and anyone can start learning it. But before you jump to low level details it’s always better to understand how it works on a high level.
How It Works
Appium client and Appium server use JSON Wire Protocol to interact. All communication processes in the form of request and response.
In order to connect with iOS and Android devices, appium needs Google UI Automator and Apple Instrumentation library.
How Appium communicate with mobile apps
Appium needs an Instrumentation library or Google UI Automator for connection between iOS-Mac and Windows-Android. These libraries are also like a framework that helps appium to perform operations on mobile devices. These operations