Robotium 튜토리얼: 첫 번째 Android 프레임워크

로보티움이란 무엇인가요?

Robotium은 네이티브 및 하이브리드 애플리케이션에 대한 테스트 사례를 자동화하는 Android 테스트 프레임워크입니다. 개발자는 Robotium을 사용하여 Android 애플리케이션을 위한 강력한 자동 GUI 테스트 사례를 만들 수 있습니다. 또한 개발자는 기능, 시스템 및 승인 테스트 시나리오를 작성하여 많은 Android 활동을 확산시킬 수 있습니다.

Robotium 테스트 프레임워크

표준 Android 테스트 프레임워크에는 다음과 같은 몇 가지 제한 사항이 있습니다.

  • 여러 활동을 처리할 수 없음
  • 테스트 실행 성능이 느림
  • 테스트 케이스는 complex & 구현하기 어려움

로보티움뼈대 Android 애플리케이션에서 테스트를 수행하는 것이 더 나은 선택입니다.

Robotium은 오픈 소스 프레임워크이며 Android 테스트 프레임워크의 확장으로 간주됩니다. 개발자는 Robotium을 사용하여 Android 애플리케이션을 위한 강력한 자동 GUI 테스트 사례를 만들 수 있습니다. 또한 개발자는 여러 Android 활동에 걸쳐 기능, 시스템 및 승인 테스트 시나리오를 작성할 수 있습니다.

Robotium의 고급 기능
Robotium의 고급 기능

Robotium 테스트 케이스 클래스

Robotium은 클래스 세트(com.jayway.android.robotium.solo) 시험용. 이 클래스는 여러 활동에 걸쳐 있는 테스트 사례를 지원합니다. Solo는 ActivityInstrumentationTestCase2와 통합되어 있습니다.

Robotium 테스트 케이스 클래스
통합 Robotium 및 ActivityInstrumentationTestCase2

테스터는 애플리케이션 설계에 대한 지식 없이도 테스트 케이스를 작성할 수 있습니다(검정색). box 테스트) Robotium 테스트 케이스 클래스를 사용합니다. Android 테스트 케이스 클래스와 비교할 때 뛰어난 기능입니다.

로보티움 이용방법

Android 테스트 프로젝트에서 Robotium을 사용하려면 아래 단계를 따라야 합니다.

로보티움 사용

Robotium을 사용하여 Android 애플리케이션에서 테스트를 수행합니다. Android 애플리케이션의 품질을 보장하려면 아래 절차를 따라야 합니다.

  1. 설계 테스트 사양
  2. 테스트 프로그램 개발
  3. 실행하다 테스트 케이스 대상 장치에서
  4. 테스트 결과 수집
안드로이드 어플리케이션
Android 애플리케이션 테스트 절차 지원 순서

STEP 1) 설계 테스트 사양

  • 이는 애플리케이션을 테스트하는 첫 번째 단계입니다. 이 단계에서는 테스트할 대상을 정의합니다. Android 애플리케이션에는 UI, 활동, 구성 요소, 서비스 등 테스트해야 할 대상이 많이 있습니다. 애플리케이션에서 대상을 명확하게 정의하면 광범위한 테스트 범위를 달성하는 데 도움이 됩니다.
  • 테스트 유형을 계획합니다(단위 테스트, 기능 테스트, 시스템 테스트).
  • 최대 적용 범위를 위해 테스트 케이스를 설계하되 테스트 케이스 수는 최소화하십시오. 더 많은 코드를 테스트할수록 조기 버그 발견 가능성이 높아집니다.

STEP 2) TEST 프로그램 작성

이 섹션에서는 Android를 사용하여 Android 테스트 프로그램을 작성하는 방법을 안내합니다. 주니트 테스트와 로보티움. Android 프로그램 이름인 HelloAndroid를 이미 개발했다고 가정합니다. 이 프로그램에는 아래에 설명된 몇 가지 기능이 있습니다.

  • "Hello world!"라는 텍스트를 표시합니다. 화면에.
  • 사용자가 "시작" 버튼을 누르면 HelloAndroid 메시지 표시
HelloAndroid 애플리케이션
HelloAndroid 애플리케이션

시스템 요구 사항

  • Android 플랫폼에는 사전 통합된 JUnit 3.0 프레임워크가 함께 제공됩니다.
  • Android 테스트 프로젝트를 생성하려면 Eclipse, 컴퓨터에 다음이 설치되어 있어야 합니다.
  • 최신 버전 Android 플랫폼(현재 Android 8.1)

여러분의 시간과 재능으로 다운로드 Eclipse ADT(Android 개발자 도구)가 내장된 IDE. 여기에는 필수 Android SDK 구성요소와 Eclipse IDE.

Robotium 테스트 프레임워크의 경우 다음에서 Robotium 라이브러리를 다운해야 합니다. 로보티움 웹페이지.

