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

1) 앱피움(Appium)이란 무엇입니까?

Appium은 무료로 배포되는 오픈 소스 모바일 애플리케이션 UI 테스팅 프레임 워크입니다.

 

2) 앱피움(Appium)  기능을 열거 하세요

Appium 기능은

  • 웹 테스트
  • 네이티브 및 하이브리드 모바일(스마트폰/태블릿) 자동화를 위한 크로스 플랫폼 제공
  • JSON 유선 프로토콜 지원
  • 앱을 다시 컴파일 할 필요가 없습니다.
  • 물리적 장치와 에뮬레이터 모두에서 자동화 테스트 지원
  • 모바일 장치에 구애받지 않습니다

3) APPIUM을 사용하기 위한 전제 조건을 나열하세요

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

  • 안드로이드 SDK
  • JDK
  • TestNG
  • 이클립스(Eclipse)
  • 셀레늄 서버 JAR
  • 웹 드라이버 언어 바인딩 라이브러리(Webdriver Language Binding Library)
  • Windows 용 APPIUM
  • Google Play의 APK 앱 정보
  • js


4) Appium 사용의 제한 사항을 나열하세요

  • Appium은 4.2 미만의 Android 버전 테스트를 지원하지 않습니다
  • 하이브리드 앱 테스트에 대한 제한적인 지원. 
  • 예를 들어, 웹앱에서 기본 애플리케이션으로 또는 그 반대로 애플리케이션의 전환 동작을 테스트 할 수 없음
  • Microsoft Windows에서 Appium Inspector를 실행할 수 없음

5) 모바일 애플리케이션에서 DOM 요소 또는 xPath를 찾는 방법을 설명하십시오.

DOM 요소를 찾으려면 "UIAutomateviewer"를 사용하여 Android 애플리케이션의 DOM 요소를 찾으십시오.

 

6) Appium의 설계 개념을 설명 하세요

  • Appium은 Node.js를 사용하여 작성된 "HTTP 서버"입니다.
  • 플랫폼을 이며 웹 드라이버 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(4.1, 4.1.1) 이상용 Google UIAutomator
    • Android API 레벨 15(4.0.3, 4.0.4) 이하의 Selendroid

7) Appium은 어떤 언어를 지원합니까?

Appium은 Java, Node.js가 포함 된 JavaScript , Python, Ruby, PHP, Perl 등과 같은 HTTP 요청을 지원하는 모든 언어를 지원합니다.

 

8) Appium의 장단점을 설명 하시겠습니까?

장점 :

  • 플랫폼에 관계없이 프로그래머를 위해 자동화하고 있습니다 (Android 또는 iOS). 모든 복잡성은 단일 Appium 서버에 유지됩니다.
  • 크로스 플랫폼 모바일 테스트의 문을 열어 동일한 테스트가 여러 플랫폼에서 작동 함을 의미합니다.
  • Appium은 자동화 친화적으로 만들기 위해 앱에 추가 구성 요소가 필요하지 않습니다.
  • 하이브리드, 웹 및 네이티브 모바일 애플리케이션을 자동화 할 수 있습니다

단점 :

  • Appium을 사용하면 여러 iOS 시뮬레이터에서 동시에 스크립트를 실행할 수 있습니다
  • Android SDK 플랫폼, API 16(4.1, 4.1.1) 이상 만 지원하고 이전 API를 지원하기 위해 Selendroid라는 다른 오픈 소스 라이브러리를 사용하는 Android Automation 용 UIAutomator를 사용합니다.

9) APPIUM INSPECTOR 란 무엇입니까?

Selenium IDE 레코드 및 재생 도구와 유사하게 Appium에는 레코드 및 재생을 위한 "검사기(inspector)"가 있습니다. DOM을 검사하여 기본 응용 프로그램 동작을 기록하고 재생하며 원하는 언어로 테스트 스크립트를 생성합니다.

그러나 Appium Inspector는 Windows를 지원하지 않으며 옵션에서 UIAutomator 뷰어를 사용합니다.

 

10) Appium 시험을 작성하기 위한 기본 요구 사항은 무엇입니까?

