Урок по Robotium: Вашият първи Android Рамка

Какво е Robotium?

Robotium е рамка за тестване на Android за автоматизиране на тестови случаи за собствени и хибридни приложения. Използвайки Robotium, разработчикът може да създаде силен случай за автоматично тестване на GUI за Android приложения. В допълнение, разработчикът може да напише функционален, системен и тестов сценарий за приемане, разпространявайки много Android дейности.

Рамка за тестване на Robotium

Standard Android рамката за тестване има някои ограничения, както е показано по-долу

  • Не може да се справи с множество дейности
  • Изпълнението на теста е бавно
  • Тестовите случаи са сложни и трудни за изпълнение

Роботиумрамка е по-добрият избор за провеждане на тестове Android прилагане

Robotium е рамка с отворен код и се счита за разширение на Android тестова рамка. Използвайки Robotium, програмистът може да създава стабилни автоматични GUI тестови случаи за Android приложения. Освен това разработчикът може да напише функционални, системни и тестови сценарии за приемане, обхващащи множество Android дейности.

Разширени функции на Robotium
Разширени функции на Robotium

Класове за тестови случаи на Robotium

Robotium използва набор от класове (com.jayway.android.robotium.solo) за тестване. Този клас поддържа тестови случаи, които обхващат множество дейности. Solo е интегриран с ActivityInstrumentationTestCase2.

Класове за тестови случаи на Robotium
Интеграция Robotium и ActivityInstrumentationTestCase2

Тестерът може да напише тестови случаи без познания за дизайна на приложението (тестване в черна кутия), като използва класове тестови случаи на Robotium. Това е изключителна характеристика в сравнение с Android тестови класове.

Как да използвате Robotium

За да използвате Robotium във вашия Android тестов проект, трябва да следвате стъпките по-долу

Използвайте Robotium

Използване на Robotium за провеждане на тестване на Android приложение. За да гарантираме качеството на вашите Android приложение, трябва да следвате процедурата по-долу

  1. Спецификация за изпитване на дизайна
  2. Разработете тестова програма
  3. Изпълнение Тестов случай на целево устройство
  4. Съберете резултата от теста
Android прилагане
Android Процедура за тестване на приложението Тестване процедура

СТЪПКА 1) Спецификация на теста за проектиране

  • Това е първата стъпка за тестване на вашето приложение. В тази стъпка дефинирате целта, която да бъде тествана. Във вашия Android приложение, има много цели, които трябва да бъдат тествани, като потребителски интерфейс, активност, компоненти, услуги. Ясното дефиниране на целта във вашето приложение ще ви помогне да постигнете широко покритие на теста.
  • Планирайте видовете тестове, които трябва да бъдат проведени (единичен тест, функционален тест, системен тест).
  • Проектирайте тестови случаи за максимално покритие, но минимизирайте броя на тестовите случаи. Колкото повече код се тества, толкова повече са шансовете за ранно откриване на грешки.

СТЪПКА 2) Напишете TEST програма

Този раздел ви насочва как да напишете Android използване на тестова програма Android Джунит Тест и Robotium. Да приемем, че вече сте разработили Android Име на програмата ЗдравейтеAndroid. Тази програма има някои функции, описани по-долу:

  • Показване на текст „Здравей свят!“ на екрана.
  • Показване на съобщение ЗдравейAndroid когато потребителят натисне бутона "Старт".
ЗдравейтеAndroid Приложение
ЗдравейтеAndroid Приложение

Системни изисквания

  • Android платформата идва с предварително интегриран JUnit 3.0 рамка.
  • За да създадете Android Тестови проект от Eclipse, вашият компютър трябва да има инсталирани:
  • Последна версия Android Платформа (в момента Android 8.1)

Можете да Изтегли Eclipse IDE с вграден ADT (Android Инструменти за разработчици). Тя включва същественото Android SDK компоненти и версия на Eclipse IDE.

За рамката за тестване на Robotium трябва да свалите библиотеката на Robotium от Уеб страница Robotium.

Създаване на Android Тестов проект

  • Щракнете върху Файл -> Нов -> Други
  • Избирам: Android -> Android Тествайте проекта според фигурата по-долу -> Изберете Напред
Създаване на нов Android тестов проект
Създаване на нова Android Тестов проект

Напишете името на вашия тестов проект. Като конвенция за именуване, вашият тестов проект трябва да се казва „HelloAndroidТест"

Добавете име на тестов проект въз основа на конвенцията за именуване
Добавете име на тестов проект въз основа на конвенцията за именуване

Изберете целево приложение, което се тества. В този случай това е ЗдравейAndroid щракнете върху Готово

Изберете Target Приложението се тества
Изберете целево приложение, което се тества

Създайте тестови пакети

