Appium is an open-source tool that was developed to automate mobile app testing. Appium Testing is the process of testing native, hybrid and web applications using the Appium tool. This tool enables test automation on various platforms such as Appium Android, Appium iOS and now is also available Appium Windows. With Appium, you can easily create and run tests, saving you a lot of time and effort.

Functions of Appium

  • Appium does not require application source code or a library
  • Appium provides a strong and active community
  • Appium has multi-platform support, that means, that it can run the same test cases on multiple platforms
  • Appium allows parallel execution of test scripts
  • In Appium, a small change does not require reinstalling the app
  • The Appium Client is a library or module that provides a programming interface for interacting with the Appium server. These clients allow programmers to create and manage tests in a variety of programming languages such as C#, Python, Java, Ruby, PHP, JavaScript with node.js and many others that have the Selenium client library

Advantages of Appium

  • Appium is an open source tool, which means it is available for free Easy to install
  • Enables automated testing of hybrid, native and web applications
  • Unlike other testing tools, you don’t need to include any additional agents to make Appium compatible with automation. It’s testing the same app it’s about to upload to the App Store.
  • An additional feature has been added to Appium. It will now support testing of Windows desktop apps along with testing of mobile apps
  • Appium is a multiplatform, free mobile testing tool that allows us to do cross-platform mobile testing. This means you can test on multiple platforms (one API for both Android and IOS platforms)
  • Seamless integration:Appium integrates seamlessly with popular development tools such as Appium Jenkins, allowing for easy setup and continuous integration in the development workflow.

Disadvantages of Appium

In addition to some features and benefits, Appium also has some disadvantages, which are –

  • Lack of detailed reports
  • Since the tests depend on a remote web driver, they are a bit slow
  • In iOS, only one instance (iOS Script) can be run on a single Mac OS device, which means that only one test can be run at a time. If you want to run tests on multiple iOS devices at the same time, you need to make sure you have the same number of Macs. However, owning different Macs would be costly.

Appium and Selenium – characteristics

Appium is very similar to the Selenium Webdriver testing tool. So if you already familiar with Selenium Webdriver, Appium is very easy to learn. Appium has NO dependency on the operating system of the mobile device because it has a framework that converts Selenium Webdriver commands to UIAutomator and UIAutomation commands for Android, or iOS, which depends on the type of device rather than the type of operating system.

It supports several languages such as Java, PHP, Objective C, C#, Python, JavaScript with node.js and Ruby, and many others that have Selenium client libraries. Selenium is an Appium backend that provides control over Selenium features for testing purposes.

Appium download and install You actually do not need to download the Appium, just go to the official site and there you will find all the installation instructions. Appium is compatible with a variety of operating systems, including Windows 10 and macOS. So, if you’re using one of these operating systems, you can simply install it and start testing your apps.

Appium tutorial

Below you will find some useful links to Appium tutorials:

How Appium works?

  1. When you install Appium, the server that provides the REST API is installed on your machine along with it. (The Appium API is a set of interfaces and functions that allow programmers to create and configure tests, control devices, and evaluate test results)
  2. It receives commands and connection requests from the client and executes these commands on devices such as iOS or Android.
  3. Responds with HTTP responses.
  4. It uses a mobile test automation framework to execute the queries, which launches the app’s user interface.

Appium mobile testing – Android

In Android, Appium mediates the command to the UIAutomator script that is running on the device. UIAutomator is a native Android UI automation framework that allows you to run Junit test cases directly on the device using the command line. Although it uses the Java programming language, Appium allows you to run it from any language supported by WebDriver.

Android uses a bootstrap.jar file that acts as a TCP server. It is used to send test commands to perform actions on an Android device using UIAutomator.

Appium architecture for system automation.
Appium architecture for system automation.

Appium mobile testing – iOS

Just as Android uses UIAutomator, iOS uses UIAutomation. Similar to Android, Appium mediates the command to a UIAutomation test case that runs in a Mac environment. Apple provides this application “tool” that performs various activities such as building, profiling, and controlling iOS applications.

On the other hand, it also has an automation component where you can write commands in JavaScript. It uses the UIAutomation API to interact with the application’s user interface. Appium uses the same libraries to automate iOS apps.

Appium architecture for iOS automation
Appium architecture for iOS automation

Appium has revolutionized the way mobile apps are tested. Its robust features, cross-platform support and broad language compatibility have made it the preferred choice for mobile app developers.

Whether you’re an expeienced developer or new to the world of testing, Appium provides a comprehensive solution for automating mobile app testing processes. Use the power of Appium and improve the quality and reliability of your mobile apps.

There are also other alternatives to Appium that can be used. In the following sections we will mention some of the best.

