Robotium 튜토리얼: 첫 번째 Android 뼈대

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

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

Robotium 테스트 프레임워크

스탠다드 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을 사용하려면 Android 테스트 프로젝트를 수행하려면 아래 단계를 따라야 합니다.

로보티움 사용

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

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

STEP 1) 설계 테스트 사양

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

STEP 2) TEST 프로그램 작성

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

  • "Hello world!"라는 텍스트를 표시합니다. 화면에.
  • 메시지 표시 안녕하세요Android 사용자가 "시작" 버튼을 누를 때
안녕하세요Android 어플리케이션
안녕하세요Android 어플리케이션

시스템 요구 사항

  • Android 플랫폼은 사전 통합되어 제공됩니다. JUnit 3.0 프레임워크.
  • 만들기 위해 Android 테스트 프로젝트 Eclipse, 컴퓨터에 다음이 설치되어 있어야 합니다.
  • 최신 버전 Android 플랫폼(현재 Android 8.1)

여러분의 시간과 재능으로 다운로드 Eclipse ADT가 내장된 IDE(Android 개발자 도구). 여기에는 필수 사항이 포함됩니다. Android SDK 구성 요소 및 버전 Eclipse IDE.

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

만들기 Android 테스트 프로젝트

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

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

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

테스트 중인 대상 애플리케이션을 선택합니다. 이 경우 Hello입니다.Android 완료를 클릭하십시오

왼쪽 메뉴에서 Target 테스트 중인 애플리케이션
테스트 중인 대상 애플리케이션 선택

테스트 스위트 생성

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

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

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

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

3단계) ​​테스트 실행

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

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

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

$ adb shell am instrument -w -e 패키지 com.example.helloandroid.test

4단계) 테스트 결과 받기

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

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

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

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

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

소스 코드 예시

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