Uiautomator 테스트
최근 업데이트 | 안정화 버전 | 출시 후보 버전 | 베타 버전 | 알파 버전 |
---|---|---|---|---|
2024년 6월 26일 | 2.3.0 | - | - | 2.4.0-alpha01 |
종속 항목 선언
테스트 관련 종속 항목을 추가하려면 프로젝트에 Google Maven 저장소를 추가해야 합니다. 자세한 내용은 Google Maven 저장소를 읽어보세요.
다음과 같이 앱 또는 모듈의 build.gradle
파일에 필요한 아티팩트의 종속 항목을 추가합니다.
Groovy
dependencies { // Use to implement UIAutomator tests androidTestImplementation "androidx.test.uiautomator:uiautomator:2.4.0-alpha01" }
Kotlin
dependencies { // Use to implement UIAutomator tests androidTestImplementation("androidx.test.uiautomator:uiautomator:2.4.0-alpha01") }
종속 항목에 관한 자세한 내용은 빌드 종속 항목 추가를 참고하세요.
의견
제출하신 의견은 Jetpack을 개선하는 데 도움이 됩니다. 새로운 문제를 발견하거나 라이브러리 개선을 위한 아이디어가 있다면 Google에 알려 주세요. 새 문제를 제출하기 전에 이 라이브러리의 기존 문제를 살펴보시기 바랍니다. 별표 버튼을 클릭하여 기존 문제에 투표할 수 있습니다.
자세한 내용은 Issue Tracker 문서를 참고하세요.
버전 2.4
버전 2.4.0-alpha01
2024년 6월 26일
androidx.test.uiautomator:uiautomator:2.4.0-alpha01
가 출시되었습니다. 버전 2.4.0-alpha01에 포함된 커밋을 확인하세요.
API 변경사항
- 텍스트가 항상 키 누름이 아니라 직접 삽입되므로 매개변수가 사용되지 않으므로
Configurator#getKeyInjectionDelay
및setKeyInjectionDelay
가 지원 중단되었습니다. (I3bcc5)
버그 수정
- 동적 화면 재생 빈도를 고려하여
UiObject2
모션 이벤트 간의 지연을 업데이트했습니다 (예: 스무스 디스플레이). (I43f12) - 접근성 캐시를 주기적으로 무효화하여 특정 UI에서 접근성 노드 비활성으로 인한 결함을 줄였습니다. (I3be25)
- 오래된
UiObject2
에서toString
또는hashCode
를 호출할 때 발생하는StaleObjectException
을 수정했습니다. (I38ea1) - 불필요한
waitForIdle
호출을 건너뛰어UiWatcher
성능을 개선했습니다. (I8c65e) - 특히 각
Configurator
매개변수가 사용되는 시점을 명확히 하기 위해 javadoc 부정확성을 수정했습니다. (Ie10b1, I71631)
버전 2.3.0
버전 2.3.0
2024년 2월 21일
androidx.test.uiautomator:uiautomator:2.3.0
가 출시되었습니다. 버전 2.3.0에 포함된 커밋을 확인하세요.
2.2.0 이후 중요 변경사항
- 다중 디스플레이 지원: 여러 디스플레이에서 객체를 찾고 작업하기 위한 지원과 보조 디스플레이를 관리하는
UiDevice
메서드가 추가되었습니다. (Ie6544, I912cd) - 새 선택기:
- 커스텀 조건: 맞춤 대기 조건을 지원하기 위해
Condition
인터페이스를 노출하고 상응하는UiDevice#wait
,UiObject2#wait
,UiObject2#scrollUntil
메서드를 추가했습니다 (27c0ea, 099d6e). - 버그 수정 및 안정성
버전 2.3.0-rc01
2024년 2월 7일
androidx.test.uiautomator:uiautomator:2.3.0-rc01
은 변경사항 없이 출시되었습니다. 버전 2.3.0-rc01에 포함된 커밋을 확인하세요.
버전 2.3.0-beta01
2023년 12월 13일
androidx.test.uiautomator:uiautomator:2.3.0-beta01
가 출시되었습니다. 버전 2.3.0-beta01에 포함된 커밋을 확인하세요.
API 변경사항
- 일관성을 위해
UiObject2
백분율 기반 여백 메서드의 이름을setGestureMarginPercentage
및setGestureMarginsPercentage
로 변경했습니다. (I24435)
버그 수정
- 보조 디스플레이를 찾을 수 없거나 액세스할 수 없을 때 발생하는 오류를 개선했습니다. (116b23)
버전 2.3.0-alpha05
2023년 11월 1일
androidx.test.uiautomator:uiautomator:2.3.0-alpha05
가 출시되었습니다. 버전 2.3.0-alpha05에 포함된 커밋을 확인하세요.
API 변경사항
- 그리기 순서 (Z-색인) 정보를 노출하도록
UiObject2#getDrawingOrder
를 추가했습니다. (I5DFA4 참조) - 보조 디스플레이 회전을 가져오고 설정하고 고정하고 고정 취소하는
UiDevice
메서드를 추가했습니다. (I912cd)
버그 수정
- 스크롤의 끝을 감지할 수 없을 때
UiObject2#scrollUntil
에 재시도를 추가했습니다. (Ibac6f) UiDevice
가 다시 생성된 경우 오래된Instrumentation
인스턴스를 사용하는 문제를 수정했습니다. (I18cae)- 노드를 덤프할 때 표시 ID를 확인할 수 없는 경우 발생 가능한 NPE를 수정했습니다. (Icafcb)
- 클릭 가능하지 않은/스크롤 가능한 객체에서 클릭/스크롤을 실행할 때 표시되는 경고를 추가했습니다. (I4a5d9)
- 기본
UiObject2
스크롤 속도를 줄여 안정성을 개선했습니다. (I5e071)
버전 2.3.0-alpha04
2023년 7월 26일
androidx.test.uiautomator:uiautomator:2.3.0-alpha04
가 출시되었습니다. 버전 2.3.0-alpha04에 포함된 커밋을 확인하세요.
API 변경사항
- 상위 요소에 따라 객체를 찾을 수 있도록
By.hasParent
및By.hasAncestor
를 추가했습니다. (I93c36) - 객체의 힌트 텍스트를 검색하는
UiObject2#getHint
와 힌트 텍스트에 따라 객체를 선택하는By.hint
메서드를 추가했습니다. (Idd345) - 표시되는 디스플레이에 따라 객체를 선택할 수 있도록
By.displayId
를 추가했습니다. (I1825b) - ID로 디스플레이 크기를 찾는
UiDevice#getDisplayHeight(int)
및UiDevice#getDisplayWidth(int)
메서드를 추가했습니다. (Ie6544) - 이전 버전과의 호환성을 위해
wait(SearchCondition, long)
및wait(UiObject2Condition, long)
메서드를 다시 추가했습니다. (Iebfda) UiDevice#executeShellCommand
를 공개로 변경했지만 숨기는 대신 권장되지 않습니다. (Ic48a1)
버그 수정
- 속도보다 동작 정확도를 우선시하여 결함을 줄이기 위해
MotionEvent
삽입을 업데이트했습니다 (678ca3). - 성능 병목 현상을 식별하기 위해 리소스가 많은 메서드에 트레이스를 추가했습니다. (d17de3)
- UiAutomation 연결을 시작할 때 재시도 메커니즘을 추가했습니다 (048caf).
UiDevice#dumpWindowHierarchy
의 null 노드에서 발생 가능한 NPE를 수정했습니다. (b725eb)- 비공개 디스플레이에서 쿼리하거나 작업할 때 발생하는 예기치 않은 오류가 수정되었습니다. (985db6, 7053d4)
버전 2.3.0-alpha03
2023년 4월 19일
androidx.test.uiautomator:uiautomator:2.3.0-alpha03
가 출시되었습니다. 버전 2.3.0-alpha03에 포함된 커밋을 확인하세요.
API 변경사항
Until
의 내장 기능에만 의존하는 대신 맞춤 대기 조건을 허용하도록Condition
인터페이스를 노출하고 이 인터페이스를 수락하도록UiDevice#wait
및UiObject2#wait
메서드를 업데이트했습니다. (27c0ea)- 조건이 충족될 때까지 스크롤을 지원하고
UiScrollable
와의 패리티에 도달할 수 있도록UiObject2#scrollUntil
를 추가했습니다. (099d6e) - 기기 유형 간 순환을 용이하게 하기 위해
UiDevice#setOrientationPortrait
및setOrientationLandscape
를 추가했습니다. (e13cb7) - 객체 크기를 기준으로 여백 설정을 지원하는
UiObject2#setGestureMarginPercent
를 추가했습니다. 추가했습니다. (Ib8c77)
버그 수정
- SDK 18~22에서 가끔 잘못된 좌표를 사용하는
UiScrollable
메서드를 수정했습니다. (b53ece) UiObject2#setText
및clearText
가 SDK 18 및 19에서 텍스트를 수정하지 못하는 문제를 해결했습니다 (77e41d).UiWatcher
가 올바른 순서로 실행되지 않는 문제를 수정했습니다. (c85f92)UiDevice
방향 변경 후 기기 회전이 아직 완료되지 않을 수 있는 문제를 수정했습니다. (c6cea0)- 긴 클릭, 드래그, 손가락 모으기의 안정성이 개선되었습니다. (49572b, 3c619a)
버전 2.3.0-alpha02
2023년 1월 11일
androidx.test.uiautomator:uiautomator:2.3.0-alpha02
가 출시되었습니다. 버전 2.3.0-alpha02에 포함된 커밋을 확인하세요.
API 변경사항
- 라이브러리 전반에서 로깅을 재작업하여 더 많은 정보를 제공하고 발생 가능한 문제를 경고하고 일관성을 개선했습니다.
- 동시에 여러 키 누르기(예: POWER와 VOLUME_DOWN을 눌러 스크린샷 찍기)를 지원하는
UiDevice#pressKeyCodes
를 추가했습니다. (22e525) UiDevice#setCompressedLayoutHierarchy
를 추가하고UiDevice#setCompressedLayoutHeirarchy
를 지원 중단하여 메서드 이름의 오타를 수정했습니다. (4e2f65)UiAutomatorInstrumentationTestRunner
는 지원 중단된UiAutomatorTestCase
를 처리하고 더 이상 필요하지 않으므로 지원 중단됨으로 표시했습니다. (be6c85)- 사용자 동작을 더 잘 에뮬레이션하도록
UiObject2
MotionEvent
간의 지연 시간을 화면 재생 빈도의 두 배로 업데이트했습니다. (454450) - 여러 줄 텍스트 및 설명 일치 지원을 추가했습니다. (1625e6, b/255787130)
버그 수정
- 객체를 쿼리하거나 기다리는 동안 가끔 발생하는
StaleObjectException
문제를 수정했습니다. (4cbcc0) UiScrollable#scrollToBeginning
,scrollToEnd
,flingToBeginning
,flingToEnd
의 반환 값이 시작/끝에 도달했는지 여부를 표시하지 않는 문제를 수정했습니다. (d33e06)UiScrollable#scrollForward
및scrollBackward
메서드가 구성된 제한 시간을 무시하는 문제를 수정했습니다. (29e4f3)BySelector
복사 생성자가 깊이 선택기를 처리하지 않는 문제를 수정했습니다. (6c7b91)UiObject#pinchIn
및pinchOut
에서 잘못된 백분율 값 처리 문제를 수정했습니다. (01b973)- 드물지만 기본
UiAutomation
연결이 재설정되면 멀티 윈도우 지원이 중단되는 문제를 수정했습니다. (1bb956)
버전 2.3.0-alpha01
2022년 9월 7일
androidx.test.uiautomator:uiautomator:2.3.0-alpha01
가 출시되었습니다. 버전 2.3.0-alpha01에 포함된 커밋을 확인하세요.
API 변경사항
- 모든 공개 메서드에 nullness 주석을 추가했습니다.
- 더 원활한
UiObject2
동작을 위해MotionEvent
삽입을 짧은 지연이 있는 비동기식으로 전환했습니다. - 기다리는 동안 폴링 간격을 1000ms에서 100ms로 줄였습니다.
- 전원 버튼을 재정의하는 기기를 지원하기 위해
KEYCODE_WAKEUP
과KEYCODE_SLEEP
을 사용하도록UiDevice#wakeUp
과UiDevice#sleep
을 업데이트했습니다. - 여러 디스플레이에서 객체를 찾고 관리하기 위해
UiObject2#getDisplayId
와 관련 지원을 추가했습니다. - 좌표를 사용하여 점을 클릭하는
UiObject#click
및UiObject2#clickAndWait
메서드를 추가했습니다.
버그 수정
- 디스플레이 크기가 잘못 계산되어 특히 멀티 윈도우 모드에서 화면의 일부가 무시될 수 있는 문제를 수정했습니다. (Ifc016c)
UiDevice#takeScreenshot
에서 발생하던 스크린샷 확장 문제를 수정했습니다. (Id80ad6)Until.scrollFinished
및UiObject2#scroll
의 안정성을 개선했습니다. (I7b0595)- 엄격 모드
IncorrectContextUseViolation
경고를 수정했습니다. (Iffa6a0)