Software Development Magazine - Project Management, Programming, Software Testing |
Scrum Expert - Articles, tools, videos, news and other resources on Agile, Scrum and Kanban |
Robotium - Open Source Testing Android User Interface
Renas Reda
Robotium is an open source test framework created to make it easy to write powerful and robust automatic UI test cases for mobile Android applications. With the support of Robotium, test case developers can write function, system and acceptance test scenarios, spanning multiple Android activities. Robotium tests can be run on both an emulator and a mobile device.
Web Site: https://github.com/RobotiumTech/robotium
Version tested: 3.2.1
System requirements: Android SDK
License & Pricing: Free, Apache 2
Support: Issue tracker at https://github.com/RobotiumTech/robotium/issues
Benefits of Robotium
- Easy to write
- Shorter code
- Automatic timing and delays
- Automatically follows current Activity
- Automatically finds Views
- Automatically makes own decisions, e.g. when to scrolls
- Test execution is fast
Installation
Robotium is downloaded as a single JAR file, which can be placed in any folder. To actually start using Robotium, the JAR must only be put in the classpath of the test project.
Robotium can be used with all the different build automation tools. Perform the below steps to use Robotium with Maven:
1. Set up your project(s) as usual for Maven, see maven-android-plugin.
2. Add a dependency to Robotium in your test project:
<dependencies>
<dependency>
<groupId>com.jayway.android.robotium</groupId>
<artifactId>robotium-solo</artifactId>
<version>3.2.1</version>
</dependency>
...
<</dependencies>
NB: For the version number, enter the version number of the latest release!
Usage
Robotium can be used both for testing applications where the source code is available and applications where only the apk is available (implementation details not known). For more information, instructions, and step by step tutorials see the Robotium website.
To use Robotium, create an Android tests project and add a test class. Usually the ActivitityInstrumentationTestCase2 test class is used to write Robotium test cases. However, Robotium is compatible with all the Android test classes. When writing Robotium test cases only one class is used: Solo.
The below example illustrates how a Robotium test case might look like when used in conjunction with ActivityInstrumentationTestcase2:
public class EditorTest extends ActivityInstrumentationTestCase2<EditorActivity> {
private Solo solo;
public EditorTest() {
super("com.test.editor", EditorActivity.class);
}
public void setUp() throws Exception {
solo = new Solo(getInstrumentation(), getActivity());
}
public void testPreferenceIsSaved() throws Exception {
solo.clickOnText("More");
solo.clickOnText("Preferences");
solo.clickOnText("Edit File Extensions");
Assert
.assertTrue(solo.searchText("rtf"));solo.clickOnText("txt");
solo.clearEditText(2);
solo.enterText(2, "robotium");
solo.clickOnButton("Save");
solo.goBack();
solo.clickOnText("Edit File Extensions");
Assert.assertTrue(solo.searchText("application/robotium"));
}
public void tearDown() throws Exception {
solo.finishOpenedActivities();
}
}
Some Robotium commands
- getCurrentActivity()
- clickOnButton(String regex)
- clickInList(int line)
- enterText(int index, String text)
- searchText(String regex)
- waitForText(), waitForActivity(), waitForView()
- clickOnMenuItem(String text)
- goBack(), goBackToActivity(String name)
More information
More information on how to use the open source Robotium Android testing tool can be found on GitHub.
Gettings started: https://github.com/RobotiumTech/robotium/wiki/Getting-Started
More Software Testing Resources
Click here to view the complete list of tools reviews
This article was originally published in the Summer 2012 issue of Methods & Tools
Methods & Tools Testmatick.com Software Testing Magazine The Scrum Expert |