iOS 자동화 테스트 Xcode UI 프레임 워크
⚡ 스마트 요약
iOS 자동화 테스트 Xcode 테스트 주도 설계, 테스트, 구현 및 재테스트 주기에 따라 모든 테스트 케이스가 통과될 때까지 테스트 대상 애플리케이션에 대한 사용자 인터페이스 동작을 기록하고 재생합니다.
iOS 자동화 테스트를 사용한 Xcode
iOS 애플리케이션의 품질을 보장하려면 아래 그림에 나와 있는 테스트 주도 개발 프로세스를 따라야 합니다.
테스트 주도 개발(TDD)은 테스트 이 모델은 iOS 애플리케이션 테스트에 적용되며, 더 넓은 범위의 테스트 관행에 속합니다. 모바일 테스트이 모델에서 테스터는 아래의 4단계를 따라야 합니다.
- 디자인 : 테스트하고 싶은 대상을 파악하고 테스트 케이스를 설계하세요.
- 테스트 : 모든 테스트를 실행하고 테스트 케이스가 실패하는지 확인하십시오.
- 도구: Rev코드를 실행하고 테스트 실패의 원인이 된 버그를 수정하세요.
- 다시 테스트해 보세요: 테스트가 실패하면 설계 단계로 되돌아갑니다. 모든 테스트 케이스가 통과하면 코드는 테스트 대상 요구 사항을 모두 충족합니다.
설정 Xcode UI 테스트를 위한 프로젝트
iOS 테스트 프로그램을 만들려면 Mac이 필요합니다. Mac에는 다음 프로그램이 이미 설치되어 있어야 합니다.
- OS X — 맥용 운영 체제.
- Xcode IDE — iOS 개발 도구.
- 자동화된 테스트 프레임워크 — UI 자동화, OCUnit 등.
- iOS SDK 4 이상.
⚠️ 버전 참고: 위의 전제 조건은 다음에 나오는 두 개의 튜토리얼이 작성되었던 시대의 툴체인을 설명합니다. 최신 Mac에서는, Xcode XCTest 및 XCUITest 프레임워크는 기본적으로 제공되며, 별도의 UI 자동화 도구는 더 이상 설치에 포함되지 않습니다. 기존 설치 단계는 프레임워크 작동 방식을 설명하기 위해 아래에 그대로 유지되었으며, 최신 설치 방법은 그 아래에서 자세히 설명합니다.
UI 자동화 프레임워크를 사용하여 iOS 자동화를 만드는 방법
아래의 8단계는 자동화 도구를 사용하여 스크립트를 기록하고 테스트 대상 애플리케이션에 대해 재생하는 방법입니다.
1단계) 계측기 실행
X를 엽니다Code -> 개발자 도구 열기 -> 계측
2단계) 자동화 기기 추가
계측기 창에서 자동화 계측기를 선택합니다.
테스트 스크립트를 생성하려면 녹음하거나 테스트 시나리오 또는 수동으로 프로그래밍할 수도 있습니다.
3 단계) 빨간색 버튼을 누릅니다.
악기가 작동 중입니다. 즉시 녹음을 중지하세요. 녹음을 시작하려면 빨간색 버튼을 누르세요.
4단계) 새 스크립트 만들기
스크립트 창에서 [추가] > [만들기]를 클릭하여 새 스크립트를 만듭니다.
5단계) 대상을 선택하세요
당신은 지금 Trace 창. 선택 기능을 사용하세요. Target 아래로 당겨서 앱의 디버깅 버전으로 이동하세요.
이 경우 애플의 샘플 단순드릴다운 이 앱은 테스트 대상 애플리케이션으로 사용됩니다. 앱의 사용자 인터페이스(GUI)는 아래와 같습니다.
6단계) 스크립트 기록 시작
도구 상단이나 하단에 있는 녹음 버튼을 눌러 스크립트를 녹음하세요.
이제 테스트 대상 애플리케이션에서 몇 가지 UI 작업을 수행할 수 있으며 스크립트가 기록됩니다.
7단계) 스크립트 보기
스크립트를 보려면 TraceLog/EditorLog 드롭다운 메뉴를 열고 스크립트 로그 보기로 전환하세요.
녹음된 스크립트를 볼 수 있습니다.
8단계) 스크립트 재생
재생 버튼을 누르세요. 스크립트가 실행되고, 로그가 나타난 후 중지할 수 있습니다.
⚠️ 역사적 참고 사항: 이 여덟 단계에 사용된 자동화 장비는 더 이상 사용되지 않습니다. Xcode 8 버전 이후 삭제되었으므로 현재 버전에는 더 이상 존재하지 않습니다. Xcode 설치 과정입니다. 프레임워크 작동 방식을 기록하기 위해 단계별 설명이 여기에 남아 있습니다. 새로운 작업을 진행하려면 이 페이지 하단에 있는 XCUITest 워크스루를 참조하십시오.
OCUnit 프레임워크를 사용하여 iOS 자동화를 생성하는 방법
두 번째 방법은 테스트를 내부에 배치합니다. Xcode Instruments 내부가 아닌 프로젝트 자체를 개발하는 것입니다.
1단계) 시작 Xcode IDE, 유닛 테스트 번들 대상 추가
2단계) 새 단위 테스트 번들의 이름을 작성하세요. 위 그림과 같이 표시한 다음 마침을 클릭합니다.
3단계) 단위 테스트를 활성 대상으로 지정합니다.
4단계) 테스트 클래스용 그룹을 추가합니다.
5단계) 단위 테스트 클래스 추가
6단계) 이제 구현을 시작하세요
OCUnit은 Objective-C 언어를 사용하여 테스트 프로그램을 작성하므로 개발자는 해당 언어를 알아야 합니다. Xcode 버전 배송 단위 테스트 Objective-C와 Swift하지만 이 여섯 단계에서 보여지는 대상-클래스 구조는 변경되지 않습니다.
UIAutomation과 XCUITest의 차이점은 무엇일까요?
위에서 사용한 두 프레임워크 모두 애플 툴체인의 이전 세대에 속하기 때문에, 무엇이 이들을 대체했는지, 그리고 그 이유는 무엇인지 정확히 밝히는 것이 중요합니다.
| 아래 | UI 자동화(도구) | XCUITest |
| Status | 더 이상 사용되지 않음 Xcode 8 버전부터 이후 버전에서는 삭제되었습니다. | Apple에서 지원하는 UI 테스트 프레임워크 |
| 테스트가 있는 곳 | Instruments 내의 스크립트 trac전자 문서 | UI 테스트 번들 대상 내부에 있는 Xcode 프로젝트 |
| Language | JavaScript | Swift 또는 Objective-C |
| 테스트 러너 | 자동화 기기 | XCTest는 유닛 테스트와 동일한 실행기입니다. |
| 지속적인 통합 | 어색함 — Instruments를 통해 구동됨 | 명령줄에서 유닛 테스트와 함께 실행됩니다. |
| 녹음 | 악기 도구 모음의 녹음 버튼 | 녹화 버튼 Xcode 출력하는 편집기 Swift |
실질적인 결과는 XCUITest 스위트가 일반 프로젝트 소스 코드와 같다는 것입니다. 나머지 코드베이스와 마찬가지로 검토, 버전 관리 및 실행이 이루어지며, 이것이 바로 기록되는 주된 이유입니다.trace 모델이 사라졌습니다.
XCUITest를 사용하여 iOS UI 테스트를 작성하는 방법
Instruments의 8단계 기법에 해당하는 현대적인 표현은 간결합니다. 아래 구조는 녹음 후 재생이라는 동일한 개념을 반영하지만, 출력은 원본 파일이 아닌 소스 파일입니다. trace.
- 대상을 추가하세요. In Xcode 파일 > 새로 만들기 >를 선택하세요 Target UI 테스트 번들 템플릿을 선택하거나 새 프로젝트를 만들 때 테스트를 포함하는 옵션을 선택하세요.
- 생성된 테스트 클래스를 엽니다. Xcode 설정 및 테스트 메서드가 비어 있는 XCTestCase 서브클래스를 생성합니다.
- 테스트 중인 앱을 실행하세요. XCUIApplication 인스턴스를 생성하고 해당 인스턴스에서 launch 메서드를 호출하면 앱이 별도의 프로세스에서 시작됩니다.
- 문의하고 조치를 취하세요. 요소 쿼리를 통해 버튼, 테이블, 고정 텍스트와 같은 요소에 접근하고, 해당 요소에 대해 탭, typeText 또는 스와이프 이벤트를 호출할 수 있습니다.
- 주장하다. XCTAssert를 사용하여 작업 후 예상되는 요소가 존재하는지 확인하십시오.
- 운영. 다음에서 테스트를 실행하세요. Xcode 테스트 네비게이터를 사용하거나 명령줄에서 실행하여 동일한 테스트 스위트를 지속적 통합 환경에서 실행할 수 있습니다.
최소한의 테스트는 다음과 같은 형태를 따릅니다.
import XCTest final class AppUITests: XCTestCase { func testTappingFirstRowShowsDetail() { let app = XCUIApplication() app.launch() // act on the first row of the list app.tables.cells.element(boundBy: 0).tap() // verify that the next screen appeared XCTAssertTrue(app.staticTexts.firstMatch.waitForExistence(timeout: 5)) } }
레코더는 여전히 존재합니다. 테스트 메서드 안에 커서를 놓고 에디터에서 레코더 버튼을 누르면 이러한 쿼리가 자동으로 생성되는데, 이는 위 6단계의 직접적인 결과입니다. 더 넓은 원칙은 다음과 같습니다. 자동화 테스트 변경 없이 그대로 적용합니다.
UI 자동화 샘플 Code
이 글에는 몇 가지 소스 코드 예제가 포함되어 있습니다. 이 예제들을 통해 튜토리얼을 더욱 명확하고 빠르게 이해할 수 있을 것입니다.
UI 자동화 샘플 — UI 자동화 데모용 테스트 스크립트입니다.















