An increased surge in the use of smart devices has meant that each day, more and more mobile apps are being introduced to the market. They increasingly offer a number of benefits to the user and the flood gates are open, with over 3,700 apps being added to the Google Play Store every day. But the faster the apps are introduced, the more problems the user will encounter, with more challenges than ever before being experienced with the development and testing of applications.

To keep up with the demand, businesses must ensure their apps work correctly without bugs in the highly competitive market. Because of this, manual testing is no longer enough to ensure apps are ready to stand the test of time. Automating the testing will make certain you get more accurate results in a shorter time period. Appium is commonly regarded as one of the most popular mobile automation tools.

What is Appium?

Appium is an Open source, cross-platform test automation tool, specifically for testing mobile device applications. Appium supports the most common operating systems like Android and iOS. It is an open-source tool hosted with GitHub and supports Native, Hybrid and mobile web applications. This means you can test Native apps written using the iOS, Android, Mobile web apps accessed using a mobile browser (Safari on iOS and Chrome on Android) and Hybrid apps which include both approaches.

When choosing your mobile test automation frameworks, Appium is a good choice as it can be used for different app/web types. Appium derives its roots from Selenium, and it uses JSON Wire Protocol internally to interact with iOS and Android apps.

Appium Philosophy

  • You shouldn’t have to recompile your app or modify it in any way in order to automate it.
  • You shouldn’t be locked into a specific language or framework to write and run your tests.
  • A mobile automation framework shouldn’t reinvent the wheel when it comes to automation APIs.
  • A mobile automation framework should be open source, in spirit and practice as well as in name.

^Basis of interactions between Appium and real device/emulator.

What does Appium allow us to do with mobile devices?

Appium behaves with mobile applications as a user and allows the user to interact with the mobile device. Besides performing automation actions (for example, click, input text, drag & drop, get content from screen, etc.) Appium allow us to interact with hardware features (turn on/off, location, change date and other device settings) to show you how an application behaves depending on different device configuration.

In practice, a lot of mobile application has a hard dependency on the location, camera, and other permissions. If you have different behaviours for different testing situations, with different scenarios for different apps – Appium allows us to change this accordingly.

There are no hard limitations to Appium, however it is known to not to support lower versions of Android and iOS, so the testing of android devices that are lower than 4.2 is not allowed – so it is important to bear that in mind.

Even though Appium can be up and running both on Windows and Mac, when it comes to running automation tests on iOS, a Mac is mandatory. To automate just android apps, you can use the windows machine, but for iOS, in any case, you need a Mac machine and Xcode tools.

Benefits of Appium

Below are some examples highlighting the benefits of Appium:

From a client perspective – if a client has a mobile application, this mobile app should be tested. Manual testing takes a lot of time in the long term, so automation testing will save time and money.

For clients where cost saving is a key requirement, using Appium is a great choice as it is a cross-platform tool, which means you only need to do 1 test for both applications. In the mobile world, there are modern tools like Flutter – Appium allows us to automate Flutter application to reduce the time needed to transform an idea into a working prototype, again using cross-platform frameworks to build apps swiftly for both iOS and Android.

If the client is interested in new technologies and be on top of modern tech, Appium can almost certainly deal with these requests.

Does Appium stand the test of time?

Overall, the key to a successful business is choosing the right mobile automation test tool. A poorly tested system has the potential to cost a business greatly, even if it was cheaply built. Appium provides significant cost and time-saving benefits for the user using standard APIs on all platforms, meaning there is no need to modify the app in any way and if compatible with widely used programming languages. Appium can deal with requests from the whole organisation and keep up with the growing technology demands.

Illustrations created by Siarhei Palianski, Sr. User Experience Designer at Godel