 I think we should get started with the thing, okay first of all welcome to Drupalcon and welcome to my session, today we are going to talk about automated mobile testing using APM. So first of all I would like to introduce myself, I am a software test engineer at blistering solutions working with the automation of web as well as mobile applications, also a manual test engineer. So the first thing which we are going to talk about is the need of mobile application automation testing, so what is the need of mobile automation testing, as we all are familiar about the desktop application testing right, we do it manually, we do it by automation as well. So the web application for the desktop one are automated 90 to 100 percent most of the things, but we have most of the organizations have not started yet with the mobile application automation testing. So the first thing so as we have seen an explosive growth of smartphone apps since 2007, okay so there is a huge market of mobile applications as mobile applications are more reliable for most of the organizations. So in some cases mobile apps bring half of the web traffic from the mobile, so instead of using desktop application people are more and more reliable on the mobile applications, whereas in some cases mobile applications are the only way where customer interact with their product, okay in this case we can just take out some of the examples in the sense we can take Flipkart, Amazon these have more reliability and these are more concerned about the mobile applications right now, there is no concern that they are not taking care about the web, but they are having more dependent on the mobile application now, no wonder that mobile application development process has become quick and efficient which also gives high priority for the organizations as the best is the mobile application the more user friendly it is the more interaction it gives to the customers. So fortunately mobile development process tool has evolving me meet needs this needs with modern dev teams as mobile application development is more faster as compared to the previous time we have different different tools we have well developed teams for the development of the applications development of the mobile applications have become more faster than the previous time, but what about the testing approaches we are we are simply doing the manual testing still now for the mobile application as the testing a mobile application is I can say more complex more its time consuming its platform variations and the quality concerns so I would like to talk about over here the test the difficulties coming in the testing of the mobile applications as we see more complex in the sense we just have to test if we are building for one particular Android Android device one particular app. So we just have to test it out on different different different devices such as the mobile versions and different things also it is time consuming as the manual work will be done. So what to check out each and everything we just have to do all the things manually then comes is the platform variation we build sometimes we build only for the Android applications and sometimes we build only for the iOS applications. So we just have to test out both the different different things that is time consuming and the more concern thing is the quality quality. So if the if there is any lack in the quality then the organization just cannot afford the for the laws of the customers. So the so these are all the things which have which are the difficulties. So alike manual manual mobile testing process we should also adopt mobile automation testing. So there comes in question that why mobile automation testing so this is two various factors to adopt mobile automations are it is efficient it is faster it is reusability then it is reliable and its cost reduction. Now let me explain you this particular thing as how it will be easier for us to adopt mobile automation testing efficient faster reusability. So let's take an example over here as most of the SDLC processes the methodologies which companies use nowadays is the agile process where they divide the requirements into sprint basis and those prints are divided one particular development processes divided into different different speeds. So whatever we develop in the sprint one that is to be tested after that we go to the sprint to sprint to the same things which we developed in the sprint one is to be tested in sprint two as well. So to over lag to over lag this particular time of first spending testing the things which were developed in the sprint one that is that can be occupied by using the mobile automation. So whatever we automate whatever the things which were build and tested in sprint one can be automated and which and that can be used in the sprint two. Similarly different different spins and more more and more complex the things become so we can just automate and we can just we can just reuse those things those coded things the automation scripts and we can use for the testing. So that will save our time in manual things and all the things will get automated. So that will be cost reduction the things would be reliable as the machine would be doing all the work. So you just don't have to depend and just depend upon the things. So next thing after all this concerns we just check out that okay we will adopt a mobile automation but which mobile automation tool to be used that comes the second question okay. So over here I will introduce the APM. So now what is APM? What is APM and why APM? APM is an open source test automation tool it's allowed testing for all types of applications such as native applications, web applications and hybrid applications. So I think most of I assume that most of the people would be knowing about these different types as the native applications are the applications which are built by particular platform means if that application is built if the application is built on the Android studio then particularly that will be available in the play store as well. So those are the native applications. The examples of the native applications can be the most frequent applications which are available on our phones such as camera, calendar and all such things. Similarly hybrid applications hybrid applications are those applications which are the combination of mobile native applications and the mobile web application. Now you would be assuming that what is mobile web applications okay. So whenever we are just checking out one particular website on our mobile app, mobile phone through browser so that is the version so that is what we are talking about that particular thing opened in the browser is called as mobile web application. So the hybrid application is the combination of native and mobile web applications. So for example if we want to take an example the native apps are which I told the camera, calendar and all such things which come on our platform on our mobile phones by default are the native applications. Hybrid applications we can take before the Facebook was hybrid applications but now they have been switched to the native web. Similarly the mobile applications the website which are opened on the mobile browsers are called the mobile web applications. So and the most important thing about the APM is APM is a cross platform. So what is cross platform over here? As we have different automation tools to be used for mobile application testing those are divided as for the iOS if we are building an iOS application we need to jump on Calabas, iOS, Frank, UI automation these are particularly some tools for mobile automation. Similarly if we are building any Android application we have different different tools for Android application testing as well. Robo-CM, UI automators, cell Android these are the Android application automation testing apps. So over here where do our APM stands? The APM stands right behind between both the things. Okay so the automation tester don't have to jump for each and every particular script for iOS and Android. He just have to give he just have to sit under one hood where he can just automate all the things which is to be tested on one particular on one particular tool and for both the iOS as well as the Android application. Okay, as I said APM is cross platform it supports both iOS and the Android. Next thing APM supports most of the programming languages as well. If your automation engineer is not able to core up at Java so he can just use PHP C sharpen he's just have some he will have some random things to get to get the things started. Then APM handles both the simulator as well as the real devices as in many times during the testing we just face that whatever things we build which execute the gets executed on the simulators but not on the mobile applications. Similarly, let's take an example over here means if you are having a mobile application okay mobile application app you have been developed and that particular app is app is running very smooth and very very UI friendly on your one particular device. So what about the second device? So that is the main concern over here. So sometime it sometime the developers face such situations as well where the where the things all the things are executing very fine on the simulator but they are not tested on the real devices. So APM gives us the opportunity to test on both the things the simulator as well as real devices. The only thing you would be doing the only thing your automation tester would be doing is he just have to define what particular app what what particular version and what particular mobile phone on which it is he is testing the same thing APM supports automation for all apps like hybrid app native app and web apps that we spoke about. So APM is compatible with selenium web driver. Anyone aware about the selenium web driver over here? Okay, so selenium web driver is the tool which we use for building applications as well as so the same thing we would be using here for the APM automation scripts also. So over here the selenium the selenium web driver would be are the APIs which we use on our eclipse tool and which we can command that particular thing on. So how does the APM works over here? APM is the mid tier over here. He will just on the server and let your mobile application and let your mobile application communicate with your particular selenium files and in that way you can just whatever you would be doing is you just have to command on particular selenium on your tool whatever is the command that that access would be given from the APM. APM will make your device make your device get all the request and give your result on particular eclipse tool. So APM is free and open source that is also the big thing and APM is very well supported with active Google group building a large and thriving open source community effort. Okay, so now how to get started with the APM? So these were all the advantages and windows also Windows platform. I guess for Windows platform we just have some different tools as the APM doesn't support on Windows platform. Yeah, it's only for Android and it's only for iOS. For Windows application you can use one tool is there that is CE test automation. For Windows you would be using that particular tool. So Windows is not been supported by most of the automation tool. So that is the only tool I guess that is the thing. Okay, so how do we get started with the APM? Okay, so these are some prerequisites to use APM. Over here I have concerned only the Windows things or for iOS you can just I will just describe the thing. The first thing you would be using over here I have used is the JDK. The Java language is the Java language which I have used over here. So you would be using a JDK kit, JDK version 1.6 plus it would not execute on a lower version. Then you would be needing the Eclipse. Eclipse is a tool where you would be writing all your commands and all your scripts for which you would be automating. You would be needing Indigo and more than that. So this is the version, particular version. Then you would be needing the Android SDK with API levels 17 or plus as the APM would not support the applications which are below 17 plus or we can say in other language we can say the applications which are below the version 4. 4 in the sense, ison sandwich. So below if you are automating things for version 2.0 or something, so APM would not be supportive for that thing. The next thing is the Selenium web driver jar that we will be importing on our particular Eclipse tool. So the Selenium web driver jar is the tool are the jars which you would be using for your automation scripts. The next thing is the APM for Mac and Windows that is the APM version that is 1.3.7.2 or plus whatever you can take. The latest version is something around 1.4.1.16 or something like that. So you just need beyond 1.3. Next is the apk app info from your Play Store. This apk app is an app which gives you all the information about which application you would be testing on. Let's take an example over here. If you are using a flipkart app, if you want to automate the flipkart app, so you would be needing some information about that particular flipkart app. So on apk app info, you would be getting all the information such as what activity you want to get started with, what would be the build version and all such things you would be getting on this particular app. So this particular app would be useful for you. Other than that, if you are using a Mac or iOS device, on that you would be needing Xcode for waking your iOS device and the same thing you would be using version greater than 10 for Mac. So over here, I have just pasted one apm screenshot over here. This is how the apm looks like. This is for the windows particularly. So over here, if you are using a simulator or anything like that, so you can just put out all the details and all the descriptions of your app which you are going to test on that icon which is seen on the upper left part that is the android. This is a windows thing. So over here on windows, you would be testing only android applications and not the iOS applications. Then there are some settings and these are the server requests, how it gets started and this we will be using. This we will see a demo of this particular thing, how it will get executed. Next thing is the UI automator. So how UI automator would be useful? As you have seen in the behind this screenshot over here, you would be seeing a microscope over here, this way. What is this? This is an UI automator which gives you information about what things you would be inspecting and what are the things on which you would be using that particular command. So UI automator is a part of APM means if you want to build a script, particularly if you want to script an automation script for one particular application. So the first thing you would be using is the UI automator. Why? You just have to identify the things first as on which particular screen you would be clicking. Let's take an example if you have a sign in form over here. On sign in form you have three fields. One is the username, second is the password and third is the sign up button. So to inspect that particular element as the human beings can inspect that this is particular thing, so I have to click on that particular thing. But how will the machine do that? The machine will just, the machine, on machine we would just execute. We would just connect our device with the APM. We execute that particular script and once our device communicates with the, once our device communicates with our APM, you would get the description of all the things which are on your screen, on your mobile screen. So that is the thing. Over here you would be getting the information about a particular username, the password and also things where your machine would be clicking to get identified that this particular thing I have to click. So that particular you have to give in your command. So in this way the ui automator will be used. Next thing, this is particular, this is one command, this is one script written by me. Is it visible? Yes. Fine, okay. Zoom. The same thing is not happening over here. The same thing I would be, we would be seeing in the, we will watch this particular thing in the demo also. So in this particular script, so this is the script how we execute, how we wake up our device. So over here I have just mentioned the particular details of my things to be tested to wake up my, wake up my device to get the things started. So you just have to give your device name, what are the capabilities, what are the version you are using, what platform it is on, then the app package, the app package you would be getting by the apk info app of whatever be the application you are using for. Similarly the app activity also, this info also you would be getting that from that application only. So this is the thing which will wake up your android device on which you would be testing. So here is the next thing. So this is the script where we will test at what are the things which we are going to test on the particular application. Over here I have taken an example of an application, the application is something around, I have taken a demo of hybrid application that is called TweetTV. TweetTV is an application which streams video where you can see the live videos you can of about the technologies which are running about the digital technology things. So it's an app which we would be going through in our demonstration. So over here I am checking out one particular page that is the schedule page. For each and every application we have different about page and also things where the description of the applications are given. So this is the command for one script, I have given the schedule and also we just have to verify. All these things can be done by the UI automator itself where we have to find UI automator on the things. So this is what you have written, right? These scripts are what you have written. Yeah, these are the scripts. In the first line you are finding that element by that name schedule. Yeah. And then you are thinking of that. Yeah. And then you are waiting for 5,000 seconds. Yeah, it's not 5,000 seconds, it's 5 seconds particularly. Yeah, it's in milliseconds. In the third step what I am doing is I am just I have inspected one particular item. One particular item in the sense we have taken an example of username. Okay, that is been identified over here by the driver.find element by class name, whatever be the class name of that particular script, that thing inspecting. So this would be inspected by our tool. That's the selenium. Yeah, that's the selenium. So it will just, it will examine that this particular is present over there. It will examine whatever the next thing you would be giving. If this is present over there then you will be checking that, okay, this is fine. So we can move ahead. So similarly in the second script as well, that is the contact page. Or contact page you would be having some static information about this is, this has to be over here only. So that are not changed at all. So for that particular things we can just automate the scenario. So are you just checking the schedule and the contact link on that mobile app? Yes, this is the thing which would be so it would be checking in the script. So how APM works over here. This is the working architecture of APM on real devices as well as the simulator. So whatever be the, as we told, as I spoke about the eclectics and the web driver scripts which we would be writing for the automation. So web driver scripts whenever you write and when you execute them the automation commands are sent in form of the JSON via HTTP protocol to the APM server. So this particular scripts would be only understood by our APM server and the APM server will send all these particular things to our mobile device. Mobile device or we can say the simulator whatever you are testing on. So after it gets executed on the things and we would get the input and output for that. So those are again sent, client sends back the message to the APM server if they are all handled around the APM server and then it will be going to the web driver script. Over the web driver script on the on the Eclipse tool you would be seeing all the things which are done by your particular commands. You would be getting all the results according that which how many test cases have been passed, how many have failed and also description would be shown on your console of the Eclipse tool. So this is how the APM works. APM or script works. So the same thing working flow from web driver automation commands are sent in form of JSON via HTTP request to the APM server. APM server invokes vendor specific mechanism to execute those commands on the mobile devices. Whatever actions you have been written in the script are gone through the mobile devices. You would get the output from there. The same the same output would be given back to the APM server and that APM server will just give all the logs in your console of the web driver. So here the mobile device would be the simulator that is there on the machine? Yeah, if you are using a web means you are using a web mobile device or the simulator. Whatever you are using the all the commands would be sent by APM on that particular thing. So this is how it will be working whether you are using a mobile device or you are using the simulator. APM returns in which format? The same format in which he gets it. Just JSON via protocol. Okay, so here I will show you some demonstration of my automation script which I showed you over here. Okay, I have taken over here the same app that is the twit tv over here. We will just execute some of the commands on that at how the APM works and how it gives the results. So okay, this is the thing how our APM looks like. I will just for your this is how the APM work APM looks over here. It is yet started the same thing the commands of our commands. I have made three scripts over here on Selenium some activities. I will just show you the mobile device as well on the screen. It's a real mobile device. Okay, it's a real mobile device over here on which we would be executing our scripts. Before doing anything we just have to start our APM server which is done by this particular thing. This the APM has been stopped. We just have to wake up your APM. It takes time. You don't have to there is no need for the APM thing but the eclipse the thing eclipse and your android studio is to be placed one on one particular thing. So over there it would be done. So here I am going to execute this script which I have written which I showed you on the this interface. This is just what we can say team view to just view the things. It's a it is I am not having any communication between the APM and all. It just have to view these particular script on. So in this particular script I have I have written commands for checking the about section. About section of the particular this app. So all the things are getting executed by APM and at last we would be getting the result on our eclipse tool in the console. So it's done. Let's check the result. So here you can see the results. We have the the script just went to the page title. He just verified the page whether that is present or not. Then it went to the schedule page. These are the some of the pages of our tweet team. Let me show you that first. This is an application over here. You can see the live things. Watch you have some things over here such as featured the episodes of the episodes related to the digital things which are trending. So this script have tested the more page. Okay over here we are having different different pages such as scheduled. What are the schedules which are the episodes where they are going to show. In this page he just tested this particular thing that whether it is redirected on the things or not whether it is not redirecting on any other page. Same thing it does for the communicator contact us page as well. In this page you will just check out things whether these particular things are present or not. Similarly what is tweet TV. This is as I told this is an hybrid application where it will communicate with the web things as well. This is just this is the window of the application itself but in that we have just embedded the browser things. So it tested this as well and it tested the terms and conditions. So all these things have been tested in this particular script and the results are like it has verified the page title. It has verified the schedule page contact us and for more things we can just check out the what are the things when passed by the test engine. Test engine is one more particular software which is which can be combined with the eclipse tool to get to make more descriptive about our scripts which we are writing. That is depend that is a we can say framework. Framework it depends upon the automation tester that how what and how the things he would be using and how he would be describing the things. It depends upon the your coder the automation engineer whether he is using test engine to make the scripts more more easy to learn as I have used test engine and it is more easy to learn for the particular different user as well that what particular things are going to be tested in this scenario. So if you are not using this thing then you can use the J unit that is the Java unit where you have to write particular all the things according to the code language what the developers do. The same things you could take here as well but this this makes the things more easy and more understanding. It is find element is like when you are finding that so does that auto like eclipse auto populate thing you know like if you type driver dot then you will see some things auto populate any functions that you may use like find element get element. So where does test engine comes into picture here like do we need that and how it is going to help me if I am trying to use APM with an engine with driver. So like I have this setup on my machine I have I have the eclipse I have selenium with driver but I do not have test engine so I wanted to know like how can test engine help me if I install APM as well. Okay I will show you the things how test engine have helped in this particular commanding right. So you would be seeing that I have mentioned here the before class method okay so this is how the test engine would be useful test engine gives us the annotations as and where which particular method would be executed when and how okay so the before class if I am writing to execute one particular java file what we have to do is we just have to write all the things but line by line and all the things would be executing line by line only. In test engine you do not have that dependency in test engine if you write the before class at the bottom also then your your command whenever you are executing this particular command it will execute the first thing is the annotation it will take execution by annotations. Annotations in the sense it will just execute the first thing is before class okay after that it will go into the methods the methods I have not used over here I have used the tests over here the second annotation it will go towards is the test the test you can give the priority okay test of the priority wise you can just set out the priority in the sense this is the test which is to be tested first okay the priority zero so this will be tested first the second thing it will take up is the priority with the second test so then it will after the zero it will execute the things which are written in the test priority two priority one so the third thing it will take is the priority is equal to zero okay it's not mandatory yeah that is what it's it depends upon the automation engineer whether what thing is using if you are not using this test engine then you can use the j unit that is by default for the java languages whatever you are scripting okay so that's one of the limitation for the apm where as a only the functionality can be tested till now by the apm as we just cannot inspect the screenshots and also things by we can we cannot compare the images but we can we do compare the commands and whatever things by which are the things which are present on your device so that can be inspected but capturing screen yeah yeah it is possible yeah which you just have to give commands according to the whether your selenium is supportive for that or not so it depends upon that and if you are giving the command it will capture the screen so this is how it will give you result according to the test engine and test engine would be using useful for to get your details as well that is the more advantage for using the test engine rather than if you are using only the j unit framework you would be getting result like this in this particular also you would not get the things which are written by the verified things as this is the thing which are wrote by me and not it is a it is not written by the execution itself the things which are result the results are the things which are written by the things are this the past one whether the method is been past or not so these are the things which are written so yeah we'll check out one more thing so in this particular test case we have got all the things past so how will we come to know that whether one particular command is been failed or not whether the functionality has been failed or not whether it is redirected on different thing so how will we come to know that particular thing so we'll check out one other scenario over here okay in this thing we would be checking out whether all the pages are available at their with the functionality or not okay so this is how it will check out whether okay the first screen which is the feature page it will check out the things the first thing the live now the live videos second is the watch now and live now these are the two things which we have scripted in this thing so it will check out all the things and give us result whether anything gets failed you will come to know by the test ng itself that this particular thing is failed and it will not the test ng have one more advantage over here if you are failing one particular script one particular method is been failed it will not stop its execution over there it will just go through the next test case and it will execute that and it will result that this particular thing is been failed and all the things other are passed so you don't you don't have to dig all the things that which particular thing is been failed and which are the past things so here we got the execution yeah we can as what we do by whenever we just give these things command these scripts whenever we make scripts we would just check out we will write that if this particular thing is happening then give me this result or just don't we just have to give conditions according to the scripts whether we are using which particular command or not so over here we got execution of this file as well so in results we will check out that the past things are two i have written three methods in this thing in this script the two things got passed these two things are working fine but the third thing is filled that is the watch now watch now in the sense that would have also been passed but what made it filled okay that is the question what made it fail in the sense sometimes our apps don't just respond on time right on time if it's not responding on time the user the users may get distracted about the things and they won't be coming on the application again so that also should not be happening with the applications whenever we are using so over here we got the failed result the two things which are passed i wrote the the thing which was failed which was the scripted in the second thing so that got failed even that got failed but the script just got executed on the third itself and we got the first thing passed the second was been failed and the third was been passed so this is the benefit of using test nj yeah we can use that depends upon how you are scripting the things if you have mentioned that particular scenario in your command then it would be tested if you have not including that thing so it won't be the machine would not be the codes will not do that particular thing and just result whatever you have command okay no that is not possible if you are executing for one application and that application is redirecting to your different application then this is one more limitation for the apm that we will say for the limitations we will speak just after the demonstration that what are the limitations which apm is having right now so that on that particular things also we are the apm team is working and that would be solved as soon yeah it's it's a piece of code whatever you are doing manually right as whenever you check out the things manually you will check out this thing is working or not so the same thing would be automated the only difference is like over here you just don't have to sit and test out each and everything or your if you have commanded if you have made script for testing that particular scenario then it will be done by the machine itself that is also not dependency as we have said that developer is not dependent okay you just need the basic concepts of the programming language which you are using and apm provides you different languages to use to whichever language you are familiar with you can just get started with the things on the eclipse tool and you can get started with the automation so whatever things you are going to do manually the same things would be done by automation the only thing you would be saving over here is your cost of testing out the things you would not need to more and more more and more people to test out that thing so that thing can be done by yeah if you are if you are using five manual tester and one automation tester so that would be your benefits of cost cutting that would be reducing the your cost of testing that will save your time as well and if these are all the benefits of using the automation as it's required as it's in the sense yeah the things which would be working background would not be things would not be tested would not be work for work awesome that we still continue to have it but as a user you will mention the click action so the click action is triggered that's what will happen can we capture the response suppose for example we have some web service for where the we have to take the response can we capture the response but then if it's a web service why do you need to pull the app you can just capture the response when the web interacts with the web service looks for a same service first this is a response and does something so that will reflect on the UI so you can verify whether the connectivity is loaded so much and only verify the response after which is the the web service for the web services automation you can just use different things which are which are applicable for the api things that would be done by different automation tools but this is the apm this would be checking out the user interface and not according to the back end things so this is the difference between the api services testing and this is the UI means that would be in the development phase if your application is very well based and it's done in the sense and that after that particular thing only you would be using the automation and not before that if such screens appears your automation script would just halt over there and give result that this thing what the script was finding that was not found but and another screen has been occurred so that will be given in your console that would be resulted on your console yeah you just have to exception handling that would be useful over here exception handling in the sense if you have given that command that if any other things would be coming so you just have to accept or deny such things and move that is the thing yes you can means you just have to give the particular as what we do in the web application testing okay web application we can just check out that this particular thing is present in this dimension or not the inspection if you if you are able to inspect that particular thing then you can just verify that that is having this since or not so you can do that suppose we have a native application where we supposed to test the wi-fi as well as the bluetooth features so is there any possibility to test in the apm for that the those are like what we can say is wi-fi and bluetooth native features yeah native those native features i am not knowing right now but what we are concerned about apm is checking out the from the ui itself whether the functionality is not hampered so it means the visible features which will be tested by the apm yeah not no other things like the those would be coming in the api services i guess so that is the thing that would be back-end and if if you just have to start your bluetooth and what check out that it is been connected to one particular bluetooth or not that can be done whatever whatever things you do manually from the ui that can be automated but back-end things won't be automated no i'm not having that we are as we are more concerned about the mobile devices over here so that is the thing there comes a scenario in various factors where the things run and execute successfully on the simulators but they don't get executed on mobile real devices so that is the thing we are doing it on the mobile devices itself and not on the simulators yeah the windows application from windows you can just test test only the android things for mac if you are using a mac then you can just switch both the things whether you are checking the ios application or the android yeah both the things can be checked but the point is generally we will be testing with the simulator because we could only have a couple of devices near to us so but there are so many devices now that we would like so generally we will be using a simulator so what is the way like you just connect it right now and with a real device and we saw those tests running so how how do we do this with the simulator simulator in the sense as what i said the ui automator okay the ui automator will let you know about the things on the simulators there are certain applications means the same things we have we have examined this thing that the things work the application works fine on the simulator but it doesn't work on the devices so that is the main scenario which we face so that you saying that something appears to work fine on the simulator but actually they're not but those are kind of design issues or loading issues that are there that means that the visual issues are there but i think as far as the functionalities are concerned where we just are verifying if there are five sort of links on the homepage that we looking for i think that would also work on the simulator yeah the functionality wise it will work but what about the ui things means if it has not been inspected on a simulator and it is present on the mobile devices then that application will not be useful for the things and at last we would be launching that mobile application on the mobile itself so it would be great if we test out on the devices itself and not on the simulators yeah it can yeah but the things depends over here again the dependency itself dependency itself the ipad have the big screen okay right the buttons would also float over there as you are talking about the responsive thing so if that is not inspected by your apm automation right so in this thing we have just i have just defined two two devices over here in the code itself right whether i want to check it out on galaxy phone or i have to check it out on the nexus phone so this is the thing how yes that is so over here we are talking about the negative the failed cases right the failed cases over here was the watch now thing right so in this particular thing you would be getting all the things that what are the reasons why it was been filled okay next thing we would check one more thing over here the same application with the difference in over here this will be the dependency dependency in the sense if you are if you are let's take an example of youtube okay sometimes youtube may not load particular video right if you are using a if you are connected on a less speed internet okay and it is not loading so that would be a that would be a negative scenario for the things okay so that is to be that is also to be handled so over here we are in this application as i told we would be having the different different episodes different different episodes and those are executing fine on particular manner on money time or not so this would be tested over here okay so the first thing on the feature page was the first episode whatever be the things okay it will play it will check out whether if it's play it will get the we will be getting the play and pause button as well okay so that is been scripted in this thing so if you are if the video gets play it will result that okay it is playing and all the things are working fine on all so let's take out the result in that way as we saw in the UI that both the pages where the script the script just redirected us both on both the pages but the play button was not been there right if the play button is not there then how can the execution be done so in this one scenario it got verified for one video but for the another video it didn't find any play button so one got passed and the second got filled so we just have to work out on the second thing whether the second element why the second element is not generating the things so in this way we would be knowing that what whether where is the fault so we can just report it out so this was the demonstration of our hybrid application so now we will move so now we will move to the limitations of the fm okay limitation fm are the it doesn't support image comparison that's what we we talk about as the image comparison is not the thing so that is been working out so it doesn't support the testing of android versions lower than 4.2 if your version is lower than 4.2 then fm is not the thing which you are going to use you just have to test it out for version greater than 4.2 it's limited support for testing hybrid applications hybrid applications as the hybrid applications have redirection most of the times as one particular as we are on one one application and we just click some links and we get redirected on the things so that is not been handled by the apm long time to configure for android as well as ios but once it is being configured then you just have is to automate all the things which you are needed yeah that depends upon the that depends upon the platform which you are using and it's like that it's a long procedure in the sense it's not like that that you won't be able to do but you would be able to do but it will take some time to configure all the things that is the best supported platform would be the Mac yeah would be Mac it would give you is to work on android applications as well as the ios applications yeah so no support to run apm inspector on the microsoft windows that is the thing that is one more lack over here so to use the apm inspector we just have to switch on the mac devices where you would be having the ease to check out to inspect each and every thing what you are going to write in the scripts yeah any other questions all right we are just done thank you two moments yeah that that is a scenario where you just have to check out the web mobile application right you just have to wake up your particular browser if you are checking an application okay which is which is not having any application but it is an web application right desktop application in that scenario you just have to wake up your chrome whatever you browser do you want to test it out okay and on that you just have to wake the same thing which means which we are waking the application the same thing you would be waking up with your chrome browser or whatever browser you are comfortable with and all the things would be scripted over there yeah yeah it would be chrome driver the same things would you would be giving is the chrome driver that is yeah it's just one line of code the things we you are giving that activity and all such things of your application that over there you just have to give your browser thing yeah five of some yeah just one driver and that is also been okay thank you for more queries you just can