Wednesday, April 19, 2017
A couple of weeks ago, I attended the Selenium Conference in Austin. This was my first time attending and I had a great week learning more about Appium and its various nuances.
While at the conference, I was fortunate to talk to several Mobile Labs customers and prospects about Appium and how they are leveraging it for automation. My goal was to see how Appium is being used in real-life, and to get some insight into how developers, testers and QA professionals are leveraging Appium and how it has affected overall testing, automation and continuous delivery.
So, you can imagine my surprise when I discovered that although many enterprise mobility teams had the Appium framework installed, that they were not leveraging Appium to its full potential. In fact, some of the people I talked to—beginners and veterans alike— seemed to be lost as to how to even get started with Appium and how it would impact existing test automation and demand.
As I sat in the airport thanks to several flight delays, I had time to ponder this gap in Appium adoption and usage. In the hopes of helping teams that may be stuck, here are five things to consider that may help you out before getting started Appium:
#1: Appium is Open Source
Because Appium is an open-source test automation framework for mobile, there is no official support for the product. Issues are logged in GitHub and are fixed by the Appium developers or contributors. Therefore, issues may not be resolved as quickly as older more mature products. Appium has had frequent releases, with some improving the way objects are found. These releases may require more maintenance to scripts to keep up with the changes. These changes may also introduce bugs that break your script runs. Make sure you plan for this in your testing environment.
#2: Understand Appium Requirements for your App
Apps may require specific provisioning that require you to register a device with your development program. iOS applications must be built for development, which means that the device must be registered to your Apple Developer program and signed with development profiles and certificates. If you are currently testing an app signed with an Enterprise profile and certificate, you will want to make sure your development team knows the new requirements for Appium.
If you plan on using real devices and simulators, you may need different builds of your application. For instance, iOS requires an app that runs on a simulator to be compiled differently than the app that runs on an iPhone or iPad.
#3: Determine Which Programming Language and Testing Framework to Use
Unlike a more traditional testing tool like HPE Unified Functional Testing (UFT) where everything is provided in a nice environment that handles scripting, execution, and reporting, you must handle these things separately with Appium. Appium comes with client libraries for all major programming languages such as JQuery and HTML5. The first choice you will make with Appium is to choose your language and then the IDE that can handle the chosen language. For instance, you might use Eclipse or IntelliJ to handle writing your scripts in Java. Once you have a language, you will need to choose the testing framework to execute. JUnit or TestNG are popular choices for Java. Finally, you must configure reports to show progress. Most testing frameworks will give you the results at the end.
#4: Understand Which Type of Computer Can Run your Real Devices
Appium can be used for iOS and Android, but if you plan on testing iOS apps or mobile web with Safari, you are going to need an Apple computer. The reason is that Appium, at its core, does not want to modify an application for testing purposes. Therefore, the technology used to interact with iOS comes from Apple provided services. These services are required by license to run on an Apple computer. It is important to plan for this if your testing organization only has Windows computers. Android devices can run on any computer as its services are not tied to an operating system.
#5: Realize How the Appium Server Runs
The Appium server implements the JSON wire protocol that is the standard interface for Selenium. When a test is executed, Appium interprets the methods into the native automation calls provided by iOS and Android. There are several additional components involved in this process that must be properly configured for an Appium server to execute the steps of a test. When wanting to execute multiple scripts at the same time, the configurations will change, such as ports and folder paths. It's important to understand these complexities to begin executing your full testing library.
When comparing Appium vs Selenium, Appium is not as straightforward as its desktop counterpart Selenium. Understanding what is involved is vital to making your automation strategy work with Appium. At Mobile Labs, we have taken some of these things into consideration and our device cloud, deviceConnect™ is Appium ready. deviceConnect has a built in Appium server taking away the complexities of managing devices and using them in your Appium framework.
While you’re getting ready to dive into Appium, why not take the time to “jump start” your mobile testing lab? Download our whitepaper and discover the key characteristics of the most successful enterprise testing programs and what you can do to become one.
Don't forget to read 11 Tests For A Bulletproof Mobile App Deployment Strategy and check out our Testing Evaluation Checklist!