본문 바로가기
테스팅 자동화

Appium을 통한 자동화 테스팅 준비 - 환경 설정 및 실행

by 양초털이범 2021. 9. 12.

환경 설정 및 실행


https://candletheif.tistory.com/36

 

Appium을 통한 자동화 테스팅 준비 - 환경 설치

자동화 테스팅 테스팅은 제품의 품질과 요구사항 만족을 위해 꼭 필요한 과정입니다. 많은 시간을 들일수록 높은 퀄리티의 제품이 나오지만 비용, 시간의 한계로 테스트 일정을 줄이기도 합니

candletheif.tistory.com

지난 게시글에서 자동화 테스팅을 위한 환경 설치를 다뤘습니다.

오늘은 설치한 환경의 설정과 간단한 테스트 코드를 실행해보도록 하겠습니다.

 

 

1. Eclipse 환경 설정


지난 게시글을 통해 Eclipse가 성공적으로 설치되었다면 자동화 테스팅을 위한 환경설정을 해주어야 합니다.

TestNG의 설치, Appium과 Selenium의 추가, JDK 1.8의 추가를 설정해보겠습니다.

 

1-1. Eclipse 실행

Launch 클릭

 

다음과 같이 이클립스가 실행됩니다.

 

1-2 Appium 추가

자동화 테스트를 위해 appium을 추가해야 합니다. 메이븐을 활용하면 appium을 로컬에 설치하지 않아도 사용할 수 있습니다.

File > New > Other.. 클릭

 

Maven > Maven Project 클릭

 

Create a simple project 체크 > Next 클릭

 

Goup id, Artiface id에 아무거나 입력 > Finish 클릭

 

메이븐 생성을 완료 후 최하단에 있는 pom.xml을 클릭하면 위 사진과 같은 화면이 나옵니다. 

 

그리고 제일 하단에 있는 </poroject> 바로 위에 하단의 코드를 붙여 넣어 줍니다.

	<dependencies>
		<dependency>
			<groupId>org.seleniumhq.selenium</groupId>
			<artifactId>selenium-java</artifactId>
			<version>3.141.59</version>
		</dependency>
		<dependency>
			<groupId>io.appium</groupId>
			<artifactId>java-client</artifactId>
			<version>7.5.1</version>
		</dependency>
	</dependencies>

 

올바르게 입력 했다면 오른쪽 하단에 Building의 게이지가 오르고 빌딩이 완료됩니다.

 

1-3 TestNG 설치

TestNG는 Java 프로그래밍 언어의 테스트 프레임 워크입니다. 

Help > Eclipse Marketplace... 클릭

 

검색창에 TestNG 검색 > TestNG for Eclipse Intall 클릭

 

Confirm 클릭

 

동의 체크 > Finish 클릭

이 과정을 마치면 TestNG의 설치가 완료됩니다.

 

1-4. TestNG 추가

Maven 프로젝트에 TestNG를 추가하겠습니다.

 

Maven 프로젝트 오른쪽 마우스 클릭 > Prorerties 클릭

 

Java Build Path > Libraries > Add Library... 클릭

 

TestNG > Next 클릭

 

Finish 클릭

 

설치 완료 시 라이브러리에 TestNG가 추가됩니다.

 

1-5. JavaSE 1.8 추가

Maven 프로젝트에 JavaSE 1.8을 추가하겠습니다.

Java Build Path > Libraries > Add Library... 클릭

 

JRE System Library > Next 클릭

 

Execution enviroment > 아래방향 화살표 > JavaSE-1.8(jre) 클릭

 

Finish 클릭

 

J2SE 1.5 클릭 > Remove 클릭 > Apply and Close

기존에 있던 J2SE 1.5를 지우고 Apply and Close를 클릭하면 1-4, 1-5에 추가한 라이브러리들이 저장되고 Eclipse의 환경설정은 끝나게 됩니다.

 

2. 자동화 코드 입력


모든 환경 설정이 끝났습니다. 간단한 예제를 통해 자동화 테스팅을 실행할 때 필요한 정보와 간단한 코드를 실행해보겠습니다.

 

2-1. 클래스 생성

src/main/java 오른쪽 클릭 > New > Class 클릭

 

Class 이름 입력 > Finish 클릭

 

정상적으로 생성했다면 위와 같이 클래스가 생성됩니다.

 

2-2. 코드 입력

생성된 클래스에 아래 코드를 입력해줍니다.

package 패키지 이름;

import java.net.URL;
import java.util.concurrent.TimeUnit;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.testng.annotations.AfterClass;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
import io.appium.java_client.AppiumDriver;
import io.appium.java_client.android.AndroidDriver;
import io.appium.java_client.android.AndroidElement;

public class 클래스 이름 {
	public static AppiumDriver<AndroidElement> driver;
	public static DesiredCapabilities capabilities = new DesiredCapabilities();

