환경 설정 및 실행
https://candletheif.tistory.com/36
지난 게시글에서 자동화 테스팅을 위한 환경 설치를 다뤘습니다.
오늘은 설치한 환경의 설정과 간단한 테스트 코드를 실행해보도록 하겠습니다.
1. Eclipse 환경 설정
지난 게시글을 통해 Eclipse가 성공적으로 설치되었다면 자동화 테스팅을 위한 환경설정을 해주어야 합니다.
TestNG의 설치, Appium과 Selenium의 추가, JDK 1.8의 추가를 설정해보겠습니다.
1-1. Eclipse 실행
다음과 같이 이클립스가 실행됩니다.
1-2 Appium 추가
자동화 테스트를 위해 appium을 추가해야 합니다. 메이븐을 활용하면 appium을 로컬에 설치하지 않아도 사용할 수 있습니다.
메이븐 생성을 완료 후 최하단에 있는 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 프로그래밍 언어의 테스트 프레임 워크입니다.
이 과정을 마치면 TestNG의 설치가 완료됩니다.
1-4. TestNG 추가
Maven 프로젝트에 TestNG를 추가하겠습니다.
설치 완료 시 라이브러리에 TestNG가 추가됩니다.
1-5. JavaSE 1.8 추가
Maven 프로젝트에 JavaSE 1.8을 추가하겠습니다.
기존에 있던 J2SE 1.5를 지우고 Apply and Close를 클릭하면 1-4, 1-5에 추가한 라이브러리들이 저장되고 Eclipse의 환경설정은 끝나게 됩니다.
2. 자동화 코드 입력
모든 환경 설정이 끝났습니다. 간단한 예제를 통해 자동화 테스팅을 실행할 때 필요한 정보와 간단한 코드를 실행해보겠습니다.
2-1. 클래스 생성
정상적으로 생성했다면 위와 같이 클래스가 생성됩니다.
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 스토어에서 다운받을 수 있는 계산기 앱을 통해 알아보겠습니다.
해당 앱을 pc와 모바일에 설치해줍니다.
PC에 설치한 apk 파일을 알기 쉬운 경로와 이름으로 설정해 준 후 cmd에
aapt dump badging '경로\파일명'
을 입력해줍니다.
저는 앱 이름을 calc.apk, 경로는 c:\에 두어 aapt dump badging C:\calc.apk를 입력해주었습니다.
올바른 경로와 이름을 입력했다면 아래와 같은 정보를 얻을 수 있습니다.
해당 정보를 코드에 입력하면 됩니다.
이 내용은 구글 계산기에만 국한되는 게 아니라 앞으로 자신이 테스트할 앱의 정보를 얻을 때 사용할 수 있습니다.
2-3-2. udid 정보 입력
테스트할 기기의 udid를 얻기 위해서는 개발자 옵션의 USB 디버깅을 활성화해야 합니다.
이 과정을 마치면 아래 사진과 같이 개발자 옵션이 활성화됩니다.
위와 같이 설정하면 adb를 통해 테스트할 디바이스의 udid를 얻을 수 있습니다.
USB로 PC와 디바이스를 연결해 주고 cmd에
adb devices
를 입력해줍니다.
올바른 경로와 이름을 입력했다면 아래와 같은 정보를 얻을 수 있습니다.
본인 환경에 맞는 정보를 모두 입력했다면 모든 환경설정이 끝나게 됩니다.
3. 자동화 코드 실행
모든 환경 설정과 코드 입력이 끝났습니다.
이제 코드를 실행하여 잘 동작하는지 테스트해보겠습니다.
cmd 창에 appium을 입력하면
다음과 appium이 실행됩니다.
그 후 디바이스를 PC에 연결한 채로 코드를 실행해줍니다.
코드가 제대로 동작한다면 다음과 같이 자동화 코드가 실행됩니다.
자동화 코드가 동작한다면 올바르게 환경설정이 완료된 것입니다.
4. 마무리
오늘은 Appium을 통한 자동화 테스팅 준비 중에서도 환경 설정을 했습니다.
익숙하지 않으신 분들은 어려울 수 있으니 댓글에 질문 남겨주시면 언제든지 답변해드리겠습니다.
다음에는 앱의 UI의 정보와 Xpath 등을 찾아 클릭하는 코드를 실행해 보도록 하겠습니다.
'테스팅 자동화' 카테고리의 다른 글
UI Automator Viewer를 이용하여 Element의 정보 확인하기 (0) | 2021.10.10 |
---|---|
Appium을 통한 자동화 테스팅 준비 - 환경 설치 (5) | 2021.09.12 |
댓글