uiautomatorviewer tutorial
이 자습서에서는 UIAutomator를 다운로드, 설치 및 구성하는 방법과 UIAutomatorViewer를 사용하여 Android 애플리케이션에서 요소를 검사하는 방법을 설명합니다.
Google은 자체 Android 테스트 자동화 도구를 제공했으며 UIAutomatorviewer도 그중 하나입니다. Selenium에 대한 아이디어가 있다면 UIAutomator를 이해하기 쉽습니다.
이 튜토리얼은 UIAutomator의 설치, 구성, 구성 요소, 명령, 샘플 테스트 프로그램 및 자주 묻는 몇 가지 FAQ와 함께 자세한 설명을 제공합니다.
탐험하자 !!
mp3 변환기에 최고의 YouTube입니다
학습 내용 :
UIAutomatorViewer 란 무엇입니까?
UIAutomatorViewer는 Android SDK 관리자의 일부로 제공되며 Android 애플리케이션의 UI 요소를 검사하는 데 도움이되는 UI 검사기 GUI (그래픽 사용자 인터페이스) 도구입니다.
애플리케이션을 자동화하려면 Android 애플리케이션 구성 요소의 리소스 ID, 클래스, 텍스트와 같은 로케이터가 필요하므로 애플리케이션을 검사하는 것이 중요합니다.
현재 화면의 XML 스크린 샷은 UIAutomatorViewer에 의해 촬영됩니다. 화면의 요소를 클릭하면 도구 오른쪽에 나열된 모든 속성과 함께 화면의 요소를 나타내는 데 사용되는 클래스에 대해 알 수 있습니다.
개체 계층은 개체가 정의 된 순서입니다. 예를 들면 ,클래스는 다른 클래스의 자식입니다. 도구의 오른쪽 상단에 배치됩니다.
UIAutomator를 사용하여 Android 애플리케이션에 대한 자동화 테스트 케이스를 작성할 수 있습니다. 이러한 테스트는 애플리케이션의 UI 레이어에서 수행됩니다. 테스터가 수동으로 수행하는 모든 작업을 시뮬레이션 할 수 있습니다. 예를 들면 , 로그인 확인 중.
설치
이 도구는 두 가지 방법으로 설치할 수 있습니다.
# 1) 안드로이드 스튜디오
Android 애플리케이션 테스트 / 개발 작업을 자주한다면 Android Studio를 설치할 수 있습니다.
모든 빌드, 플랫폼 및 SDK 도구가 있습니다. 따라서 Android Studio를 설치하면 모든 도구를 사용할 수 있습니다. 좋은 노트북 / PC가있는 경우에만 Android Studio를 사용하는 것이 좋습니다. PC에서 상당한 RAM을 차지하고 모든 요구 사항을 다운로드하고 설치하려면 4-5GB 데이터가 필요하기 때문입니다. 그러나 단 한 번의 클릭으로 모든 것을 얻을 수 있습니다.
# 2) 명령 줄 도구 만
테스트 관련 도구 만 필요한 경우 Android SDK 관리자 만 다운로드 할 수 있습니다.
이 튜토리얼에서는 첫 번째 방법이 매우 간단하므로 두 번째 방법을 따릅니다.
이것을 엽니 다 URL 머리글까지 아래로 스크롤 명령 줄 도구 만 그런 다음 컴퓨터 OS에 따라 적절한 다운로드 파일 링크를 클릭하십시오. 아래 스크린 샷을 참조하십시오.
프로그램을 실행하려면 Android SDK 도구, 플랫폼 도구, 플랫폼 및 빌드 도구가 필요합니다.
- 열다 도구 그리고 플랫폼 도구 링크 및 파일 다운로드.
- AndroidSDK라는 폴더를 만들고 여기에서 다운로드 한 도구와 플랫폼 도구를 추출합니다.
- 도구 내에서 android.bat 폴더에서 bat 파일을 클릭하거나 실행하면 Android SDK Manager 창이 표시됩니다. 필요한 플랫폼 버전을 선택하고 예를 들면 Android 25 관련 및 설치를 클릭하십시오. 필요한 Android API 버전을위한 플랫폼을 선택하고 도구를 빌드해야합니다.
- 이용 약관에 동의하십시오. 플랫폼 및 빌드 도구를 다운로드하고 설치합니다. 필요한 모든 파일이 AndroidSDK 폴더에 있는지 확인하십시오.
Android SDK와 함께 아래에 언급 된대로 시작하려면 몇 가지가 더 필요합니다.
Ant 도구 :
Apache 도구는 작성된 코드를 컴파일하고 빌드하는 데 사용됩니다. Ant 도구를 사용하여 Java Archive 파일 인 JAR 파일을 생성 할 수 있습니다. jar 파일을 사용하여 자동화 스위트 / 테스트 케이스가 실행됩니다.
=> Apache Ant 설치 여기
Eclipse IDE 및 Java :
PC에 설치된 코드와 Java를 빌드하려면 Eclipse IDE와 편집기가 있어야합니다. 그렇지 않은 경우 다음에서 최신 버전의 Eclipse를 설치하십시오. 여기
자동화 테스트 케이스를 작성하기위한 언어가 필요하며 테스트를 자동화하기 위해 Java를 사용합니다.
= > Java 설치 여기
구성
다음으로해야 할 일은 SDK 관리자를위한 환경 변수를 추가하는 것입니다. 이 도구는 환경 변수를 추가하지 않고도 사용할 수 있지만 문제는 시스템의 모든 곳에서 사용할 수 없다는 것입니다.
설치 한 폴더 내에서만 액세스 할 수 있습니다. 따라서 SDK에 대한 환경 변수를 추가하여 어디서나 액세스하는 것이 좋습니다. 이제 Ant, Android SDK 및 Java 용 환경 변수를 만듭니다. 모두 경로 변수에 추가하십시오.
이를 수행하려면 시스템-> 고급 시스템 설정-> 고급 탭-> 환경 변수-> 새로 만들기 클릭 시스템 변수 섹션에서. 이 탐색은 시스템마다 다를 수 있습니다.
경로에 대한 시스템 변수의 예 :
ANDROID_HOME : F : Workspace SDK
ANT_HOME : C : apache-ant-1.10.5
JAVA_HOME : C : Program Files Java jdk1.8.0_111
이제 아래 예제와 같이 이러한 모든 시스템 변수를 경로에 추가하십시오.
% ANDROID_HOME %; % ANT_HOME %; % JAVA_HOME %
을 치다 대다 버튼을 누른 다음 확인 단추.
이제 모든 설정이 준비되었습니다.
코드를 시작하기 전에 먼저 Android 기기에서 테스트를 실행할 준비가되었는지 확인해야합니다. 이를 위해 아직 활성화되지 않은 경우 개발자 옵션을 활성화해야합니다.
Android에서 개발자 옵션 활성화 :
- 전화 설정을 열고 '체계' 그리고 '전화 정보' 부분.
- 거기에서 찾을 수 있습니다 '빌드 번호' .
- 빌드 번호를 다섯 번 누릅니다.
- 개발자 옵션이 활성화되고 다음에서 볼 수 있습니다. '체계' .
- 개발자 옵션을 열고 활성화 'USB 디버깅' 과 “USB를 통해 앱 확인” .
Android에서 UI 요소를 검사하는 방법
아무 곳에서나 명령 프롬프트를 열고 uiautomatorviewer 명령을 입력하십시오. 명령에는 공백이 없으며 한 단어 일뿐입니다. SDK를 올바르게 구성한 경우 UIAutomator 창이 열립니다. 그렇지 않으면 설치 및 구성이 올바르게 완료되었는지 확인하십시오.
원으로 표시된 각 요소의 사용법을 하나씩 살펴 보겠습니다.
#1) 맨 위 리본에서 왼쪽에서 오른쪽으로 두 번째 아이콘 (예 : 스크린 샷 아이콘)을 클릭합니다. 표시된 이미지에서 빨간색 원으로 표시된 것으로 표시됩니다.
#두) 나중에 사용하기 위해 현재 스크린 샷과 UI 덤프 파일을 저장할 수 있습니다. 저장된 파일은 상단의 폴더 아이콘을 사용하여 열 수 있습니다.
#삼) 이 섹션에는 UI 계층과 관련된 모든 정보가 포함되어 있습니다. 제공된 검색 창을 사용하여 검색 할 수 있습니다. 계층 구조를 확장 / 축소합니다. 위쪽 및 아래쪽 화살표를 사용하여 개체 사이를 이동합니다.
# 4) '노드 세부 정보'는 UI 요소에 대한 정보를 얻는 곳입니다.
액세스 가능성, 가시성 및 클래스 이름, 텍스트, 리소스 ID, 콘텐츠 설명 등과 같은 다양한 로케이터와 같은 요소에 대한 모든 필요한 정보를 표시합니다.이를 사용하여 자동화에서 요소에 액세스해야합니다.
그러면 아래와 같은 화면이 나타납니다.
기기에서 Google 검색 창을 클릭하고 UIAutomatorViewer를 사용하여 다시 스크린 샷을 찍습니다.
PC에서 표시된 UI 구성 요소를 클릭하고 관찰합니다. 이 도구는 선택한 구성 요소를 감지하고 구성 요소 세부 정보를 표시합니다. 선택한 UI 구성 요소는 화면 왼쪽에 빨간색 상자로 강조 표시됩니다.
샘플 테스트 프로그램
Eclipse에서 테스트 프로젝트 및 클래스 만들기 :
PC에서 Eclipse IDE를 열고 파일-> 새로 만들기-> Java 프로젝트 . 프로젝트 생성 창이 열리면 프로젝트 이름을 입력하십시오. 예를 들면 “UiAutomator_Demo”. 모든 기본 설정을 그대로두고 마침 버튼을 두 번 클릭합니다. 이제 프로젝트가 생성되었습니다.
생성 된 프로젝트는 IDE의 왼쪽에 표시됩니다. 선택해야하는 프로젝트 이름을 마우스 오른쪽 버튼으로 클릭합니다. 신규-> 클래스 수업 이름을 입력하기 위해 열린 창에서 예를 들면 DemoTest 및 완료 버튼을 누르십시오.
프로젝트에 항아리 추가
테스트를 자동화하는 동안 사용하는 모든 라이브러리를 추가해야합니다.
#1) Eclipse에서 프로젝트 이름을 마우스 오른쪽 버튼으로 클릭 한 다음 '속성' .
#두) 속성이있는 새 창이 표시됩니다. 'Java 빌드 경로'.
#삼) 라이브러리 메뉴를 클릭하고 “외부 병 추가” 단추.
# 4) 파일 관리자 창이 열립니다. SDK가 설치된 폴더로 이동합니다. 고르다 android.jar 과 uiautomator.jar 적용 버튼을 누르고 추가 창을 닫습니다.
이 테스트에서는 검색 쿼리에 따라 결과가 표시되는지 확인하기 위해 Google 검색에서 작은 작업을 수행합니다.
다음은 단계를 수행하는 데 필요한 단계입니다.
- Google 검색 창을 클릭하세요.
- 검색어를 입력하십시오. 예를 들면 소프트웨어 테스팅 도움말
- Enter 버튼을 누르고 결과에 Software Testing Help 웹 사이트 링크가 포함되어 있는지 확인하십시오.
이것이 우리가 수동으로 수행하는 단계입니다.
동일하게 자동화합시다.
package com.android.uiautomation; import com.android.uiautomator.core.UiDevice; import com.android.uiautomator.core.UiObject; import com.android.uiautomator.core.UiSelector; import com.android.uiautomator.core.UiObjectNotFoundException; import com.android.uiautomator.testrunner.UiAutomatorTestCase; public class DemoTest extends UiAutomatorTestCase{ public void testApps() throws UiObjectNotFoundException, InterruptedException { getUiDevice().pressHome(); //Step1 UiObject searchBox = new UiObject(new UiSelector().resourceId ('com.google.android.googlequicksearchbox:id/search_edit_frame')); searchBox.clickAndWaitForNewWindow(); //step2 UiObject searchBar = new UiObject(new UiSelector().resourceId ('com.google.android.googlequicksearchbox:id/search_box')); searchBar.setText('SoftwareTestingHelp'); //step3 UiDevice device = getUiDevice(); device.pressEnter(); Thread.sleep(3000); //step4 UiObject results = new UiObject(new UiSelector().textContains('Software Testing Help')); //step5 if(results.exists()){ System.out.println('Passed: Result has been shown for software testing help'); } else{ System.out.println('Failed: Result were not shown for software testing help'); } getUiDevice().pressHome(); } }
위의 코드 스 니펫을 살펴 보겠습니다.
필요한 모든 모듈을 프로그램으로 가져 왔습니다.
1 단계 : Google 검색 창의 리소스 ID를 UiObject에 저장하고 클릭 연산을 수행합니다.
2 단계 : 검색 창에 텍스트를 입력하고 Enter 키를 누릅니다.
3 단계 : 검색 결과에 Software Testing Help 웹 사이트가 포함되어 있는지 확인합니다. 인쇄 '통과' 원하는 텍스트가 있으면 콘솔에 메시지를 보내고, 그렇지 않으면 '실패'메시지를 인쇄합니다.
명령 목록
# 1) 테스트 프로젝트 만들기
Android create uitest-project –t -p
이 명령은 Jar 생성에 추가로 사용될 build.xml 파일을 생성합니다.
-t 매개 변수는 Android 버전을 매개 변수로 사용합니다. 테스트 할 Android 버전을 지정해야합니다. 예: android-25 즉, Android 7 버전을 대상으로합니다.
-p 매개 변수는 프로젝트의 경로를 언급해야하는 곳입니다. 예: D : Workspace UiAutomator_Demo
-n은 프로젝트의 이름입니다. 예: UiAutomator_Demo
# 2) 소스 코드 빌드
앞서 언급했듯이 Apache ant를 빌드 도구로 사용하여 소스 코드를 컴파일하고 실행 가능한 JAR 파일을 생성합니다.
Ant 빌드
컴파일 시간에 오류가 없으면 콘솔에 메시지가 표시됩니다. '빌드 성공' .
그런 다음 실행 가능한 jar 파일을 오전 첫 번째 명령을 실행할 때 지정된 이름으로 프로젝트의 폴더. 코드에 문제가있는 경우 오류가 콘솔에 표시되고 JAR 파일이 생성되지 않습니다.
# 3) 생성 된 JAR 파일을 장치에 푸시
Adb 푸시 / data / local / tmp /
회사에서 묻는 셀레늄 인터뷰 질문
예: adb push D : Workspace UiAutomator_Demo bin UiAutomator_Demo.jar / data / local / tmp /
UiAutomator 테스트는 장치에 푸시 된 JAR 파일을 기반으로 실행되므로 먼저 jar 파일을 장치에 푸시해야합니다. 이를 위해 adb push 명령을 사용합니다.
이 명령은 두 개의 매개 변수를 사용합니다. 하나는 Android 장치로 푸시 할 파일이고 다른 하나는 대상 경로입니다.
이 명령의 두 번째 인수는 파일을 푸시해야하는 대상 경로입니다. 우리의 경우에는 / data / local / tmp / 여야합니다.
# 4) 테스트 실행
이제 모든 것이 준비되었습니다. 보류중인 유일한 것은 테스트를 실행하는 것입니다.
Adb 쉘 uiautomator runtest –c
예: adb 쉘 uiautomator runtest UiAutomator_Demo.jar –c com.android.uiautomation.DemoTest
클래스 규정 이름을 얻는 방법을 모르는 경우 아래 프로세스를 따르십시오.
Eclipse에서 프로젝트 드롭 다운을 클릭하고 테스트 코드가있는 클래스로 드릴 다운합니다. 여기 클래스는 DemoTest입니다. 클래스 이름을 마우스 오른쪽 버튼으로 클릭합니다. 창이 열리면 '정규화 된 이름 복사' .
명령 프롬프트에서이 명령을 누르 자마자 테스트가 실행되기 시작하고 이제 장치에서 수행되는 테스트를 볼 수 있습니다.
자주 묻는 질문
Q # 1) SDK의 경로 설정은 필수인가요?
대답: 아니요.하지만 환경 변수에 SDK 경로를 설정하지 않으면 SDK가 설치된 위치의 파일에만 액세스 할 수 있으므로 경로를 설정하는 것이 좋습니다.
따라서 어디서든 SDK에 액세스하려면 경로를 설정해야합니다. SDK뿐만 아니라 Java 및 ant에 대해서도 동일하게 따르는 것이 좋습니다.
질문 # 2) 스크린 샷을 찍는 동안 UIAutomatorViewer에 오류가 표시되는 이유는 무엇입니까?
두 파일을 비교하는 linux 명령
대답:
3 가지 가능한 이유가 있습니다.
#1) Adb가 장치를 인식하지 못했으며 장치 드라이버 소프트웨어를 업데이트해야합니다. 온라인에서 검색하여 설치할 수 있습니다. 예를 들면, LG 장치로 작업하는 경우 LG adb 드라이버를 검색 할 수 있습니다.
#두) 장치가 유휴 상태가 아닙니다. 비디오가 재생되거나 애니메이션이 표시되는 것과 같이 정적이 아닌 화면의 경우 uiautomatorviewer는 이러한 경우 스크린 샷을 찍을 수 없습니다. 따라서 스크린 샷을 찍을 때 장치 화면에 비디오 / 애니메이션이 표시되지 않는지 확인하십시오.
#삼) Android 버전 불일치 : SDK API 버전이 기기 Android 버전 API 수준보다 높거나 같은지 확인합니다. 그렇지 않은 경우 android.bat 파일을 클릭하거나 SDK 관리자를 통해 SDK를 업데이트 할 수 있습니다.
질문 # 3) UIAutomatorViewer에 대한 공식 문서가 있습니까?
대답: 예, Google은 선적 서류 비치 UIAutomatorViewer 용. 모든 주제에 대해 완전히 다루지는 않지만이 도구에 대한 아이디어를 얻을 수 있습니다.
질문 # 4) adb devices 명령이 장치를 표시하지 않는 이유는 무엇입니까?
대답: 장치에서 개발자 옵션이 활성화되어 있는지 확인하십시오. 사용하려면 개발자 옵션 Android 기기에서 아래 절차를 따르세요. 장치 설정으로 이동하여 전화 정보 . 빌드 번호를 5 번 탭합니다. 토스트 메시지 '당신은 이제 개발자입니다' 표시되고 개발자 설정 옵션이 추가됩니다.
Q # 5) 왜 Adb가 여전히 내 장치를 인식하지 못합니까?
대답: 드라이버 문제가있을 수 있습니다. 장치를 감지하는 데 도움이되는 드라이버를 업데이트해야합니다.
아래 단계에 따라 드라이버를 업데이트하십시오.
#1) 시스템을 열고 장치 관리자를 엽니 다. 마우스 오른쪽 버튼을 클릭하면이 설정을 얻을 수 있습니다. 시작 버튼 .
#두) 장치 관리자를 열면 Android 장치 / 휴대용 장치에서 장치 이름을 찾을 수 있습니다.
#삼) 장치 이름을 마우스 오른쪽 버튼으로 클릭하고 드라이버 업데이트를 선택합니다.
# 4) 내 컴퓨터에서 드라이버 소프트웨어 찾아보기 옵션을 클릭하고 내 컴퓨터의 장치 드라이버 목록에서 직접 선택을 클릭합니다.
# 5) 설치하기에 적합한 드라이버 중 하나를 선택하고 다음 버튼을 누르십시오. 장치 드라이버가 성공적으로 설치되면 아래와 같은 메시지가 표시됩니다.
# 6) 시스템에 적용된 하드웨어 변경 사항이므로 메시지가 표시되면 시스템을 다시 시작해야 할 수 있습니다.
# 7) 장치가 인식되지 않는다고 생각되면 먼저 모드 연결을 변경할 수 있습니다. 이러한 모드는 장치를 시스템에 연결할 때 장치에 표시됩니다.
예: 파일 전송, 사진 전송, MIDI1.
문 # 6) Android 애플리케이션의 모든 UI 구성 요소 세부 사항을 볼 수 있습니까?
대답: UIAutomatorViewer에서 거의 모든 UI 구성 요소의 세부 정보를 볼 수 있습니다. Android에서 제공하는 기본값 이외의 UI / Layout을 사용하는 경우 UIAutomatorViewer 도구에서 볼 수 없습니다.
개발자에게 기능을 자동화하기 위해 UI 요소에 식별자를 입력하도록 요청할 수 있습니다. 예를 들면 리소스 ID, 콘텐츠 설명 등을 입력합니다.
문 # 7) Appium 도구는 UIAutomator 도구를 사용합니까?
대답: 예.
질문 # 8) 이 도구는 Android가 아닌 Windows / iOS와 같은 다른 장치를 지원합니까?
대답: 아니요, 이것은 Google에서 개발했으며 Android 기기 만 지원합니다.
질문 # 9) UIautomator Android 란 무엇입니까?
대답: UIAutomator는 Android 애플리케이션 테스트 케이스를 자동화하는 데 도움이되는 도구 / 프레임 워크입니다.
질문 # 10) UIAutomator를 어떻게 설정합니까?
대답: 자세한 설명은이 자습서의 설치 섹션을 참조하십시오.
문 # 11) Appium의 UIAutomator 란 무엇입니까?
대답: UiAutomator는 Android 애플리케이션 테스트를 자동화하기 위해 Android에서 제공하는 테스트 프레임 워크 / 도구이며 Appium은 내부적으로이를 내부적으로 사용합니다.
문 # 12) UIAutomator에서 요소를 어떻게 검사합니까?
대답: 설정이 완료되면 명령 프롬프트를 열고 UIAutomatorViewer 명령을 입력하십시오. PC에 창이 표시됩니다. 모바일을 PC에 연결하고 상단의 장치 스크린 샷 (uiautomator 덤프) 두 번째 아이콘을 클릭합니다.
해당 장치 이후 현재 화면이 검사기 창에 표시됩니다. 요소 중 하나를 클릭하면 해당 요소에 대한 정보를 얻을 수 있습니다. 자세한 설명은 필수 UI 요소 검사 부분.
결론
요약,
- UIAutomatorViewer는 모든 애플리케이션의 UI 레이어를 검사하는 그래픽 사용자 인터페이스 도구입니다.
- 테스트중인 애플리케이션의 UI 구조를 알아야 애플리케이션의 UI 레이어에서 사용자 상호 작용을 더 쉽게 자동화 할 수 있습니다.
- UIAutomator는 XML 스냅 샷과 스크린 샷을 사용합니다. 레이아웃 계층 구조를 알 수 있습니다.
- Android 애플리케이션의 UI 테스트를 자동화하려면 먼저 앱과의 상호 작용을 수행하기 위해 일부 로케이터를 식별해야합니다. 예: 클래스 이름, 리소스 ID, 텍스트.
- Adb는 Android Debug Bridge라는 SDK의 일부입니다.
- 다음 명령을 입력하여 UIAutomatorViewer를 열 수 있습니다. uiautomatorviewer 명령 줄에서.
- 이 도구는 무료이므로 누구나 사용할 수 있으며 신뢰할 수 있습니다.
행복한 독서 !!
추천 도서
- Android 장치의 Chrome 브라우저에서 웹 앱을 자동화하는 방법
- Appium을 사용하여 Android 장치에서 기본 앱 자동화
- Android 애플리케이션 테스트를위한 11 가지 최고의 자동화 도구 (Android 앱 테스트 도구)
- GUI 테스트 자동화를위한 30 가지 최고의 GUI 테스트 도구 (2021 목록)
- Katalon Studio 튜토리얼 : 기다려온 무료 테스트 자동화 도구
- Ranorex Studio 실습 검토 : 올인원 테스트 자동화 솔루션
- SeeTest 자동화 자습서 : 모바일 테스트 자동화 도구 가이드
- TestProject 테스트 자동화 도구 실습 검토 자습서