Lately we've submitted a major pull request to Appium, adding capabilities for both iOS and Android, based on about a year's work of research. During this time, we've learned a lot about Appium's structure, drivers, architecture and the integration with the underlying automation environments. In this talk, I will dive into the Appium code, specifically the BaseDriver and its derivatives, ios-driver and android-uiautomator2-driver, and demonstrate how to add new, multi-platform capabilities. We will start with an overview of Appium's structure, and continue with a deep inspection of the various plugin points which allow adding features to the different platforms.
Today, Appium is the defacto standard for automating mobile apps, but it hasn’t always been that way. Not long ago, many questioned the purpose, philosophy, and even the usefulness of Appium. Those who actually used it suffered with frequently breaking builds and many missing and broken features.
Dan, along with special guest Jason Huggins, will tell the story of how Appium came to be and how it rose to popularity and eventually overcame its initial problems. They will share some never before told stories and recount some lessons learned along the way. Lastly, they will spend some time sharing ideas for future testing tools and sharing their wildest fantasies/prophecies as to the future of testing, which they hope you will find at least entertaining
Appium has been around in one form or another for about 6 years, and on the world stage for at least 5. In the last 5 years, we've come a long way, from one driver to almost ten, from a handful of users to thousands, and from the support of one company to broad adoption and support across the whole automated testing industry. And of course, we're now at our inaugural community conference!
To close off AppiumConf, I want to imagine what the world of Appium might look like 5 years from now, by extrapolating from the current set of automation needs and the technologies that are arising to meet those needs. If we can spread the Appium's ambitious vision and get involved with it together, I think the next 5 years will be more exciting than the last. In the spirit of that hopeful future, I'll be bringing something special to my talk with an ending that you won't want to miss!
This talk will showcase how to leverage containers to solve the infrastructure challenges, scalability, emulators and device coverage. Structure of the Session:
When I started my career as a software tester, I had only one goal in mind – become the best I could be. Testing was (and still is) my passion. But I quickly became disillusioned by the way testers were treated. So at 23, I quit my job as a QA tester, won the world's largest hackathon AngelHack, and used the prize money to found Testlio. I wanted to build a platform that would appreciate the work of testers and elevate the importance of QA within organizations. During this session, I share my experience and the challenges I’ve faced as a tester first and entrepreneur second, and how I’ve overcome them.
There's a shift towards open-source mobile test automation tools happening today among developers and QAs. Whether it be Appium, Calabash or anything else: all are good, with some major limitations.
While a chosen tool may work well when you first start using it, things can quickly get out of hand with changing business requirements. We started using Calabash at Badoo when there was no Appium. Given the capability of Appium to drive the whole device, we started automation of new apps with Appium. However, we realized a powerful feature was missing in Appium for Android! : The ability to call Application code from automation code like Calabash Backdoors.
As Appium UiAutomator server is based on instrumentation, we modified it such that we could instrument our app under test. This gave us the power to access context of Application under test and invoke public methods of Activity using reflection APIs. We use these methods to setup app state, seed DB OR even enable/disable some client-side A/B tests. This makes our application more testable and our tests more predictable.
This talk is going to be about how I achieved the above solution and benefits of backdoors.
Having a hard time convincing superiors and colleagues to switch to Appium? No need to fear, we are here to help! You're probably wondering what's in store and why Appium is important in the workplace. In this talk, Charlene and Charlotte will explore the many benefits of Appium, including the ease of importing into other frameworks, the limitations of Appium and how to overcome them, and finally, pitting Appium with other automation frameworks to discuss their differences. So take a seat and enjoy the ride, you'll be in for a treat!
Once an application is implemented, cross-browser layout testing becomes a tedious task. It becomes very annoying to look at a website on different browsers & perform manual testing on all browsers & OS versions, as a result, we get some layout issues in the website & find it hacks to fix defects. But what if the team wants early feedback on layout issues?
To solve this problem, automating layout becomes the primary solution. Galen Framework gives layout & functional testing framework that has its own language for describing the layout. It follows the approach of declaring set of elements on the page & rules describing where its placement should be. It makes tests very easy & flexible to run on different browsers versions.
This session will cover all the fundamentals of how to automate Layout Testing. Following key points can be taken from this talk:
While Unity is becoming more and more popular, testing games and apps built with it on real devices becomes more and more of a need for testers. In this talk, I'll present some of the ways in which I have used Appium as well as some in-house built tools to automate some of these tests and run them on real devices as part of our CI pipeline.
I'll talk about what worked and what hasn't, about using image recognition (and about not using it when performance and speed were important) and about the obstacles I encountered trying to figure out a way to identify Unity objects with Appium.
This presentation will focus on how we overcome the challenges of automating native components in real devices. Talk will show the different solutions found throughout time and how they evolved in the face of new requirements.
Will focus on changing status of WiFi, mobile data and location services in iPhone and Android devices, management of contacts on Android devices and extraction of app and system logs for both platforms.
For each solution will show on how it had to evolve to detach from any string present due to the requirement to support automation in any language. For iOS will show how we accessed some functions from bottom control panel, then had to go through top notification panel and finally are using run app in background to access native settings.
For Android will show some of the Adb commands, intents and tricks that are used to accomplish the interactions required.
Opening an issue on Appium's GitHub repository will usually lead to a prompt to provide the full server logs without explanation as to their relevance. But what are the maintainers looking for in the logs, beyond that which is in the general description?
This talk will unravel the mystery of the server logs, demonstrating what requests are made to the server with what arguments, how to identify a command and what is being done on the server when the command is being run, as well as to clarify the main relevant features of the server infrastructure. Finally, I will present diagnostic information that will allow users to address errors that may arise.
Ultimately this talk will make Appium logs more accessible to the audience, enabling them to make better sense of test runs, and to create more powerful and useful tests in the process!
Basic functionalities of a peer 2 peer communication application are text, voice messaging, VoIP and video calls. In order to test its functionalities, we need more than two devices to communicate with each other. There are also network interruptions / changes or app notification installed on mobile device which can harm the quality of communication and application.
In order to automate regression test of those kind of application, we have extended Appium and Selenium Grid where we are able to cross communicate “n” number devices with each other. We also created a layer manipulating the mobile devices' Bluetooth, wireless and other features.
Right now, we are able to automate P2P appliications test with more than 100 devices varying from iOS to Android.
Currently there are a lot of testautomation frameworks that can help you automate your native app, but how do you pick the right one? In this talk I want to show you my journey for selecting the best tool for testing our new React Native app for iOS and Android. Together we will take a look at the selected teststrategy and walk down the bumpy road I needed to take to get the automation on the quality level it is now.