Въз основа на вашата тестова спецификация, вие започнахте да създавате тестови пакети за вашата тестова програма. Можете да изберете различни рамки за тестване. В този урок избирам стандартен Android рамка за тестване ActivityInstrumentationTestCase2. Трябва да добавите файл с библиотека Robotium към директория libs във вашата папка на проекта, в случай че искате да тествате с Robotium framework. (Създавате папка lib в папката на вашия проект).

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

  • Реализирайте подклас на TestCase.
  • Дефинирайте променливи на екземпляр, които съхраняват състоянието на приспособлението
  • Инициализирайте състоянието на приспособлението, като замените setUp()
  • Почистване след тест чрез замяна на tearDown().
Структура на тестовата програма
Структурата на тестовата програма
package com.example.helloandroid.test;

import com.example.helloandroid.HelloAndroid;
import com.jayway.android.robotium.solo.Solo;
import android.test.ActivityInstrumentationTestCase2;
import android.widget.TextView;

public class HelloAndroidTest extends ActivityInstrumentationTestCase2 <HelloAndroid> {
    
	private HelloAndroid mActivity;
	private TextView mView;
	private String resourceString;
	private Solo solo;
	
	public HelloAndroidTest () {
		// TODO Auto-generated constructor stub
		super("com.example.helloandroid",HelloAndroid.class);	
	}
	
	 @Override
	protected void setUp() throws Exception {
		// TODO Auto-generated method stub
	//	super.setUp();
		 
	 	mActivity = this.getActivity();
		solo = new Solo(getInstrumentation(),getActivity());
		mView = (TextView) mActivity.findViewById(com.example.helloandroid.R.id.textview2);
		resourceString = mActivity.getString(com.example.helloandroid.R.string.hello_world);
		
	}
	 
	 @Override
	protected void tearDown() throws Exception {
		// TODO Auto-generated method stub
		//super.tearDown();
		solo.finishOpenedActivities();
	}
	
	public void testPrecondition() {
		assertNotNull(mView);
	}
	
	/* test Target application contains a text display "Hello World!"*/
	public void testSearchText() {
		assertEquals(resourceString,(String) mView.getText());
	}
	
	/* test HelloAndroid Activity on target application is exist*/
	public void testCurrentActivity() throws Exception  {
    	solo.assertCurrentActivity("wrong activity", HelloAndroid.class);
    }
    
	/* test Application UI contains "Start" button */
	/* send event click button to target application */
    public void testSearchButton() throws Exception {
    	boolean found = solo.searchButton("Start");
    	solo.clickOnButton("Start");
    	assertTrue(found);
    }

	

}

Добавяне на тестови случаи

  • В същия пакет с TestSuite създаваме класове TestCase
  • За да тествате определена дейност, т.е. ЗдравейтеAndroid, създайте степен на тестов случай ActivityInstrumentationTestCase2Android>
  • В този клас тестерът може да получи тестова активност чрез метода getActivity().
  • Можете свободно да създавате тест за тестова дейност чрез създаване на метод с име „тест + оригинално име на метод“
  • В тестовия метод, тестерът може да използва Android JUnit функция за сравняване на действителната и очакваната стойност. Тези методи са показани по-долу.
Примерни методи на Robotium и Android Рамка за тестване
Примерни методи на Robotium и Android Рамка за тестване

Тези тестови пакети по-горе потвърдиха, че GUI на приложението трябва да показва текст „Hello World!“ и да съдържа име на бутон „Старт“.

СТЪПКА 3) Изпълнете тест

След като приключите с писането на вашата тестова програма, стартирайте теста, като използвате стъпките по-долу

  • Свържете Android устройство към вашия компютър (или стартирайте емулатора, в случай че нямате истинско устройство).
  • Във вашата IDE щракнете с десния бутон върху àRun asàAndroid Тест за единица
Изпълняваща се тестова програма
Тестваща програма за тестване

Освен да изпълнявате тест в IDE, можете да стартирате тест в командния ред. В тази тестова програма тестовият пакет е com.example.helloandroid.test. в Linux терминал, можете да използвате следната команда, за да изпълните всички тестове в този пакет:

$ adb shell am instrument -w -e пакет com.example.helloandroid.test

СТЪПКА 4) Получете резултат от теста

След като тестът се изпълни, получавате резултати от теста.

В тази тестова програма се изпълняват 4 тестови метода. В този случай всички тестови случаи са преминати.

Резултат от теста в Case Всички тестови случаи са преминали
Резултат от теста, в случай че всички тестови случаи са преминали

В случай че тестовият случай е неуспешен, изходът се показва и ви показва кои тестови случаи са неуспешни

Резултат от теста в Case Всички тестови случаи са неуспешни
Резултат от теста в случай, че всички тестови случаи са неуспешни

Примери за изходен код

Тези статии включват някои примери за изходен код, които ви помагат да разберете урока по-ясно и бързо да наваксате техническите познания