Appium Internal Architecture
A free video tutorial from Rahul Shetty Academy - 1.3 Million QA Learners
Helping people Become Job-Ready SDET Engineers
44 courses
1,264,155 students
Learn more from the full course
Appium -Mobile Testing (Android/IOS) from Scratch+Frameworks
[LATEST VERSION 2.0] Master on Mobile Apps Automation Testing from basics to Framework CI/CD with real time examples
26:01:06 of on-demand video • Updated March 2026
By the end of this course you will be able to automate any (Native,Hybrid,Web) Apps in Android/IOS using Appium
Thorough Understanding on Appium best practices and reusable utilities for automating Apps on both Real devices and Emulators
Design the Industry Standard Mobile framework from Scratch which is compatible for both Android and IOS Platforms
Implement end to end CI/CD pipeline from scratch using Appium with all framework features like logging, reporting etc
Design Appium Framework with open source technologies like Learn Maven, TestNG, Jenkins, JUnit, Git, Extent Reports and Apache Log4J2
Automate Mobile Browsers like Chrome & Safari with Appium WebDriver Library under hood
You will know the coding standards in writing the most optimized Mobile Automation Scripts
You will be able to create GREAT LOOKING REPORTS using the best advanced REPORTING TOOL
"Last but not least" you can clear any Interview and can Lead Entire Appium Automation Project from Design Stage
English [Auto]
All right. So in this lecture, let us understand APM architecture and see how this tool works in the back end. Okay. So I'm going to explain the whole architecture with this diagram. First, APM client code. So this is where you actually write your code. Okay. So you know that if you want to automate any mobile app, you should start writing some automation code in your favorite language. In the last lecture we have seen that APM can be written in multiple languages like Java C sharp Python Ruby. Okay, so it's up to you in what language you write. Basically, the language, what we choose, we say it as a client code because we are the clients here and APM needs to serve us. So in this whole concept, clients are nothing but V client code is nothing but the code what you write to automate your mobile apps. Okay, so we will choose one editor, which is obviously Eclipse in our next lectures and we write our code. This course is completely taught on Java, right? So we write a code in Java language for APM. Thereafter there is a server for APM, which you need to download. So all the download installations you will see from very next lecture, you don't worry about it. So just understand how the concept works here. Okay, so once you have written the code at the same time you need to download and start the APM server in your local. So when you start the server, your server will start at some port called four seven, two, three or any port, whatever you are interested in your local. So when you start this server, this server will keep on listening to your client code. Okay. It will wait and will listen to receive your client code. And in your client code you will clearly tell that redirect my code to this port because at this port APM server is sitting and it's listening. Okay. So why we are redirecting to APM server? Because this server have a capability of interpreting your code and then understand what all you need to perform and perform all these actions on your mobile device. All that responsibilities is taken care by this APM server. So that's the reason we have to send our code to the APM server. So we will download the server, start the server at one specific port number and we write our code and at the end we redirect our code to this port. Okay. All these are simple steps. Don't worry that should I write complicated code to redirect everything? All this. These are just simple one line code which will does all this work? Okay, so that's how you send your code to your server. And when you send your code, APM wraps your code into one Json format and send it to the server because this server expects Json as an input. Okay. So that's the reason. No matter in which language you write, you may write it in Java, you may write it in Python, JavaScript, write it in any language. At the end, when you run your test, the first job what APM does is to convert your code into Json. So obviously whatever language you write as it is converting it into Json which server needs. So server have the capability of interpreting that Json file and understand what are the actions we need to do on the mobile. And then it redirects those actions and execute those on the mobile devices. Once it gets a response again, it travels in the same direction to back give the response to APM Server and APM server sends back to the APM client code in the Json format again, and this Java client code, whatever you write, have an ability to parse the response Json and give the output to the user. Okay. The same direction. How it travels the same direction, it gets back the response as well. Okay now. Once it receives the commands from here and it will understand first in whatever mobile I have to perform these actions because all this we will give it here. Okay. Perform this action on the Android, on this specific app, on this specific screen, on this specific edit box. All those details we will have here, right? So APM Server will interpret all those actions and it will decide to which mobile. I have to route this by reading your Json file. Whatever you sent. If it is android then under hood it uses UI automator to test framework to talk to Android. What is this framework? UI automator tool is provided by the Android guys. Okay. Android team itself have created this testing framework to test their APIs. Similarly, I also have created one framework called CI test to test their iOS apps. So our tool uses their testing frameworks under Hood to perform automation on their platforms. Okay. So in general, without using their test frameworks, it's a little tricky to automate on mobile devices. So but if you use under Hood their specific test frameworks designed particularly by those platforms as under Hood, then you will have robust results because you know that these provide a super compatibility and consistency in automating because those guys itself have released their testing frameworks. So APM uses this under Hood and performs automation. If it is Android, it uses their framework called UI Automator to as their testing framework. If it is iOS, it uses their testing framework called X UI test and perform automation on iOS apps. It decides by reading the Json, whatever the user sent from their Java client code and then routes the route the request to appropriate device. Okay, so this is how the APM architecture works in the back end. So now to run our APM test cases, now we need an editor to write the code and client jars as well. Okay. So when I say that I will write my APM code in Java, you have to also download supporting Java client libraries of APM. Right? So then only that jar will support your code. So in the next lecture you will see what are those Java client libraries and how to download them. And then you should also download one APM server so that this is the heart of the architecture you have without the server. If you simply write the code and run it routes to nowhere and your test fails. So you also now know that you also need APM server, Java client jars and to execute on devices, you either need a real device or virtual device. Okay. You can also create a virtual device in your system and execute your test on that virtual mobile device. Okay. You will also see that in your coming section. So now you are clear on what all you need before you start your first test case so that in the next section, when I start downloading all the servers, virtual device and the Java client, you will not be confused like why do I need all this? As you know how this architecture works. Now you will be clear whenever I am showing the instructions to download all these tools to make our first test run. All right, so that's all I have in this lecture, and that's about architecture. We'll see you in the next section with installation instructions for all this. Okay. Thank you.