엄지월드

appium 설치 및 실행 본문

QA/Katalon

appium 설치 및 실행

킨글 2022. 4. 27. 18:01

먼저, 필요한 파일들을 다운로드 해준다.

$curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py

$python3 get-pip.py

$ pip3 install Appium-Python-Client

 

실행을 위한 python 코드

# 안드로이드
import unittest
from appium import webdriver

# 아래 필요한 정보들을 기입해 줍니다.
desired_caps = {}
desired_caps['platformName'] = 'Android' 
desired_caps['platformVersion'] = '11' # 애뮬레이터에서의 해당 기기의 버전을 적어준다.  
desired_caps['deviceName'] = 'emulator-5554' # 애뮬레이터에서의 해당 기기의 이름을 적어준다.
desired_caps['app'] = '/Users/ejy/Downloads/com.musinsa.store_2022-04-11.apk' # 아래 테스트하고자 하는 app의 apk경로를 넣어준다.

driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps) # appium이 동작하고 있는 서버와, 위에서 작성한 환경설정 값을 넣어준다.
driver.switch_to.context('NATIVE_APP') # NATIVE_APP임을 명시해준다. 잘못 작성하면 에러날 수 있음.

wait = WebDriverWait(driver, 20)
wait.until(EC.element_to_be_clickable((By.ID, 'com.musinsa.store:id/button_confirm'))).click()
wait.until(EC.element_to_be_clickable((By.ID, 'com.musinsa.store:id/button_agree'))).click()

driver.quit()

 

좀 더 가다듬어진 jUnit 소스

# 안드로이드
import unittest
import os
from appium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC


class MusinsaTest(unittest.TestCase):

    def setUp(self):
        # Set up appium
        app = os.path.join(os.path.dirname(__file__), '/Users/gd.eom/Downloads/',
                           'com.musinsa.store_2022-04-11.apk')
        app = os.path.abspath(app)
        self.driver = webdriver.Remote(
            command_executor='http://127.0.0.1:4723/wd/hub',
            desired_capabilities={
                'app': app,
                'platformName': 'Android',
                'platformVersion': '11',
                'deviceName': 'emulator-5554'
            })

    def test_case(self):
 		
        driver = self.driver
        wait = WebDriverWait(driver, 20)
        wait.until(EC.element_to_be_clickable((By.ID, 'com.musinsa.store:id/button_confirm'))).click()
        wait.until(EC.element_to_be_clickable((By.ID, 'com.musinsa.store:id/button_not_agree'))).click()
        wait.until(EC.element_to_be_clickable(
            (By.ID, 'com.android.permissioncontroller:id/permission_allow_one_time_button'))).click()
        wait.until(
            EC.element_to_be_clickable((By.ID, 'com.android.permissioncontroller:id/permission_allow_button'))).click()
        wait.until(
            EC.element_to_be_clickable((By.ID, 'com.android.permissioncontroller:id/permission_allow_button'))).click()

    def tearDown(self):
        self.driver.quit()


if __name__ == '__main__':
    suite = unittest.TestLoader().loadTestsFromTestCase(MusinsaTest)
    unittest.TextTestRunner(verbosity=2).run(suite)

'QA > Katalon' 카테고리의 다른 글

apk 파일 다운로드 방법  (0) 2022.04.27
selenium 문법  (0) 2022.04.21
katalon xpath 활용  (0) 2020.02.19
Katalon Flushing content description cache 에러  (0) 2020.01.28
Katalon이란?  (0) 2019.11.29
Comments