Android 테스트 프로젝트 만들기

  • 파일 -> 새로 만들기 -> 기타를 클릭하세요.
  • 선택: Android -> 아래 그림에 따른 Android 테스트 프로젝트 -> 다음 선택
새로운 Android 테스트 프로젝트 만들기
새로운 Android 테스트 프로젝트 만들기

테스트 프로젝트의 이름을 작성하세요. 명명 규칙에 따라 테스트 프로젝트 이름은 "HelloAndroidTest"여야 합니다.

명명 규칙에 따라 테스트 프로젝트 이름 기반 추가
명명 규칙에 따라 테스트 프로젝트 이름 기반 추가

테스트 중인 대상 애플리케이션을 선택합니다. 이 경우 HelloAndroid가 완료를 클릭합니다.

테스트 중인 대상 애플리케이션 선택
테스트 중인 대상 애플리케이션 선택

테스트 스위트 생성

테스트 사양을 기반으로 테스트 프로그램에 대한 테스트 도구 모음을 만들기 시작했습니다. 다양한 테스트 프레임워크를 선택할 수 있습니다. 이 튜토리얼에서는 표준 Android 테스트 프레임워크를 선택합니다. 활동 계측TestCase2. Robotium 프레임워크로 테스트하려면 프로젝트 폴더의 libs 디렉터리에 Robotium 라이브러리 파일을 추가해야 합니다. (프로젝트 폴더에 lib 폴더를 만듭니다).

테스트 케이스는 여러 테스트를 실행하기 위한 설비를 정의합니다. 테스트 케이스를 정의하려면 아래 프로그램 구조를 따라야 합니다.

  • 하위 클래스 구현 TestCase.
  • Fixture의 상태를 저장하는 인스턴스 변수 정의
  • 재정의하여 설비 상태를 초기화합니다. 설정()
  • 재정의를 통해 테스트 후 정리 찢어짐().
테스트 프로그램의 구조
테스트 프로그램의 구조
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 클래스를 생성합니다.
  • 특정 활동(예: HelloAndroid)을 테스트하려면 테스트 사례 범위 ActivityInstrumentationTestCase2를 만듭니다.
  • 이 클래스에서는 테스터는 getActivity() 메소드를 통해 테스트 활동을 얻을 수 있습니다.
  • “test + 원본 메소드 이름”이라는 이름으로 메소드를 생성하여 테스트 활동에 대한 테스트를 자유롭게 생성할 수 있습니다.
  • 테스트 방법에서 테스터는 Android JUnit 기능을 사용하여 실제 값과 예상 값을 비교할 수 있습니다. 이러한 방법은 아래에 나와 있습니다.
Robotium 및 Android 테스트 프레임워크의 예시 방법
Robotium 및 Android 테스트 프레임워크의 예시 방법

위의 테스트 모음에서는 애플리케이션 GUI가 "Hello World!"라는 텍스트를 표시해야 하며 "Start"라는 버튼 이름을 포함해야 함을 확인했습니다.

3단계) ​​테스트 실행

테스트 프로그램 작성을 마친 후 아래 단계를 사용하여 테스트를 실행하세요.

  • Android 장치를 PC에 연결합니다(또는 실제 장치가 없는 경우 에뮬레이터를 시작합니다).
  • IDE에서 àRun asàAndroid Unit Test를 마우스 오른쪽 버튼으로 클릭합니다.
테스트 프로그램 실행
테스트 프로그램 실행

IDE에서 테스트를 실행하는 것 외에도 명령줄에서 테스트를 실행할 수 있습니다. 이 테스트 프로그램에서 테스트 패키지는 com.example.helloandroid.test 입니다. ~ 안에 Linux 터미널에서는 follow를 사용할 수 있습니다wing 이 패키지의 모든 테스트를 실행하는 명령:

$ adb 쉘 오전 악기 -w -e 패키지 com.example.helloandroid.test

4단계) 테스트 결과 받기

테스트가 실행되면 테스트 결과를 받게 됩니다.

본 테스트 프로그램에서는 4가지 테스트 메소드가 실행됩니다. 이 경우 모든 테스트 케이스가 통과됩니다.

모든 테스트 케이스를 통과한 경우 테스트 결과 출력
모든 테스트 케이스를 통과한 경우 테스트 결과 출력

테스트 사례가 실패하는 경우 출력이 표시되고 어떤 테스트 사례가 실패했는지 보여줍니다.

모든 테스트 케이스가 실패한 경우 테스트 결과 출력
모든 테스트 케이스가 실패한 경우 테스트 결과 출력

소스 코드 예시

이 문서에는 튜토리얼을 보다 명확하게 이해하고 기술 지식을 빠르게 파악하는 데 도움이 되는 몇 가지 소스 코드 예제가 포함되어 있습니다.