Мобильное тестирование - Robotium Framework

Robotium - это тестовая среда с открытым исходным кодом для написания автоматических сценариев тестирования серого ящика для приложений Android. При поддержке Robotium разработчики тестовых примеров могут писать сценарии функционального, системного и приемочного тестирования, охватывающие несколько операций Android.

Robotium можно использовать как для тестирования приложений, где доступен исходный код, так и приложений, где доступен только файл APK.

Преимущества Robotium

  • Легко писать, код короче. Минимальное время, необходимое для написания надежных тестовых примеров.

  • Вы можете разрабатывать мощные тестовые примеры с минимальными знаниями тестируемого приложения.

  • Платформа автоматически обрабатывает несколько действий Android. Читаемость тестовых примеров значительно улучшена по сравнению со стандартными инструментальными тестами.

  • Автоматический выбор времени и задержек.

  • Автоматически следует за текущим действием.

  • Автоматически находит просмотры.

  • Автоматически принимает собственные решения (например, когда прокручивать и т. Д.)

  • Никаких модификаций платформы Android.

  • Выполнение теста быстрое.

  • Тестовые случаи более надежны из-за привязки времени выполнения к компонентам графического интерфейса.

  • Плавно интегрируется с Maven или Ant.

Недостатки Robotium

  • Robotium не может обрабатывать Flash или веб-компоненты.

  • Он обрабатывает только одно приложение за раз.

  • Он не может имитировать нажатие на программную клавиатуру с помощью Robotium (необходимо использовать enterText () для ввода текста в поле EditText)

  • Robotium не может взаимодействовать с уведомлениями строки состояния, то есть разверните область уведомлений и щелкните указанное уведомление.

  • Может быть немного медленным, особенно на старых устройствах.

Как использовать Robotium

Step 1- Предварительные условия для использования Robotium - Java SDK (минимум 1.6). Если в вашей системе не установлена ​​Java, выполните действия, указанные ниже.

  • Загрузите JDK и JRE из Oracle Technology Network

  • Принять лицензионное соглашение.

  • Установите JDK и JRE.

  • Установите переменную среды, как показано на скриншоте ниже.

Step 2- Загрузите Android Studio из Android Studio

  • Дважды щелкните exe и запустите установщик.
  • Продолжайте со всеми параметрами по умолчанию.
  • Установите ANDROID_HOME.

Step 3 - Установите образы и инструменты Android.

  • Нажмите на SDK Manager -
  • Выберите необходимый пакет. Например, если мы создаем приложение для Android 4.4.2, убедитесь, что в разделе «Инструменты» отмечены следующие пакеты:

    • Инструменты Android SDK версии 22.6.3
    • Инструменты платформы Android версии 19.0.1
    • Инструменты сборки Android SDK версии 19.1

Step 4 - Создание виртуальных устройств Android.

  • Откройте Android Studio и нажмите AVD Manager на панели инструментов. AVD позволяют нам тестировать и запускать наши приложения для Android.
  • Используйте следующие настройки для Nexus5 AVD -

    • Устройство - Nexus 5 (4,95, 1080 x 1920; xxhdpi)
    • Цель - API Google x86 (Google Inc.) - уровень API 19
    • (Убедитесь, что вы выбрали цель с Google API в названии.)
    • Процессор - Intel Atom (x86)
    • Установите флажок Use Host GPU.
    • Нажмите ОК
  • Теперь вы должны увидеть созданный вами AVD в AVD Manager, где вы можете запустить его, удалить или создать еще один!

Step 5- Файл Robotium Jar Загрузите файл Robotium Jar с RobotiumTech

Протестируйте приложение с помощью Robotium

Чтобы протестировать приложение с Robotium, выполните следующие действия:

Step 1 - Создайте тестовый проект в Android Studio под названием «RobotiumTest».

Выбирайте все параметры по умолчанию, пока не дойдете до главной страницы.

Step 2 - Скопируйте файл Robotium jar в папку Lib проекта.

Step 3 - Добавьте зависимость в файл build.gradle под src папка.

androidTestCompile 'com.jayway.android.robotium: robotium-solo-5.5.3'

Step 4 - Синхронизировать Gradle.

Step 5 - Создайте класс Test следующим образом -

package com.example;

import com.robotium.solo.Solo;
import android.test.ActivityInstrumentationTestCase2;
import android.widget.EditText;
import android.widget.TextView;

public class MyTestClass extends ActivityInstrumentationTestCase2<TestActivity>{

   private Solo solo;

   public MyTestClass() {
      super(TestActivity.class);
   }

   public void setUp() throws Exception {
      solo = new Solo(getInstrumentation(), getActivity());
   }

   public void testCase() throws Exception {
      String vResult="TestExample";
      EditText vEditText = (EditText) solo.getView(R.id.edit1);
      solo.clearEditText(vEditText);
      solo.enterText(vEditText,"TestExample");
      solo.clickOnButton("Submit");
      assertTrue(solo.searchText(vResult));
      TextView textField = (TextView) solo.getView(R.id.txt1);
      //Assert to verify result with visible value
      assertEquals(vResult, textField.getText().toString());
   }

   @Override
   public void tearDown() throws Exception {
      solo.finishOpenedActivities();
   }
}

Step 6- Сохраните все изменения. Убедитесь, что ошибок нет.

Step 7- А теперь запустим тестовый пример. Если тестовый пример прошел успешно, вы должны увидеть следующий результат!