자동화테스트/appium2020. 3. 13. 08:00

Appium이란 무엇입니까?

APPIUM은 무료로 배포되는 오픈 소스 모바일 애플리케이션 UI 테스팅 프레임워크 입니다. Appium은 기본, 하이브리드 및 웹 응용 프로그램 테스트를 할 수 있고 에뮬레이터 또는 시뮬레이터뿐만 아니라 물리적 장치에서 자동화 테스트를 지원합니다. 크로스 플랫폼 애플리케이션 테스트, 즉 Android 및 iOS 플랫폼 테스트스크립트 모두에 대한 단일 API 작동을 제공합니다.

이는 보유 NO의 휴대 단말기 OS에 종속한다.모바일 장치 OS에 의존하지 않습니다.  APPIUM에는 Selenium Webdriver 명령을 OS 유형이 아닌 장치 유형에 따라 UIAutomation (iOS) 또는 UIAutomator (Android) 명령으로 변환하는 프레임 워크 또는 래퍼가 있기 때문입니다.

Appium은 Java, Objective-C, node.js가있는 JavaScript , PHP, Ruby, Python, C # 등과 같은 Selenium 클라이언트 라이브러리가있는 모든 언어를 지원합니다 .

 

APPIUM은 어떻게 작동합니까?

  • Appium은 Node.js 플랫폼을 사용하여 작성된 'HTTP 서버' 이며 Webdriver JSON 유선 프로토콜을 사용하여 iOS 및 Android 세션을 구동합니다. 따라서 Appium Server를 초기화하기 전에 시스템에 Node.js가 사전 설치되어 있어야합니다.
  • Appium을 다운로드하여 설치하면 REST API를 노출하는 서버가 시스템에 설정됩니다.
  • 클라이언트로부터 연결 및 명령 요청을 수신하고 모바일 장치 (Android / iOS)에서 해당 명령을 실행합니다.
  • HTTP 응답으로 다시 응답합니다. 이 요청을 다시 실행하기 위해 모바일 테스트 자동화 프레임 워크를 사용하여 앱의 사용자 인터페이스를 구동합니다. 
  • 다음과 같은 프레임 워크 :
    • iOS 용 Apple Instruments (장비는 OS X v10.5 이상이 설치된 Xcode 3.0 이상에서만 사용 가능)
    • Android API 레벨 16 이상용 Google UIAutomator
    • Android API 레벨 15 이하의 Selendroid

APPIUM을 사용하기위한 전제 조건

  1. ANDROID SDK 설치 (Studio) [ 링크 ]-
  2. JDK (Java Development Kit) 설치 [ 링크 ]
  3. 이클립스 설치 [ Link ]
  4. Eclipse 용 TestNg 설치
  5. Selenium 서버 JAR 설치
  6. Appium 클라이언트 라이브러리 [ 링크 ]
  7. Google Play의 APK 앱 정보 [ 링크 ]
  8. js (필수 아님-Appium 서버가 설치 될 때마다 기본적으로 "Node.exe"및 NPM이 제공되며 Appium의 현재 버전에 포함되어 있습니다.)
  9. Appium Desktop 설치

Appium Desktop 설치 :

Appium Studio는 Appium Server를 설치하기위한 오픈 소스 GUI 앱입니다. Appium Server를 설치하고 사용하기위한 모든 전제 조건이 번들로 제공됩니다. 또한 앱에 대한 기본 정보를 얻을 수있는 인스팩터(Inspector)가 있습니다. 모바일 앱을 자동화하기 위해 상용구 코드를 작성하는 레코더가 함께 제공됩니다.

 

1 단계) http://appium.io/로 이동하여 [Download Appium]를 클릭하십시오.

2 단계) Windows의 경우 exe 파일을 선택하고 다운로드하십시오. 파일 속도는 약 162MB이며 인터넷 속도에 따라 다운로드 시간이 걸립니다.

3 단계) 다운로드 한 exe를 실행하십시오.

4 단계) Windows 시스템에서는 Appium을 설치할 필요가 없습니다. exe에서 직접 실행됩니다. 

 

Mac의 경우 dmg를 설치해야합니다.

 

5 단계) 다음으로 서버 시작 창이 나타납니다. 변경할 수있는 기본 호스트 및 포트 옵션을 변경할수 있습니다. [Start Server] 클릭합니다.

6 단계) 서버 시작 버튼을 클릭하면 지정된 호스트 및 포트에서 새 서버가 시작됩니다. 서버 로그 출력이 표시됩니다.

7 단계) 새 세션 창을 클릭하십시오 .

