[TOC]
Appium의 Python Client를 사용하여 테스트 스크립트를 작성하는 사용자들을 위한 콘솔 프로그램입니다. 본 Console은 Android 전용이며 IOS 관련 기능은 지원 하지 않습니다. 본 Console을 통해 Python Client의 여러 Methods들을 직접 테스트 해보실 수 있습니다.
Appium 설치를 위해서는 Oracle-Java8-Installer, Android-SDK, Node.js, NPM 의 설치 및 PATH설정이 선행되어 있어야 합니다. 위 항목이 아직 설치가 안되어 있다면 Appium Setup Manual을 통해 설치를 완료한 뒤 다음을 진행해 주시기 바랍니다.
Python 2.7 version을 이용해 주시기 바랍니다.
# Git 복제
$ git clone git@github.com:embian-inc/Appium-Python-Console.git
# APC 폴더로 이동
$ cd Appium-Python-Console
# 가상환경(venv) 생성
$ virtualenv venv
# 가상환경 활성화
# (venv)$ //가상환경 활성화 상태의 Prompt
$ . venv/bin/activate
# 비활성화
(venv)$ deactivate
$ pip install -r requirements.txt
# 디바이스 연결상태 확인
$ adb devices
List of devices attached
7387d0d19904 device # ok
#-*- coding: utf-8 -*-
import os, sys
from os.path import expanduser
##################################################################
# PLEASE DO NOT CHANGE THIS SECTION. INSTEAD, USE SYMLYNK
# use your personal directory. use symlink!
##################################################################
PROJECT_ROOT_PATH = os.path.split(os.path.dirname(os.path.abspath(__file__)))[0]
DOC_SAVE_DIR = os.path.join(PROJECT_ROOT_PATH, 'doc_file')
APK_FILE_DIR = os.path.join(PROJECT_ROOT_PATH, 'apk_files')
##################################################################
# Only Change following line (apk file name)
##################################################################
APK_FILE_NAME = 'your_apk_file_name.apk'
##################################################################
# DO NOT CHANGE FOLLOWING LINES WHEN THERE ARE ONLY ONE DEVICE
# following two arguments are automatically overrided
# when there is only one device attached to your pc
##################################################################
PLATFORM_NAME = 'Android'
DEVICE_NAME = '7387d0d19904'
PLATFORM_VERSION = '6.0'
# appium 실행
$ appium &
# 아래와 같은 메세지가 출력 되면 Appium 실행 완료
[Appium] Welcome to Appium v1.6.5
[Appium] Appium REST http interface listener started on 0.0.0.0:4723
$ python main.py
Name |
---|
help() |
clear() |
exit() |
page() |
action_table() |
manual_test(mode='h') |
methods() |
methods(num) |
driver |
-
help()
: 도움말. APC Command Methods 목록 출력 -
clear()
: Console Clear ( terminal의 clear 같은 기능 ) -
exit()
: APC 종료 -
page()
: 현재 페이지에서 Resource-id, Content-desc, Text, Action(Clickable, Scrollable) 값이 있는 요소들의 정보 출력- 출력 정보 : class명, resource_id, content-desc, text, bounds, (Clickable), (Scrollable)
-
action_table()
: 현재 페이지에서 Action 수행이 가능한 Element의 List를 Table형식으로 제공- 사용법
- action_table() - Class, Resource-id, Content-desc, Text, Bounds, Action Type, Context 출력
- action_table('d') - 위 항목에 추가로 Xpath를 함께 출력
-
manual_test(mode='h')
: 별도의 Test Script 작성없이 사용자와의 Interaction을 통해 간단한 test를 진행해 볼 수 있는 모드- mode='n' - UIAutomator를 통해 수행가능한 Action 정보 추출 [Default]
- mode='h' - UIAutomator와 Chromedriver를 통해 수행가능한 Action 정보 추출
-
methods()
: Python Client를 통해 사용할 수 있는 WebDriver Methods 리스트 출력 -
methods(num)
: methods()를 통해 출력된 리스트 중 특정 번호에 해당하는 Method의 상세 정보 출력- 사용법
- methods(94)
- 사용법
-
driver
: WebDriver Object- 사용법
- driver.contexts
- driver.find_element_by_id('RESOURCE_ID')
- 사용법
- Manual Test Mode가 실행되면 App의 현재 페이지 에서 수행 가능한 Elements의 목록이 Action List Table로 출력 됩니다.
- Action Table List에 표시된 정보를 보고 액션을 수행하길 원하는 Table row의 번호를 입력 합니다.
- 입력한 번호의 Action이 Input이 아닌 경우는 바로 액션을 수행하게 되고, Input 일 경우는 Input value를 한번더 입력하면 해당 액션을 수행하게 됩니다.
- 수행이 완료 되면 다시 Step 1 부터 진행되게 됩니다.