Automation/Appium

Appium 2.0 시작 및 준비물

c29130811 2023. 5. 7. 15:14

꼭 한번쯤 듣고 가는 Application 자동화 툴 Appium..

 

사실 Appium 손 놓은지도 꽤나 되다 다시 접하려다 보니, 21년에 2.0이 나왔다더라...

공식 문서

https://appium.io/docs/en/2.0/

 

Appium Documentation - Appium Documentation

Appium Documentation Welcome to the Appium documentation! Appium is an open-source project and ecosystem of related software, designed to facilitate UI automation of many app platforms, including mobile (iOS, Android, Tizen), browser (Chrome, Firefox, Safa

appium.io

그렇다면 무엇이 달라졌는가?

우리 똑똑한 Chatgpt의 말씀 가라사대 Architecture 등.. 많이 바꼈다고 한다.

녀석 참 똘똘하기도 해라

뭐 사실 체감이야 얼마나 될지, 뭘 어떻게 써야할지 저런 차이점 보고 어떻게 알겠는가!

일딴 질러야지

 

준비물 

1. Python 설치 

Mac에도 기본으로 Python 이 설치 되어있는것으로 알고 있으나, 편의상 Python 버전들과 Virtual Env를 사용하고자, 

pyenv,  pyenv-virtualenv를 설치한다.

brew install pyenv pyenv-virtualenv

pyenv 공식

https://github.com/pyenv/pyenv

 

GitHub - pyenv/pyenv: Simple Python version management

Simple Python version management. Contribute to pyenv/pyenv development by creating an account on GitHub.

github.com

pyenv-vritualenv 공식

https://github.com/pyenv/pyenv-virtualenv

 

GitHub - pyenv/pyenv-virtualenv: a pyenv plugin to manage virtualenv (a.k.a. python-virtualenv)

a pyenv plugin to manage virtualenv (a.k.a. python-virtualenv) - GitHub - pyenv/pyenv-virtualenv: a pyenv plugin to manage virtualenv (a.k.a. python-virtualenv)

github.com

각각 설치를 진행한다.

pyenv-vertualenv로 appium을 만들어서, 설정했다.

아 Shell 설정으로 인해 잠깐 헤매긴 했는데, 공식 문서에서 Shell 설정을 꼭 참고하자

그리고 진행할 프로젝트에서 아래 Package를 설치한다.

pip install Appium-Python-Client

 

2. Appium

Appium Server는 NPM 모듈로 Global 설치하면 된다.

npm i -g appium@next

이것도 공식 문서 참고 https://github.com/appium/appium

 

GitHub - appium/appium: Cross-platform automation framework for all kinds of your apps built on top of W3C WebDriver protocol

Cross-platform automation framework for all kinds of your apps built on top of W3C WebDriver protocol - GitHub - appium/appium: Cross-platform automation framework for all kinds of your apps built ...

github.com

설치 완료 후, terminal에서 appium을 실행하면, 아래와 같이 서버가 띄워진다.



물론 Emulator or Simulator를 실행하기 위한 환경 조건은 따로 또 설정해야 한다. 

Android Studio와 Xcode 설치는 따로 이미 진행한 상태.

 

3. 코드 작성

물론 예제로 작성 된 코드인데, appPakcage, Devic 등의 capabilities는 내꺼에 맞는 것으로 입력해야 함.

import unittest
from appium import webdriver
from appium.webdriver.common.appiumby import AppiumBy

capabilities = dict(
    platformName='Android',
    automationName='uiautomator2',
    deviceName='Android',
    appPackage='com.android.settings',
    appActivity='.Settings',
    language='en',
    locale='US'
)

appium_server_url = 'http://localhost:4723'

class TestAppium(unittest.TestCase):
    def setUp(self) -> None:
        self.driver = webdriver.Remote(appium_server_url, capabilities)

    def tearDown(self) -> None:
        if self.driver:
            self.driver.quit()

    def test_find_battery(self) -> None:
        el = self.driver.find_element(by=AppiumBy.XPATH, value='//*[@text="Battery"]')
        el.click()

if __name__ == '__main__':
    unittest.main()

작성 완료 후 테스트 파일을 동작하면 우선 돌아갈꺼다.

python test.py

너무 손놓고, 다시 하려니까 시간이 꽤나 걸렸는데, 되는데로 이것도 업데이트나 해야겠다.

728x90

'Automation > Appium' 카테고리의 다른 글

Appium, WebdriverIO  (0) 2024.09.20
Scroll  (0) 2023.07.15
click, send_keys  (0) 2023.06.26
Appium - Browserstack  (0) 2023.06.03