Appium vs Espresso vs XCUItest

Appium vs Espresso vs XCUItest is a battle of three mobile app testing tools. Appium is a general-purpose tool, while Espresso focuses on Android apps and XCUItest on iOS apps.

  1. Appium
  • It is an open-source automation framework that supports mobile app testing on both Android and iOS platforms
  • It provides a lot of flexibility as it allows you to write tests in different programming languages like Java, Python, Ruby, etc.
  • Supports multiple test frameworks such as JUnit and TestNG
  1. Espresso
  • It is a testing framework developed by Google for testing Android applications
  • Provides fast and reliable testing, focusing on UI and application interaction testing
  • Its strength is the ability to write tests in Java
  1. XCUItest
  • It is a testing framework developed by Apple for testing iOS applications
  • Offers robust testing capabilities, focusing on user interface (UI) and application interaction testing
  • It can be integrated directly into the Xcode development environment and supports Swift language for writing tests

Appium vs Robotium

  • Focuses on user interface (UI) testing and interaction with the application
  • Provides a simple and intuitive API for writing tests, focused on speed and efficiency
  • Appium is a cross-platform tool that supports both iOS and Android. While Robotium only supports Android
  • Appium supports a variety of languages, while Robotium only supports the Java programming language.
  • Appium does not require application source code/library, while Robotium requires application source code or library
  • Appium can be used to test native, web and hybrid mobile apps, while Robotium can only test native and hybrid apps
  • Appium supports many frameworks, such as Selenium. However, Robotium is not at all compatible with Selenium
  • In Appium, you don’t have to reinstall the app because of a small change. But Robotium leads to a complete rebuild even if it was for a small change

The main difference between Appium and Robotium is platform support. Appium supports testing on multiple platforms including both Android and iOS, while Robotium is limited to testing only on the Android platform. If your testing requirements include testing on both platforms, Appium may be a better choice.

AppiuM vs Selendroid

  • Selendroid is an open-source automation framework for testing Android applications
  • Supports writing tests in a variety of languages including Java, C# and others
  • It has a less wide community and less active development compared to Appium
  • Appium is an open-source automation tool that supports both iOS and Android, while Selendroid is a test automation framework that only supports Android
  • In Appium, a small change doesn’t require reinstalling the app. Selendroid, however, requires reinstalling the app
  • Appium has a strong and active community, while Selendroid does not have as strong a community as Appium
  • Appium supports many frameworks and languages. On the other hand, Selendroid is compatible with Jenkins and Selenium
  • Appium does not require the application source code/library, while Selendroid requires the application source code or library
  • Appium supports all Android APIs with limitations. Appium uses UIAutomator for tests running on the API>=17, while for legacy APIs it runs tests using Selendroid

The main difference between Appium and Selendroid is their platform support. Appium is flexible and supports testing on both Android and iOS platforms, while Selendroid is specifically focused on testing only on the Android platform.

If you need to test apps on Android, both tools can give you the automation you need. However, Appium has greater popularity and an extended community, which can be an advantage when looking for support and resource availability. Selendroid may be suitable for specific testing requirements on the Android platform if you prefer its specific functionality and ease of use.

Appium vs BrowserStack

  • In the last article we discussed BrowserStack in detail
  • BrowserStack is a cloud-based platform for testing web and mobile applications
  • It is designed for testing with different combinations of browsers, operating systems and devices
  • Provides an environment for testing applications across multiple real-world browsers and devices remotely
  • Provides high scalability and enables parallel testing

The main difference between Appium and BrowserStack is their primary focus. Appium is used to test mobile apps on specific platforms, while BrowserStack focuses on testing both web and mobile apps across browsers and devices.

If your testing requirements include testing on a variety of browsers and devices, BrowserStack may be a better choice because it provides a wide range of browser and device combinations in a cloud environment. Appium, on the other hand, is useful if you focus solely on testing mobile apps on Android and iOS.

Appium vs Selenium is a comparison of two popular test automation tools. While Appium specializes in mobile apps, Selenium is for web apps. Both tools have their advantages and the choice depends on your specific needs.

Appium vs Cypress presents another comparison of two testing tools. Appium focuses on mobile app testing, while Cypress is suitable for web app testing. Each of these tools has its own specific features and requires different experience and knowledge.

About the author

Michaela Kojnoková

Agile Test Engineer

Po štúdiu informatiky na ŽU a TUKE som sa najviac ponorila do oblasti automatizácie testovania. Okrem toho sa venujem tvorbe webov, databázam, dátovej analytike, umelej inteligencii a strojovému učeniu. Mám rada cestovanie, šport a najviac si užívam čas strávený v prírode s mojimi blízkymi. LinkedIn

Let us know about you