Автоматизации на Robotium
Что нам для этого понадобится.
1. Установка Java
Как проверить установлена ли нужная версия java? Открываем консоль и пишемjava -version
Должны получить что-то вроде
1 | java version "1.6.0_29" |
2 | Java(TM) SE Runtime Environment (build 1.6.0_29-b11) |
3 | Java HotSpot(TM) Client VM (build 20.4-b02, mixed mode, sharing) |
1 | "java" не является внутренней или внешней |
2 | командой, исполняемой программой или пакетным файлом. |
2. Установка Eclipse IDE
Скачиваем с официального сайта.Запускаем Eclipse3.Установка Android SDK
Заходим на официальный портал для разработчиков Android. Скачиваем Android SDK и устанавливаем в удобную директорию.4. Установка нужных платформ
Открываем ADB Manager и устанавливаем нужные платформы.5. Устанавливаем плагин для Eclipse
Для этого, на главном меню Eclipse, выбираем Help -> Install new softwareНажимаем Add и добавляем путь к репозиторию для установки
https://dl-ssl.google.com/android/eclipse/
5. Подготовка тестируемого приложения
За основу возьмем семпловое приложение из директории семплов Android SDK. Например Notepad.Для начала создадим проект в Eclipse. File -> New -> Android Project
Указываем имя и выбираем Create project from existing sample
Получаем созданный проект. Давайте запустим сборку приложения и проверим его функционал.
1 | [2012-01-15 11:30:11 - Notepad] ------------------------------ |
2 | [2012-01-15 11:30:11 - Notepad] Android Launch! |
3 | [2012-01-15 11:30:11 - Notepad] adb is running normally. |
4 | [2012-01-15 11:30:11 - Notepad] Performing com.example.android.notepad.NotesList activity launch |
5 | [2012-01-15 11:30:11 - Notepad] Automatic Target Mode: launching new emulator with compatible AVD 'Default' |
6 | [2012-01-15 11:30:11 - Notepad] Launching a new emulator with Virtual Device 'Default' |
Это может занять от 1 минуты и иногда до 10ти. Эмулятор самое узкое место в написании программ под Android. В дальнейшем мы поговорим, какие есть альтернативы.
После запуска получаем наше приложение и можем ознакомиться с его функциональными возможностями.
6. Создаем тестовый проект
Создаем тестовый проект, используя проект существующего приложения. Для этого нажимаем правой клавишей мыши на проекте и выбираем Android Tools -> New Test Project7. Подключаем библиотеку Robotium
Загружаем Robotium jar файл в удобную директорию. Последняя версия, на момент написания статьи, robotium-solo-3.1.jar.Подключаем библиотеку к тестовому проекту. Правый клик мышкой на тестовом проекте -> Build Path -> Configure Build Path -> Add External JARs...
Все готово для начала автоматизации!
8. Пишем тесты
Создаем первый тестовый класс в пакете com.example.android.notepad.test. С вот таким содержимымpackage com.example.android.notepad.test; import android.test.ActivityInstrumentationTestCase2; import com.example.android.notepad.NotesList; import com.example.android.notepad.R; import com.jayway.android.robotium.solo.Solo; public class AddNoteTest extends ActivityInstrumentationTestCase2{ private static final String APP_PACKAGE_NAME = "com.example.android.notepad"; protected Solo solo; @SuppressWarnings("deprecation") public AddNoteTest() { super(APP_PACKAGE_NAME, NotesList.class); } public void setUp() throws Exception { solo = new Solo(getInstrumentation(), getActivity()); } public void testAddNote() throws Exception { solo.clickOnActionBarItem(R.id.menu_add); //Assert that NoteEditor activity is opened solo.assertCurrentActivity("Expected NoteEditor activity", "NoteEditor"); //In text field 0, add TestNote String note = "TestNote"; solo.enterText(0, note); solo.goBack(); //Assert that TestNote is found assertTrue("Note 1 is not found", solo.searchText(note)); } @Override public void tearDown() throws Exception { //Robotium will finish all the activities that have been opened solo.finishOpenedActivities(); } }Самый простой тест на добавление новой заметки. Запускаем тест и проверяем результаты.
Много времени уходит на запуск эмулятора. Вы можете попробовать запускать тесты на своем Android телефоне, а так же создавать тесты без привязки к проекту приложения.
За все это мы аплодируем и говорим спасибо Андрею Дзыня.
Комментариев нет:
Отправить комментарий