 Hello everyone, good evening. Welcome to this amazing session, the first after the keynote which kicks off our APM Light Conference. I'm very happy to have Shruti on stage with us to take us through what is new with APM Inspector. Shruti, we still have few people coming in but I'll hand it off to you. So hello all, this is Shruti Pandey. I'm born and raised in Mumbai. I've been a QA Automation Lead myself for a decade now, been into solutions engineering space for two plus years now, helping different clients across the globe integrate automation products and setups and platform. So I hope the session that I've created today for all of you comes in really handy and adds some value in your learning as well. So what you see on the screen that I'm currently sharing is our classic APM server, right? So most of us would have seen this. That's basically like a prerequisite when we start our automation or testing or want to just inspect elements, right? When we want to automate a native application or a hybrid application or a web view version of an application. So this is a classic way how you have an APM server installed and you start the server and then you start the inspection session. I am pretty sure most of the people, that's how you go about starting an APM Inspector. And what I'm going to talk about today is no more this setup for APM Inspector or inspection or creation of your X paths and codes really. Rather, I'm going to talk about what's really new in APM Inspector. So there's no need for us to do any of this. We are going to leverage most of what we have seen in the past. In case you have not seen APM Inspector in the past, I hope whatever I'll be talking about today will give you an insight of how to do this and how you can go about using it. So I'm just closing this off because we don't need this setup anymore. In case you are still comfortable with that, you can go about using it. But what we have new in APM Inspector is the APM Inspector itself. What you see launching at my screen is the APM Inspector app. So there are two things that I'm going to talk about the APM Inspector app and the web version of the APM Inspector. And I hope this comes really handy because I understand the first part of automation or inspection of elements. And especially when it comes to mobile applications or something that you want to do on a mobile interface or a mobile device is really very tricky, right? In part of inspection or creation of your automation scripts. So this is the new brand new APM Inspector app version of it that you can install depending on a Mac, Windows, Linux, whatever you might be using. It's more or less the same that it used to be in the past. So if you go about checking it out here, we have stuff like if you want to start it on a remote host, the port you need to give. What's new here is you don't need to give a path which is like slash WT slash hub that used to be in the past. No longer the need of doing something of the sort. Now you just give a slash there and it's all good to go. It can also take care of SSL. It can also take care of advanced settings, which could be our certificates on the applications or any proxy setup. Because most of the time when people are using this kind of a setup, they are basically behind firewalls or VPNs. And when in the work from home setup, you might be having all the all the more restrictions with respect to accessing your setup or your application. Now you can actually have a mobile device or a device of your own which is connected to this local host, or you can go about accessing any of the cloud providers. So we, as you see, there are a lot of integration of different cloud providers that we have, which can actually give you a device to basically help you create the session or launch the session on. For the ease of my use rather than having a local device, I chose head spin, but you can go about choosing really anything for that matter. All the options are available for you on the screen. So when I come to my choice, I come here. And if you see, I have kept some capabilities set here. But what you really need to do is create these capabilities, right? So I'll very quickly glance over that as well. So whenever we start making use of our Appium scripts or creation of it, or even the Appium inspector session, you need to pass on capabilities, which are basically Appium capabilities. Right. Otherwise, how does Appium know what you want to do with respect to this inspection session really? So basically you start your grid, you can give your URL that you want to access. Then you go about giving more details, which are really capabilities. So I have basically selected the device name. It's UDID. Since I'm using an Android phone, so I give the platform name as Android and the automation name as UI Automator 2. Depending on what you want to use, it could be iOS. It could be different versions of automation that you might be wanting to use. You can definitely change that on fly. Again, what is more important when we're doing this for an app is we need to pass the app package and an app activity. So in case you're working in a QAT, even if your developers setup is there, you may ask from them as to what your app package and app activity is. Or maybe you can also go about checking a couple of these details on your own via the application that you're using. So I basically wanted you to know that these are a couple of capabilities that we need to add here. So if I come here, it's the same capabilities that you see. So if I just go about saving it, if I just click here, all of these capabilities come in here and I'm just making a save of it. And I want to start the session. So it's very, very similar to what we were doing in the past, just that now we are doing it on an Appium Inspector app. We started a grid of our own and we gave it the capabilities of the device I need to use. If I need auto accept alerts as true or false, that's something that I gave for myself. I'm using an Android. If you see for my session, I basically have given the native app as the settings app itself on the phone. You can go about doing this for any app for that matter. So you might be using any different kind of applications really to go about testing. It could be just for namesake eBay, Flipkart or I don't know, Samsung, whatever that might be. And I've kept this very generic because I wanted everybody to have a benefit of doubt as to how to go about it. So this is a classic native app of settings on the phone that I'm using currently and what's new with Appium Inspector is this. So if you see on the top, there are different modes of accessing the different kind of applications you want to inspect your element on. This session particular that I want to talk about or go about automating is for the native app mode. Hence I launched application of the setting apps itself. There is also another mode which we'll see in a while. You can go about selecting elements, you can go about swiping on the coordinates or tap by the coordinate. So these are different gestures as to how you want to basically select the elements or create their experts or investigate them basically. My personal feature that I really find very interesting with Appium Inspector is recording the session. And I know most of the people in the testing fraternity ask for a record and playback because it makes life easier. So I just started recording on this session. I'll do a couple of clicks because if I were to automate this as a user flow for myself, I just clicked on a software update is available. And I do a tap because I need to perform an action right for that to happen. I'll maybe do a few more clicks so that we understand what I'm doing and what it sufficiently generates for us. So I'll now maybe cancel it and I'll now maybe also stop the recording. So what I typically did here was I started off my app by setting the capabilities. It launched for me the setting apps. I'm trying to do a couple of things there by hitting on the button or the hyperlinks or whatever pop ups that are coming into picture and I'm interacting with them. So when I stopped my recording, you can see a recorder has generated all these experts for me and I can go about leveraging them or making use of them to automate my scenarios or get these elements basically. You can also go about selecting the language of your choice. So in case you're using any particular language or setup or script or framework. So why not leverage the option right. Another cool feature which I find is the recorder. If you just click on the boilerplate code, it created that entire code right from import web driver launching your capabilities and your web driver URL everything until the things that I've done. So I came to the expert. I clicked it I hovered up more and then I did a driver dot quit. Anybody who is just very novice or starting new with Appium can really go about making use of this right and like why not so I can just do a copy paste and start off with a script creation for myself not just recording the experts but also recording some very generic vanilla flow for myself. So this is what I wanted to talk with respect to how I did a complete end to end thing of setting my application as a capability in the native app on on the app version of Appium inspector to the recording of it to the creation of code to inspecting elements. I'm not yet done here so I'll just close this and I still have something more to show you guys. So now that we don't have any dependency on the Appium server and starting our inspector there, and I did a start on the session for the app itself. We also have something as cool as this. So, even with the app you need to install the application on your setup right so it's as simple as downloading a app. But if at all you're too, too nerd or too geeky and don't want to have any of the hassles around you can just go about launching a web session of it. No prerequisite required again very similar setup it's just a difference of the UI right there you were using it via the app itself for Appium inspector. You're you're using the web version of the Appium inspector by a URL. Again, if you see most of the things remain the same. It's just a UI change. I'm again selecting a headspin for my option you can go about selecting whatever you want what we saw in in that previous recording was for inspecting elements for a native app right in that case I was doing it for the setting apps on my phone. Now I want to do some inspection with respect to a hybrid app. So, I know a lot of this is getting in so common these days right because now I want to check my website on on a mobile device or I want to test my application which has been since interacting or an app which is really hybrid in nature right all of that can be counted in as a hybrid or a web view or a web version testing of my app on a mobile device. So the only difference I did here is if you remember, I'm most of mostly utilizing the same features I'm again trying to do it on the Android, I'm doing auto except alerts through you can add more in case you need that for your application I passed my device and you did the more thing that I've added here is I want my Android to start off a Chrome browser session. Again, I've kept it very basic because I want to show you how this goes really so I'll start on my session. I gave my app packages Android Chrome app activity as Chrome main. I really want to start off a Chrome browser on my phone this time so the only difference you're I've done is now I'm accessing my app inspector via its web version. It started off the session for me on the phone, and it has launched a Chrome session for me. Again, if you see your what's important for us or the only difference here is I need to go in the web hybrid app mode right because until now we used to be complaining I know as a test of myself that how do I automate all of this on Appium inspector right so I'm very glad that the team who did this at Appium inspector and at Appium really has worked hard to get all these features available to us. So I just switched my mode to web or hybrid app mode because I want to do some recording some inspection for the web application cell that I want to automate again I'll start recording for the ease of this. And what should I click on maybe I should just click on Facebook it's like something that most people use maybe not that I use but I'm just clicking it for the generic usage that people might do so I just clicked on it. And what more should I hover on to maybe I should click on the name element itself in case I want to do something amazing the tab field which means there's something wrong in the top and the element is not present anymore classic things right which we basically see going on for us. Again, if I want to just go about going back or switching my language I can do that as well. And now if I basically stop my recording again, I've changed my language to Ruby you can be using again any of the languages that you may want to use. And now we go to our boilerplate code again do a very easy copy paste and generate this code with basically launch a web application for me so from here you can actually go about traversing any application really right so in case you are trying to automate Amazon or IBM or I don't know it could be anything right I'm just trying to give you examples here. But in case you want to just go about traversing to any web application for that matter, you can generate the code for that and go about creating the script for it, or automating the application for it, and that's pretty much about it so mostly what we have done so far is now I just launched the web version of Appium Inspector. I wanted a device for myself to be hosted I passed the capabilities, I wanted to do the inspection or recording or creation of my elements for a web application for myself so I chose that as an option I chose that as a mode like web hybrid app mode, and I started my recording I created my code. Again I just maybe stop the session and release this so I'm done here and I can have my capabilities saved for myself and I can go about doing more things. I know in the past you've seen a lot different things that were happening at Appium Inspector or were not working at Appium Inspector, but I personally think that we've come a very very long way with Appium Inspector itself, which is the precise reason why I chose this as a topic to talk today because I think it runs so much more things right. And this is very much like a prerequisite for all of us testers out there when we start automation or scripting or inspection of elements and I hope this session that I've carried on so far made sense to you. In case there are any questions now I would really like to take that. Thanks Anand for that. Yes Shruti so there are a few questions now do you want to go through it on your own. Sure. All right so I think I can see what's the difference between UI Automator one and UI Automator two. I think it's just a wrapper that they guys added on to and most people these days are using UI Automator two because there's no dependency or there's no really support offered for that it's basically if you're using Android. Most people either use UI Automator or in case you're using something like a espresso or that kind of a setup you may want to go about using that but it's just basically a framework or a wrapper or a setup for myself because android in tandem needs something as a platform name for you to basically start accessing your server or start accessing your Android test so that's pretty much and the difference between the two. I also see another questions where somebody mentioned how to handle interactions not available for this element while inspecting. That was precise reason why these guys created at Appium or Appium inspector the entire new native app mode right because earlier we used to not really get elements with respect to that. We never saw what was happening with the web view so now you basically can overcome these errors by switching on to the web or the hybrid app mode and go about inspecting your elements. So most of the time I think that is what you would like to take on your approach in case your development team keep on changing the x path you can still go on seeing that error because the dorm would have changed. So that's a very classic scenario that a QA tester would come across another thing. Okay, I think it's not a question but really a thank you saying that you're happy and got to know today. So yeah, thank you for that Vishnu. Do you think I missed any of the questions and I tried to cover most of them and I know I'm really dot on time I guess. No we covered the questions and you are spot on time you're not delayed at all. I do have one question though if I may I'm taking the liberty of asking. I've used the recorder and by the way at the web version of the inspector is amazing. I can't wait to try it out myself. And but one thing which I've always found in the recorder while it is a great way to get started. Is there a way to customize what locator strategy should be used for a preference of the locator strategy when recording the elements for the actions because typically the complex experts are shown in the recorder. Whereas that might not be the most optimal one. Correct. So I think it's also what we used to do very historically or primitively so you would have seen three options coming on the top right where I can either go about tapping on the element or I can go about swiping on the coordinates or doing something with respect to the the coordinate so I think those are the classic options that you can go about customizing while you're trying to record the session right so it's not just a tap. But even while I'm trying to record a session on the right hand side I can do a sense dot key so I can put an enter or I can put a backspace or whatever action I want to perform. So I think those are the classic ways we had earlier also but I think we may want to leverage that a little more in case we are not doing very generic actions and make the most of it. Sure. Thanks to the there are no more questions right now and we are indeed out of time now. So again I want to take this opportunity to thank you for speaking with us and sharing the APM inspector with everyone live demos always fun I'm sure it's challenging for the speakers but I'm glad you did that and you pulled it off magnificently.