8 단계) 원하는 기능을 입력하고 세션을 시작할 수 있습니다.

APPIUM 인스펙터

Selenium IDE 기록 및 재생 도구와 유사하게 Appium에는 기록 및 재생을위한 '검사기'('Inspector')가 있습니다. DOM을 검사하여 기본 응용 프로그램 동작을 기록하고 재생하며 원하는 언어로 테스트 스크립트를 생성합니다. 그러나 현재 Appium Inspector for Microsoft Windows는 지원되지 않습니다. Windows에서는 Appium Server를 시작하지만 요소를 검사하지 못합니다. 그러나 UIAutomator 뷰어는 요소 검사 옵션으로 사용할 수 있습니다.

 

Mac 컴퓨터에서 Appium Inspector로 시작하는 단계 :-

1 단계) 기본 IP 주소 0.0.0.0 및 포트 4725를 사용하여 Appium 서버를 다운로드하고 시작하십시오.

  1. 테스트 할 로컬에서 소스 파일 또는 .app 파일을 선택하십시오.
  2. '앱 경로'확인란을 선택하여 '선택'버튼을 활성화하십시오.

2 단계) 이제 '선택'버튼을 클릭하면 로컬 드라이브에서 테스트 파일을 찾아보고 선택할 수있는 옵션이 제공됩니다.

3 단계) Mac 컴퓨터에서 시뮬레이터를 시작합니다.

4 단계) 오른쪽 상단에서 '시작'버튼을 클릭하면 파란색 아이콘이 활성화됩니다. 다시 이 파란색 아이콘을 클릭하면 미리 선택된 응용 프로그램으로 Appium 인스펙터 및 시뮬레이터가 열립니다.

5 단계) Appium Inspector를 시작하면 요소 계층 구조가 열 단위 구조로 표시됩니다. 또한 사용자는 탭, 스 와이프 등과 같은 버튼을 사용하여 작업을 적용 할 수 있습니다.

6 단계) '정지'버튼을 클릭하여 녹화를 중지하십시오.

Appium에 Android 에뮬레이터 연결

1 단계) 시스템에 Android SDK를 설치하십시오.

제어판 >> 시스템 및 보안 >> 시스템으로 이동하고 왼쪽 패널에서 '고급 시스템 설정'을 클릭하십시오. '시스템 속성'팝업에서 '고급'탭을 클릭 한 다음 "환경 변수"버튼을 클릭하십시오.

2 단계) 이제 '환경 변수'팝업에서 '경로'를 두 번 클릭하고 SDK 디렉토리를 가리키는 ANDROID_HOME 변수를 설정하십시오. 경로에 전체 SDK 폴더 경로를 추가하십시오.

예를 들어-

C : \ User \ ABC \ Desktop \ adt-bundled-windows-x86_64-20140321 \ sdk

3 단계) Android 에뮬레이터를 시작하거나 모든 Android 기기를 시스템에 연결합니다 (Android 기기에서 Android 디버깅 옵션을 사용하도록 설정했는지 확인합니다. 디버깅 옵션을 확인하려면 장치 설정 >> 개발자 옵션으로 이동> "디버깅 옵션"확인)

 

4 단계) 명령 프롬프트를 열고 Android SDK의 \ platform-tools \ 디렉토리 (예 : D : \ adt-bundle-windows-x86_64-20130514 \ sdk \ platform-tools)로 이동합니다.

 

5 단계) 'adb devices'명령을 실행하십시오. 명령 프롬프트 창에 연결된 장치가 표시됩니다. (CMD에서 '> adb 장치'쓰기-이 명령은 연결된 에뮬레이터 인스턴스를 나열합니다. 예 : adb –s emulator-5554 install <.apk 파일의 위치>)

6 단계) 'adb start-server'명령을 실행하십시오. Appium에서 Android 장치로 명령을 보내는 데 사용되는 ADB 서버를 시작합니다.

 

7 단계) 이제 시스템에서 Appium 디렉토리로 이동하고 Appium.exe 파일을 클릭하여 Appium을 시작하십시오.

 

8 단계) IP 주소 또는 포트 번호를 변경하지 말고 'Launch'버튼을 클릭하십시오. Appium 콘솔은 아래와 같이 127.0.0.1:4723에서 시작합니다.

단계 9) '시작'버튼을 클릭하면 시스템에서 Appium 서버가 실행되기 시작했습니다.

기본 Android 앱 (계산기)에 대한 APPIUM 테스트 사례

단계 1) ) ADT 이클립스 플러그인 다운로드 또는 여기에 별도로 번들로 제공되는 ADT 다운로드

