In fact, they’re so popular that Selendroid is currently bundled into the Appium package in order to provide support for Android versions 2.3 through 4.1. Appium automatically switches to Selendroid when users want to run tests for these Android versions.
Understanding the differences between Appium and Selendroid is therefore important, because even when you are using Appium, you may actually be running Selendroid under the hood. Below, I take a closer look at both of these testing tools, and compare their features.
When to use Selendroid
Selendroid is a good option if you’re thinking of developing only Android apps. Its main selling point is its backward compatibility; it supports Android API 10 (Android 2.3.3) through API 19 (Android 4.4).
Also notable is that Selendroid contains an Inspector tool which can inspect UI elements of the app being tested. Although you can find UI elements in Appium as well, the advantage that Selendroid has over Appium is that Selendroid can find UI elements for older Android versions, too.
There are a few other features Selendroid has in its arsenal. During tests, devices can be plugged or unplugged without interrupting the test being run, also called “hot plugging.” This in turn is helped by Selendroid’s ability to interact with multiple Android devices at the same time, which includes emulators and hardware devices, saving you a lot of time in the process.
When to use Appium
A lot of the distinct advantages that Appium has over Selendroid make it a stronger choice. Unlike Selendroid, Appium supports the testing of iOS apps along with Android. It also offers an easier experience over Selendroid by not having to use an SDK, and removes the need to recompile applications to test them. This also means that the app you test is the one you ship without having to modify anything just for the purpose of testing. Appium has its own UI inspector, but the Android Studio tool, uiautomatorviewer, can be used as well.
Although Appium cannot be used to test apps for Android APIs lower than 17, it does come with a Selendroid mode to help with that. Selendroid came bundled with Appium v1.2 onwards, and under Appium’s Selendroid mode, it can help test apps on older Android versions, but with a few limitations—such as lacking the ability to locate UI elements like Selendroid, or the ability to use the same script in either modes without modification. These limitations can be overcome by using Selendroid as a standalone tool, separate from Appium.
As of publishing this post, Appium is at v1.5.3, which means it’s being developed at a much faster pace than Selendroid, which is at v0.17. The user community for Appium is also larger, giving it a lot more support in the form of user blog posts, documentation, and many Github repositories with plenty of activity. This is a critical factor for enterprises with globally distributed teams that require help while using the tools.
Appium has the workings of a great enterprise-ready tool. Its mature code base makes it a stable tool that can be counted on during testing sessions. The last thing you need is a testing tool that breaks while you’re testing your own app for bugs. Appium lets you deliver high-quality mobile apps by testing them at a steady pace.
In most cases, Appium is the right choice out of the two. It has a lot more versatility, wide- ranging support and comes with a Selendroid mode. Although Selendroid does a few things better than Appium and has a few similar features, Appium is comparatively a lot more versatile and has a larger community, making it a stronger choice for testing mobile apps. Plus, as noted above, Appium bundles Selendroid, and falls back to it automatically when necessary. This means Appium is really the only tool you have to install. While it’s helpful to understand the differences between Appium and Selendroid, there’s no reason in most cases to install and run Selendroid as a standalone tool. Bio Twain
Twain Taylor began his career at Google, where, among other things, he was involved in technical support for the AdWords team. His work involved reviewing stack traces, and resolving issues affecting both customers and the Support team, and handling escalations. Later, he built branded social media applications, and automation scripts to help startups better manage their marketing operations. Today, as a technology journalist he helps IT magazines, and startups change the way teams build and ship applications.