본문 바로가기
코딩/Mobile 자동화 (new)

appium 자동화 2024 - 2) Write the Test(Python/Pytest)

by salzzak 2024. 2. 20.
728x90

우선 Pycharm 을 설치하고 간단하게 동작하는지도 확인

ㄴ 잘 동작한다.
https://appium.io/docs/en/2.4/quickstart/test-py/
위 페이지에 있는 코드를 복붙해보자.

# test.py
import unittest
from appium import webdriver
from appium.options.android import UiAutomator2Options
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, options=UiAutomator2Options().load_capabilities(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()

 

ㄴ appium 텍스트에 빨간줄이 뜰텐데, 갖다대면 Appium-Python-Client 패키지 설치 가능
 

ㄴ 아니면 파이참 콘솔에 위와 같이 입력해서 설치
ㄴ 실행 전에 일단 , 터미널에서 appium 명령어로 앱피움 실행해두자.
그냥 무턱대고 실행해보면 ( Ctrl + R )

/Users/jett.lee/Desktop/JETT/자동화/mobile_automation_1/.venv/bin/python /Applications/PyCharm CE.app/Contents/plugins/python-ce/helpers/pycharm/_jb_unittest_runner.py --path /Users/jett.lee/Desktop/JETT/자동화/mobile_automation_1/practice.py 
Testing started at 8:21 pm ...
Launching unittests with arguments python -m unittest /Users/jett.lee/Desktop/JETT/자동화/mobile_automation_1/practice.py in /Users/jett.lee/Desktop/JETT/자동화/mobile_automation_1

Ran 1 test in 0.004s

FAILED (errors=1)

Error
Traceback (most recent call last):
  File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/unittest/loader.py", line 33, in testFailure
    raise self._exception
ImportError: Failed to import test module: /Users/jett
Traceback (most recent call last):
  File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/unittest/loader.py", line 129, in loadTestsFromName
    module = __import__(module_name)
             ^^^^^^^^^^^^^^^^^^^^^^^
ModuleNotFoundError: No module named '/Users/jett'

Process finished with exit code 1

ㄴ 에러가 발생되는데
 

ㄴ 아래와 같이 터미널에서 python test.py 로 실행하면 정상 실행이 된다.
 

ㄴ 먼가 에러가 나긴하지만.. 코드 복붙이라 해당되는 Element를 못찾아서 나는듯
일단 앱피움 연동 성공!
 
 
 
https://salzzak.tistory.com/109

여포 죽기 직전 만화

salzzak.tistory.com

 

댓글