	@BeforeClass
	public void setUp() throws Exception {
    	//aapt 명령어를 통해 입력 할 예정(테스트 할 앱의 패키지 명)
		capabilities.setCapability("appPackage", "package 이름");
        
        //aapt 명령어를 통해 입력 할 예정(테스트 할 앱의 launchable-activity 정보)
		capabilities.setCapability("appActivity", "launchable-activity 정보"); 
        
        //자신의 디바이스 명을 설정. 아무 이름이나 적어도 괜찮습니다.
		capabilities.setCapability("deviceName", "디바이스명");
        
        //adb 명령어를 통해 입력 할 예정(자기 디바이스의 udid)
		capabilities.setCapability("udid", "adb devices에 나온 디바이스 정보");
        
        //크게 신경 안써도 되는 문구
		capabilities.setCapability("unicodeKeyboard", "true");
		capabilities.setCapability("resetKeyboard", "true");
		driver = new AndroidDriver<>(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);
		driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
	}
	
	
	@Test
	public void Test1() throws Exception {
		driver.findElementByXPath("//android.widget.Button[@text='1']").click();
		driver.findElementByXPath("//android.widget.Button[@text='2']").click();
		driver.findElementByXPath("//android.widget.Button[@text='3']").click();
		driver.findElementByXPath("//android.widget.Button[@text='4']").click();
		Thread.sleep(5000);
	}
	
	@AfterClass
	public void end() throws Exception {
		driver.quit();
	}
}

 

2-3. 자기 정보 입력

어느 정도 코드를 제공해 드렸지만 자신의 환경에 맞는 값을 입력해야 합니다. 

아래 내용은 자신의 환경에 맞는 코드를 입력하는 부분입니다.

 

패키지 이름 : 자신이 메이븐을 생성할 때 지은 패키지 명을 써줍니다.

클래스 이름 : 자신이 클래스를 생성할 때 지은 클래스 명을 써줍니다.

@BeforeClass
	public void setUp() throws Exception {
    	//aapt 명령어를 통해 입력 할 예정(테스트 할 앱의 패키지 명)
		capabilities.setCapability("appPackage", "package 이름");
        
        //aapt 명령어를 통해 입력 할 예정(테스트 할 앱의 launchable-activity 정보)
		capabilities.setCapability("appActivity", "launchable-activity 정보"); 
        
        //자신의 디바이스 명을 설정. 아무 이름이나 적어도 괜찮습니다.
		capabilities.setCapability("deviceName", "디바이스명");
        
        //adb 명령어를 통해 입력 할 예정(자기 디바이스의 udid)
		capabilities.setCapability("udid", "adb devices에 나온 디바이스 정보");
        
        //크게 신경 안써도 되는 문구
		capabilities.setCapability("unicodeKeyboard", "true");
		capabilities.setCapability("resetKeyboard", "true");
		driver = new AndroidDriver<>(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);
		driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
	}

 

2-3-1. package 이름과 launchable-activity 정보 입력

package 이름과 launchvle-activity 정보를 알기 위해선 자기가 테스트할 앱의 apk 파일이 필요합니다.

이번에는 play 스토어에서 다운받을 수 있는 계산기 앱을 통해 알아보겠습니다.

 

 

 

Google LLC에서 제공하는 계산기 앱 사용

해당 앱을 pc와 모바일에 설치해줍니다.

 

 

PC에 설치한 apk 파일을 알기 쉬운 경로와 이름으로 설정해 준 후 cmd에 

aapt dump badging '경로\파일명'

을 입력해줍니다.

 

저는 앱 이름을 calc.apk, 경로는 c:\에 두어 aapt dump badging C:\calc.apk를 입력해주었습니다.

 

올바른 경로와 이름을 입력했다면 아래와 같은 정보를 얻을 수 있습니다.

Package name = com.google.android.calulator

 

launchable-activity = com.android.calulator2.Calculator

해당 정보를 코드에 입력하면 됩니다.

이 내용은 구글 계산기에만 국한되는 게 아니라 앞으로 자신이 테스트할 앱의 정보를 얻을 때 사용할 수 있습니다.

 

2-3-2. udid 정보 입력

테스트할 기기의 udid를 얻기 위해서는 개발자 옵션의 USB 디버깅을 활성화해야 합니다.

설정 > 휴대전화 정보 탭

 

소프트웨어 정보 탭

 

빌드번호 여러번 탭

이 과정을 마치면 아래 사진과 같이 개발자 옵션이 활성화됩니다.

 

개발자 옵션 > USB 디버깅 활성화

위와 같이 설정하면 adb를 통해 테스트할 디바이스의 udid를 얻을 수 있습니다.

 

USB로 PC와 디바이스를 연결해 주고 cmd에

adb devices

를 입력해줍니다. 

올바른 경로와 이름을 입력했다면 아래와 같은 정보를 얻을 수 있습니다.

Device 왼쪽에 있는 값이 본인 디바이스의 udid 번호입니다.

본인 환경에 맞는 정보를 모두 입력했다면 모든 환경설정이 끝나게 됩니다.

 

3. 자동화 코드 실행


모든 환경 설정과 코드 입력이 끝났습니다. 

이제 코드를 실행하여 잘 동작하는지 테스트해보겠습니다.

 

cmd 창에 appium을 입력하면

다음과 appium이 실행됩니다.

 

그 후 디바이스를 PC에 연결한 채로 코드를 실행해줍니다.

실행 > Run As > TestNG Test 클릭

 

코드가 제대로 동작한다면 다음과 같이 자동화 코드가 실행됩니다.

 

1234를 입력하는 자동화 코드

자동화 코드가 동작한다면 올바르게 환경설정이 완료된 것입니다.

 

4. 마무리


오늘은 Appium을 통한 자동화 테스팅 준비 중에서도 환경 설정을 했습니다. 

익숙하지 않으신 분들은 어려울 수 있으니 댓글에 질문 남겨주시면 언제든지 답변해드리겠습니다.

다음에는 앱의 UI의 정보와 Xpath 등을 찾아 클릭하는 코드를 실행해 보도록 하겠습니다.

 

댓글