2 단계) Eclipse를 열고 새 프로젝트 >> 패키지 >> 클래스 생성

3 단계) 새 프로젝트 내에서 Selenium 라이브러리 및 Testng를 가져 옵니다 .

4 단계) 이제 'Calculator.app'에 대한 작은 테스트 프로그램을 만들어 두 숫자를 합산하십시오.

 

package src_Appium;
import java.net.MalformedURLException;
import java.net.URL;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
//import org.openqa.selenium.remote.CapabilityType;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.openqa.selenium.remote.RemoteWebDriver;
import org.testng.annotations.*;


public class Calculator {
WebDriver driver;

@BeforeClass
public void setUp() throws MalformedURLException{
	//원하는 기능(capabilities)을 설정하고 Android app-activity 및 앱 패키지를 Appium으로 전달하십시오.
	DesiredCapabilities capabilities = new DesiredCapabilities();
	capabilities.setCapability("BROWSER_NAME", "Android");
	capabilities.setCapability("VERSION", "4.4.2"); 
	capabilities.setCapability("deviceName","Emulator");
	capabilities.setCapability("platformName","Android");
 
   
   capabilities.setCapability("appPackage", "com.android.calculator2");
   //앱의 패키지 이름(APK 정보 앱에서 얻을 수 있습니다.)
   capabilities.setCapability("appActivity","com.android.calculator2.Calculator"); 
   //Launcher activity(APK 정보 앱에서 얻을 수 있습니다.)
   //RemoteWebDriver 인스턴스를 생성하고 Appium 서버에 연결
   //원하는 기능에 지정된 구성을 사용하여 Android 장치에서 계산기 앱을 시작합니다.
   driver = new RemoteWebDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);
}

@Test
public void testCal() throws Exception {
   //By.name()을 사용하여 계산기에서 텍스트를 찾습니다.
   WebElement two=driver.findElement(By.name("2"));
   two.click();
   WebElement plus=driver.findElement(By.name("+"));
   plus.click();
   WebElement four=driver.findElement(By.name("4"));
   four.click();
   WebElement equalTo=driver.findElement(By.name("="));
   equalTo.click();
   //By.tagName()을 사용하여 계산기의 edit box를 찾습니다.
   WebElement results=driver.findElement(By.tagName("EditText"));
   //edit box에서 계산 된 값을 확인하십시오.
   assert results.getText().equals("6"):"Actual value is : "+results.getText()+" did not match with expected value: 6";

}

@AfterClass
public void teardown(){
	//앱을 종료합니다.
	driver.quit();
}
}

 

'AVD 관리자'에서 Appium Server 및 Android 에뮬레이터를 클릭하고 실행 >> TestNG를 클릭하십시오. 위의 프로그램은 선택된 에뮬레이터에서 'Calculator.app'을 실행하고 TestNG 프레임 워크를 사용하여 Eclipse 콘솔에 결과가 표시됩니다.

APPIUM 사용 제한

  1. Appium은 4.2 미만의 Android 버전 테스트를 지원하지 않습니다
  2. 하이브리드 앱 테스트에 대한 제한적인 지원. 예 : 웹 응용 프로그램에서 기본 응용 프로그램으로 또는 그 반대로 응용 프로그램의 전환 동작을 테스트 할 수 없습니다.
  3. Microsoft Windows에서 Appium Inspector를 실행할 수 없습니다.

Appium의 일반적인 오류 및 문제 해결 단계

오류 문제 해결 단계
1. 오류 :다음과 같은 원하는 기능이 필요하지만 제공되지 않았습니다 : device Name, platformName 1. APPIUM 스크립트에서 device Name, platformName과 같은 기능을 추가하십시오. 예 : capabilities.setCapability ( "deviceName", "Emulator"); capability.setCapability ( "platformName", "Android");
2. 오류 : adb를 찾을 수 없습니다. ANDROID_HOME 환경 변수를 Android SDK 루트 디렉토리 경로로 설정하십시오. 2. '경로'열의 '환경 변수'시스템에서 SDK 루트 디렉토리 경로를 설정해야합니다.
3.error : org.openqa.selenium.SessionNotCreatedException : 새 세션을 만들 수 없습니다. 3. 올바른 앱 경로를 설정하고 Appium 서버를 다시 시작해야합니다.
4. 모바일 애플리케이션에서 DOM 요소 또는 XPath 를 찾는 방법은 무엇입니까? 4. 'UIAutomatorviewer'를 사용하여 Android 애플리케이션의 DOM 요소를 찾으십시오.

 

"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."
Posted by 프리스케이터