don't stop believing

Appium Device 연결 (on Windows) 본문

Testing Automation/Appium

Appium Device 연결 (on Windows)

Tongchun 2018. 7. 27. 15:58

Appium을 설치하고 가상 디바이스 (Android Emulator)에서 실행해 봤다면 이제 실제 폰(Device)에서도 실행해 봐야겠죠.


먼저 PC에 디바이스를 연결합니다.

저는 3개를 연결했습니다.



LG V10이고 Android 버전은 6.0이네요.

가운데는 Nexus 5X입니다. 버전은 6.0.1이구요.

마지막으로 SOL입니다. 버전은 5.0.2입니다. 


USB 연결은 PTP(Picture Transfer Protocol)로 선택해야 합니다.



마지막으로 개발자 모드를 환성화 시키고 UBS 디버깅에 체크되어 있야 합니다.



PC에 디바이스가 연결이 되었다면 adb로 연결 정보를 확인해 봅시다.

adb(Android Debug Bridge)는 안드로이드 SDK에 포함되어 있는 기능으로, 안드로이드 디버그에 관련된 툴입니다.

adb로 디바이스 접속 및 관리, 어플리케이션 설치, 시스템 로그 출력, shell 접속 등이 가능합니다.


프롬프트(cmd)를 열고 adb devices라고 입력합니다.



adb는 데몬(서버) 형태로 존재합니다. 따라서 adb명령을 입력했을때 adb 서버가 실행되어 있지 않다면 데몬을 먼저 실행하고 명령을 수행합니다. 붉은색 영역이 adb가 실행된 부분이고 파란색 영역이 device 명령에 대한 출력 입니다.


정상적으로 디바이스가 연결되어 있다면 adb는 연결되어 있는 디바이스의 udid를 출력합니다.

udid는 기억하세요. Appium의 Desired Capabilities 항목에 들어가야 합니다.


LGF600Kb1134738이 LG V10입니다.

0256edd60a7ec448은 Nexus 5X, 그리고 2a661df0이 SOL 입니다.


이제 Appium을 실행시키고 Inspector를 엽니다.

디바이스에 Checkers 앱을 설치하고 실행시켜 보겠습니다. 앞서 진행한 Appium Android Inspector 실행 (with Emulator)에서 Nexus 6 Emulator에 실행했던 설정을 참고해서 진행하겠습니다.


V10(LGF600Kb1134738)에 먼저 적용해 보겠습니다.

platformVersion은 6.0으로 변경했구요. deviceName은 V10으로 넣어주고, udid를 추가해 LGF600Kb1134738 로 넣었습니다.


onReset은 Appium이 종료되면 디바이스에서 실행된 앱을 어떻게 처리할 건지에 대한 설정입니다. Reset 계획이라고 하는데 default는 Appium이 종료되면 앱도 종료되고 앱 데이터도 지워집니다. 다만 설치된 앱을 그대로 있습니다.

noRest이 true이면 Appium이 종료되도 실행됐던 앱은 종료되지 않으며 실행된 그상태 그대로 있게 됩니다.



Json으로 작성한건 아래와 같습니다.


{
  "platformName": "Android",
  "platformVersion": "6.0",
  "deviceName": "V10",
  "app": "D:\\Test_Appium\\Checkers\\Checkers_v4.0.5_apkpure.com.apk",
  "automationName": "Appium",
  "newCommandTimeout": 300,
  "appPackage": "com.dimcoms.checkers",
  "appActivity": "com.dimcoms.checkers.MenuActivity",
  "udid": "LGF600Kb1134738",
  "noReset": true
}

설정이 되었으면 Start Session을 클릭합니다.



실행이 잘 되네요. 


근데 한가지 문제가 있습니다. Emulator에서 실행한 것 처럼 Inspector의 왼쪽 폰 화면이 Landscape형태여야 하는데 돌아가지 않네요.

이건 Device 설정문제인것 같습니다. 확인해 봐야겠네요.


Inspector 상단의 X (종료)클릭하고 Session 을 종료합니다. Save As... 를 클릭해 저장해 줍니다.


다음으로 Nexus 5X입니다.

LG V10에서 했던 설정에서 platformVersion과 deviceName, 그리고 udid를 변경해 줍니다.

이번에는 onReset 설정을 하지 않았습니다.



Json Representation은 아래와 같습니다.


{
  "platformName": "Android",
  "platformVersion": "6.0.1",
  "deviceName": "Nexus 5X",
  "app": "D:\\Test_Appium\\Checkers\\Checkers_v4.0.5_apkpure.com.apk",
  "automationName": "Appium",
  "newCommandTimeout": 300,
  "appPackage": "com.dimcoms.checkers",
  "appActivity": "com.dimcoms.checkers.MenuActivity",
  "udid": "0256edd60a7ec448"
}

Start Session을 클릭해 실행해 줍니다.



잘 실행되네요. Inspector의 화면도 Landscape로 잘 뜹니다.


마지막으로 SOL 입니다.

설정을 제사용합니다. platformVersion은 5.0.2로 변경해 주고, deviceName도 SOL로 벼경해 줍니다.

udid도 2a661df0로 변경해 줍니다.


이번에는 fullReset을 true로 줬음니다. fullReset이 true이면 Appium이 종료되면 앱도 종료되고, 데이터도 지워지고, 설치되었던 앱도 삭제(uninstall) 됩니다.



Json Representation은 아래와 같습니다.


{
  "platformName": "Android",
  "platformVersion": "5.0.2",
  "deviceName": "SOL",
  "app": "D:\\Test_Appium\\Checkers\\Checkers_v4.0.5_apkpure.com.apk",
  "automationName": "Appium",
  "newCommandTimeout": 300,
  "appPackage": "com.dimcoms.checkers",
  "appActivity": "com.dimcoms.checkers.MenuActivity",
  "udid": "2a661df0",
  "fullReset": true
}


Start Session을 클립해 줍니다.



디바이스와 연결 잘 되네요.


Comments