필요한 Appium 테스트를 작성하려면

  • 드라이버 클라이언트(Driver Client) : Appium은 사용자 인 것처럼 모바일 응용 프로그램을 구동합니다.
  • 클라이언트 라이브러리를 사용하여 테스트 단계를 마무리하고 HTTP를 통해 Appium 서버로 보내는 Appium 테스트를 작성합니다.
  • 앱피움 세션(Appium Session) : 세션에서 Appium 테스트가 수행되므로 세션을 먼저 초기화해야합니다.
  • 한 세션에 대해 자동화가 완료되면 종료하고 다른 세션을 기다릴 수 있습니다.
  • Desired Capabilities : Appium 세션을 초기화하려면 PlatformName, PlatformVersion, Device Name 등과 같은 "Desired Capabilities"으로 알려진 특정 매개 변수를 정의해야합니다.
  • Appium 서버에서 필요한 자동화 종류를 지정합니다.
  • 드라이버 명령(Driver Commands) : 표현식(expression)을 사용하여 테스트 단계를 작성할 수 있습니다.

 

11) Appium 사용시 발생할 수있는 오류는 무엇 입니까?

Appium에서 발생할 수있는 가능한 오류는 다음과 같습니다.

  • 오류 1 : 다음과 같은 원하는 기능이 필요하지만 제공되지 않았습니다.
  • 장치 이름(Device Name), 플랫폼 이름(platformName)
  • 오류 2 : adb를 찾을 수 없습니다. 
  • Android SDK 루트 디렉토리 경로로 ANDROID_HOME 환경 변수를 설정하십시오.
  • 오류 3 : openqa.selenium.SessionNotCreatedException : 새 세션을 만들 수 없습니다
  • 오류 4 : 모바일 애플리케이션에서 DOM 요소 또는 XPath 를 찾는 방법은 무엇입니까?

12) Appium에서 테스트를 실행하려면 서버 시스템이 필요 합니까?

아니요, Appium에서 테스트를 실행하기 위해 서버 시스템이 필요하지 않습니다.

Appium은 테스트 머신이 Appium을 실행하고 전체를 자동화하는 테스트 서버에 연결하는 2 계층 아키텍처를 지원합니다. 테스트가 실행되는 동일한 시스템에서 Appium을 실행할 수 있습니다.

 

13) Appium으로 테스트하는 동안 Javascript를 사용하여 내 앱과 상호 작용할 수 있습니까?

예, Javascript를 사용하는 동안 앱과 상호 작용할 수 있습니다.

명령이 Appium에서 실행될 때 서버는 스크립트를 익명 함수로 래핑 된 앱으로 보내 실행되도록합니다.

 

14) Appium으로 테스트하기 가장 어려운 시나리오는 무엇입니까?

Appium으로 테스트하기 가장 어려운 시나리오는 데이터 교환입니다.

 

15) Appium을 사용하는 동안 멀티 스레드 환경에서 테스트를 실행할 수 있습니까?

예, 멀티 스레드 환경에서 테스트를 실행할 수 있지만 동일한 Appium 서버에 대해 동시에 하나 이상의 테스트를 실행하지 않아야합니다.

 

16) Android에서 Appium을 사용하여 자동화하려면 앱의 .apk가 필요합니까? 아니면 workspace에 앱(소스 코드)이 필요합니까?

Android에서는 Appium을 사용하여 자동화하기 위해 .apk 파일 만 필요합니다.

 

17) Appium 패키지 마스터 란 무엇입니까? 패키지는 어떻게 만드나요?

Appium 패키지 마스터는 appium 패키지를 관리하고 작성하는 도구 세트입니다.

예를 들어 패키지를 만들려면 코드를 사용할 수 있습니다

 

# es7 / babe1 사용

Gulp create-package –n <package-name>

 

# 일반 es5

Gulp create-package ---nobabe1 –n <package-name>

패키지는 out/<package-name>에 생성됩니다.

 

18) Appium에서 테스트 프레임워크가 어떻게 지원되는지 설명하십시오.

Appium은 테스트 프레임 워크를 지원하지 않으므로 테스트 프레임 워크를 지원할 필요가 없습니다.

Appium은 원하는 모든 프레임 워크와 함께 사용할 수 있습니다.

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