How to Automate the Zoom Video Meetings App
Last week I tried something new:. In this live current event, I downloaded the Zoom app for Android and tried to build a simple testsuite for it in about an hr. I guess this type of real-world “ case study ” is really interesting. My prospect is that discussing automation of real apps “ in the wild ” would likewise be useful for Appium Pro readers, so periodically, I will guide the results of these exploration and turn them into Appium Pro articles! (NB: In the live current, I opt to work in Python, but for this article I convert all the code examples to Java.) Zoom is improbably democratic. It seem like everyone is utilise it for their video meeting these days. How can we found it in an mechanization setting with Appium? First, we involve to decide whether to have Appium install the Zoom app for us, or to have the app on the earphone and only launch it when our session get. I already had the Zoom app on my device, so I chose the latter route, but you could also find a downloadable Zoom APK, put it somewhere on your system, and reference it as the app capability. Since I had the app already, I needed to cognize its bundle id and launching activity to get Appium to start it for me. Using the helpful ADB dictation adb dumpsys window windows, I regulate Zoom ’ s information, and entered that into my set of capableness: caps.setCapability (& quot; platformName & quot;, & quot; Android & quot;); caps.setCapability (& quot; deviceName & quot;, & quot; Android & quot;); caps.setCapability (& quot; appPackage & quot;, & quot; us.zoom.videomeetings & quot;); caps.setCapability (& quot; appActivity & quot;, & quot; com.zipow.videobox.LauncherActivity & quot;); caps.setCapability (& quot; automationName & quot;, & quot; UiAutomator2 & quot;); For autonomous testing across multiple user personas, check out SUSATest — it explores your app like 10 different real users. (The important bits above are the appPackage and appActivity capabilities). Using these caps, we can launch zoom in an automation setting! The goal is to do something useful with automation, so let ’ s see how it ’ s possible to join a Zoom encounter from a device contain by Appium. Before we commence, we ’ ll apparently require a Zoom meeting to join! I started one on my reckoner, so that I could shape its meeting ID and password. These are the two pieces of information you ’ ll need that are unique to your case, and to work with my code instance, you ’ ll need to set them as environment variables, so that they can be say from our test class: individual stable final String MEETING_ID = System.getenv (& quot; ZOOM_MEETING_ID & quot;); (I.e., you need to set the ZOOM_MEETING_ID and ZOOM_MEETING_PW environment vars to run the examples successfully, based on a meeting that you own or know about–and, please, no zoom-bombing!) It turns out that Zoom is a highly automatable app! Its developers include resourcefulness IDs for all the useful elements. There were no content description (accessibility IDs) that I could find, however, which makes me think the app may not be super accessible (or, it relies on the default accessibility strategy based on schoolbook labels). To envision out how to find all the element I involve to interact with, I useAppium Desktopto inspect the app (after filling out all the appropriate detonator, and depart a session with the examiner). It turn out that the Zoom elements follow a reasonably standard naming scheme. Here ’ s the part of our test class where we define the locators, for example: private By JOIN_MEETING_BUTTON = By.id (& quot; btnJoinConf & quot;); You can see that, apart from PASSWORD_OK_BUTTON (which is concern to a system alert element), every UI constituent has a camelCase ID with an abbreviation of the element character at forepart. Pretty respectable, Zoom! Using these locater, we can real foursquare walk through the join meeting flowing, as the picture below display: The test code that implements this is as postdate (using the locators defined above): @Test Here we are using a special waitFor helper which just reduces verbosity in the code: private WebElement waitFor (By locater) { (You might have observed that sometimes we use waitFor and sometimes we just use driver.findElement. Why is that? It wouldn ’ t suffering to use waitFor everyplace, but in some lawsuit we know that an constituent will already be present, because we ’ ve already await for another element on the same view. If that first element isnotactually present immediately, so there ’ s no reason to expect yet many second for it to turn present. The test is doom and we might as good fail rapidly!) So that ’ s it! You can as constantly check out thefull code exampleas good. And if you ’ re concerned in checking out some of the Automation Happy Hour alive streams (or the video transcription of them), don ’ t forget topostdate me on Twitter, where I denote these things as well as run pate on what apps I should automate in future episodes. Oh, and don ’ t forget to let me cognise if you come up with any interesting (and non-nefarious) use cases for automating Zoom specifically! A3. Lead, Content Marketing, HeadSpin Inc. Piali is a dynamic and results-driven Content Marketing Specialist with 8+ years of experience in crafting engage narratives and marketing collateral across divers industries. She excels in collaborating with cross-functional team to develop innovative content strategies and deliver compelling, veritable, and impactful content that resonates with target audiences and enhances marque authenticity. Upload your APK or URL. SUSA explores like 10 real users — finds bugs, accessibility violations, and security issues. No scripts needed. Upload your APK or URL. SUSA explores like 10 real users — finds bugs, accessibility violations, and security issues. No scripts..png)



How to Automate the Zoom Video Meetings App
AI-Powered Key Takeaways
Starting a session with Zoom
Joining a encounter
private static terminal String MEETING_PW = System.getenv (& quot; ZOOM_MEETING_PW & quot;);
individual By MEETING_ID_FIELD = By.id (& quot; edtConfNumber & quot;);
private By ACTUALLY_JOIN_MEETING_BUTTON = By.id (& quot; btnJoin & quot;);
private By PASSWORD_FIELD = By.id (& quot; edtPassword & quot;);
private By PASSWORD_OK_BUTTON = By.id (& quot; button1 & quot;);
individual By LEAVE_BTN = By.id (& quot; btnLeave & quot;);
public nihility testJoinMeeting () {
// navigate through the UI to join a meeting with correct meeting id and password
waitFor (JOIN_MEETING_BUTTON) .click ();
waitFor (MEETING_ID_FIELD) .sendKeys (MEETING_ID);
driver.findElement (ACTUALLY_JOIN_MEETING_BUTTON) .click ();
waitFor (PASSWORD_FIELD) .sendKeys (MEETING_PW);
driver.findElement (PASSWORD_OK_BUTTON) .click ();
// prove that we made it into the meeting by chance the & # x27; leave & # x27; push
waitFor (LEAVE_BTN);
}
return wait.until (ExpectedConditions.presenceOfElementLocated (locator));
}FAQs
Q1. What are the benefits of automation?
Q2. What are the four type of exam automation?
Q3. What are examples of mechanization?
Piali Mazumdar
How to Automate the Zoom Video Meetings App
4 Parts
-1280X720-Final-2.jpg)
Regression Intelligence practical guide for advanced users (Part 3)
-1280X720-Final-2.jpg)
Regression Intelligence practical guide for advanced user (Part 4)
Discover how HeadSpin can endow your business with superior testing capabilities







Discover how HeadSpin can empower your business with superior testing capabilities
Discover how HeadSpin can empower your business with superior testing potentiality
Connet Now


Automate This With SUSA
Test Your App Autonomously







.png)












