Robotium ExtSolo Library is Now Open Source

Dear Testdroiders,

As many of you probably know Robotium was one of the first mobile test automation frameworks that was supported by Testdroid products. In addition, many of you have started with and actually got the first touch in mobile test automation using this framework, we’re honored to announce that Robotium Extension Solo library – also known as Robotium ExtSolo – is now open source and fully available at Github.


Robotium was a pioneering test automation framework in the early days of Android test automation. It provided a bunch of great, neat and handy features to write black-box UI tests for both native and hybrid Android applications. It also made it easy and fast to write test scripts used for Android UI, system and user acceptance testing, spanning across multiple Android activities. Also, it was great as you didn’t need to know much about the app under testing and typically test cases were very robust – at least for native apps.

Back in the days, we also got very excited about Robotium here at Bitbar and made significant improvements in it – in the form of extension library. Unfortunately these changes never ended up in the base Robotium but that didn’t change the popularity of ExtSolo and it got widely spread and in use with myriad of popular Android applications out there. In addition, we also introduced a test script recorder (Testdroid Recorder) that made automatic test script generation possible with user-based interactions. These test scripts could be then instantly executed yet on hundreds of Android devices simultaneously.

Since that the test automation scene has changed quite a lot and various new test automation frameworks have emerged. Some of these frameworks – such as Appium and Calabash – are now widely used and primarily because of those provide cross-platform support for both Android and iOS apps. Furthermore, the use of various programming languages or human-friendly languages are definitely competitive advantages of these frameworks compared to single-platform frameworks.

What is Robotium Extension Library (Robotium ExtSolo)?

Robotium Extension Solo (ExtSolo) is a library extension for Robotium Solo objects. The library contains various handy and near methods to extend the use of Robotium, an Android test automation framework for black-box UI testing. With the support of Robotium ExtSolo test cases can be made feature-rich and enable thorough test automation of native and hybrid Android applications.

Robotium ExtSolo supports Android operating system starting from the version 2.2 (API 8, Froyo).

Robotium ExtSolo extends the feature set of Solo library with user-friendly and sophisticated features, for instance:

  • Automatic scaling of X and Y clicks for any display resolution
  • Multi-path drags
  • Automatic screenshot capture on test failure moment
  • Mock locations (GPS coordinates)
  • Change of Android device language
  • Control of WiFi connection

The full documentation of Robotium ExtSolo library with API description can be found from the project page and some additional, useful information also from Github documentation.

How to Get Started with Robotium ExtSolo

First, use the following line or navigate yourself to Github page and fetch the package for your local environment. The easiest way is to clone the repository for yourself:

$ git clone

Now, jump inside the folder robotium-extensions and you can build the library with the following line:

$ ant clean instrument

OK, then just place the built library and Robotium library (jar files) in the same folder (libs) and you should get your ExtSolo tests working with your project:


Let’s look at Java code and how write your tests with ExtSolo. First, import the built library for your Java project:

import android.test.ActivityInstrumentationTestCase2;
import com.bitbar.testdroid.testapp.TestdroidTestAppActivity;
import com.bitbar.recorder.extensions.ExtSolo;

And here is the example of a test case testMethod():

public class TestdroidTestAppActivityTest4 extends
     ActivityInstrumentationTestCase2<TestdroidTestAppActivity> {

     private ExtSolo solo;
     public TestdroidTestAppActivityTest() {
         super("", TestdroidTestAppActivity.class);
     public void setUp() throws Exception {
         solo = new ExtSolo(getInstrumentation(), getActivity(), 
                            this.getClass().getCanonicalName(), getName());
     public void tearDown() throws Exception {
     public void testMethod() throws Exception {
         // ...

Now, testMethod() could include the test calls as follows:


        solo.enterText(2, "Robotium ExtSolo Rocks!");

That’s just a basic example of Robotium function calls and you’ll find plenty more of those with detailed description here.

We welcome everyone to contribute in to this extension!

Enjoy Robotium ExtSolo!