오예남

[Appium/Python] 모바일앱 테스트 자동화 _ Android permission allow 본문

Appium

[Appium/Python] 모바일앱 테스트 자동화 _ Android permission allow

오예남 2021. 12. 29. 17:11

Appium

 

자사에서 개발하는 모바일 App을 자동화 하기위해 Appium을 공부하는 중입니다.

Appium은 다양한 언어를 지원하지만, 저에게 가장 익숙한 Python으로 진행합니다.

 

오늘은 App 초기 설치후에 허용해줘야하는 Android permission 을 자동으로 체크하는 방법을 공유드릴게요. 

 

Appium Inspector

 

아직 초보라서 Appium Inspector 에서 Recording하고 해당 Python 소스를 가져와 사용해보고 있습니다.

처음에는 아래처럼 안드로이드 권한 팝업을 각각 Tab 하는 방식으로 진행했습니다.

 

el1 = driver.find_element_by_id("com.android.permissioncontroller:id/permission_allow_button")
el1.click()
time.sleep(2)
el2 = driver.find_element_by_id("com.android.permissioncontroller:id/permission_allow_button")
el2.click()
time.sleep(2)

el3 = driver.find_element_by_id("com.android.permissioncontroller:id/permission_allow_foreground_only_button")
el3.click()
time.sleep(2)

el4 = driver.find_element_by_id("com.android.permissioncontroller:id/permission_allow_button")
el4.click()
time.sleep(2)

el5 = driver.find_element_by_id("com.android.permissioncontroller:id/permission_allow_button")
el5.click()
time.sleep(2)

el6 = driver.find_element_by_id("com.android.permissioncontroller:id/permission_allow_button")
el6.click()

 

굳이 이렇게 하나씩 눌러야하나 싶어서 구글링해보니 역시나 해답이 나오더군요.

자동으로 Android Permission Allow 해주는 방법이 있었습니다.

방법은 굉장히 간단합니다.

caps['autoGrantPermissions'] = True

위와 같이 Capability에 항목을 추가하면 테스트를 진행할때 권한 팝업이 생성되지 않고 자동으로 앱이 실행됩니다.

 

자사 앱은 Native로 되어있어서 버튼마다 id가 존재하기때문에 어렵지 않게 진행할 수 있었지만, 나중에는 이미지를 캡처해서 Text를 뽑아내는 작업도 한번 해보고 내용 공유드리겠습니다.