SlideShare une entreprise Scribd logo
1  sur  19
Télécharger pour lire hors ligne
Тестирование UI
в Xcode
Вадим Дробинин,

blueplatterapp.com / motivatemeapp.me
Обзор
• Существующие технологии
• UI Testing
• Находить UI-элементы и взаимодействовать с
ними
• Проверять UI-свойства и состояния
приложения
• UI Recording
2
Существующие технологии
• XCTest
• Accessibility
• UIAutomation
• Сторонние решения
3
XCTest
4
XCTest
• Xcode 5: Unit-тесты
• Xcode 6: Тесты производительности
• Xcode 7: UI-тесты
5
Accessibility
6
Accessibility
• VoiceOver
• UIKit и AppKit
• Возможность имитировать юзера,
взаимодействующего с приложением
7
UIAutomation
8
Сторонние решения для
unit-тестирования
• Kiwi
• Specta
• Quick
9
Сторонние решения
для UI-тестирования
• KIF
• Subliminal
• Calabash
10
Xcode 7
• Сocoa Touch UI Testing bundle
• iOS 9
• Privacy protection
• Cocoa UI Testing bundle
• OS 10.11
• Permissions for Xcode
Helper
11
APIs
• XCUIApplication
• XCUIElement
• XCUIElementQuery
12
Пример
1: let app = XCUIApplication()
2: app.launch()
3:
4: let addButton = app.buttons[“Add”]
5: addButton.tap()
6:
7: XCTAssertEqual(app.tables.cells.count, 1)
13
XCUIElement
• Типы: Button, Cell, Window, …
• Идентификаторы: Accessibility id, label, …
• Древовидная структура
• Уникальность
14
XCUIElement
• element.exists
• button.click() // OS X
• button.tap() // iOS
• textField.typeText("Text") // both
15
XCUIElementQuery
• let allButtons = app.descendantsMatchingType(.Button)
• let allButtons = app.buttons
• let cButtons = navBar.childrenMatchingType(.Button)
16
XCUIElementQuery
17
let cellQuery = cells.containingType(.StaticText,
.……………………………..identifier: “Франция")
Проект доступен на GitHub:
VisitedCountriesDemo
Спасибо за внимание!
Вадим Дробинин
twitter.com/valzevul
vadim@drobinin.com

Contenu connexe

Plus de Vadim Drobinin

Расширения для Safari: блокировщик контента в 50 строчек кода (Вадим Дробинин)
Расширения для Safari: блокировщик контента в 50 строчек кода (Вадим Дробинин)Расширения для Safari: блокировщик контента в 50 строчек кода (Вадим Дробинин)
Расширения для Safari: блокировщик контента в 50 строчек кода (Вадим Дробинин)Vadim Drobinin
 
Защищаем себя и пользователей — Вадим Дробинин (iOS Security Guide by Vadim D...
Защищаем себя и пользователей — Вадим Дробинин (iOS Security Guide by Vadim D...Защищаем себя и пользователей — Вадим Дробинин (iOS Security Guide by Vadim D...
Защищаем себя и пользователей — Вадим Дробинин (iOS Security Guide by Vadim D...Vadim Drobinin
 
Заботимся правильно (ResearchKit, CareKit, HealthKit) — Вадим Дробинин (Vadim...
Заботимся правильно (ResearchKit, CareKit, HealthKit) — Вадим Дробинин (Vadim...Заботимся правильно (ResearchKit, CareKit, HealthKit) — Вадим Дробинин (Vadim...
Заботимся правильно (ResearchKit, CareKit, HealthKit) — Вадим Дробинин (Vadim...Vadim Drobinin
 
Вадим Дробинин (Vadim Drobinin) — iMessage Apps: от стикеров до банковских пр...
Вадим Дробинин (Vadim Drobinin) — iMessage Apps: от стикеров до банковских пр...Вадим Дробинин (Vadim Drobinin) — iMessage Apps: от стикеров до банковских пр...
Вадим Дробинин (Vadim Drobinin) — iMessage Apps: от стикеров до банковских пр...Vadim Drobinin
 
Фриланс и мобильные приложения (Вадим Дробинин)
Фриланс и мобильные приложения (Вадим Дробинин)Фриланс и мобильные приложения (Вадим Дробинин)
Фриланс и мобильные приложения (Вадим Дробинин)Vadim Drobinin
 
UI и UX глазами разработчика (Вадим Дробинин)
UI и UX глазами разработчика (Вадим Дробинин)UI и UX глазами разработчика (Вадим Дробинин)
UI и UX глазами разработчика (Вадим Дробинин)Vadim Drobinin
 
Git для начинающих
Git для начинающихGit для начинающих
Git для начинающихVadim Drobinin
 

Plus de Vadim Drobinin (7)

Расширения для Safari: блокировщик контента в 50 строчек кода (Вадим Дробинин)
Расширения для Safari: блокировщик контента в 50 строчек кода (Вадим Дробинин)Расширения для Safari: блокировщик контента в 50 строчек кода (Вадим Дробинин)
Расширения для Safari: блокировщик контента в 50 строчек кода (Вадим Дробинин)
 
Защищаем себя и пользователей — Вадим Дробинин (iOS Security Guide by Vadim D...
Защищаем себя и пользователей — Вадим Дробинин (iOS Security Guide by Vadim D...Защищаем себя и пользователей — Вадим Дробинин (iOS Security Guide by Vadim D...
Защищаем себя и пользователей — Вадим Дробинин (iOS Security Guide by Vadim D...
 
Заботимся правильно (ResearchKit, CareKit, HealthKit) — Вадим Дробинин (Vadim...
Заботимся правильно (ResearchKit, CareKit, HealthKit) — Вадим Дробинин (Vadim...Заботимся правильно (ResearchKit, CareKit, HealthKit) — Вадим Дробинин (Vadim...
Заботимся правильно (ResearchKit, CareKit, HealthKit) — Вадим Дробинин (Vadim...
 
Вадим Дробинин (Vadim Drobinin) — iMessage Apps: от стикеров до банковских пр...
Вадим Дробинин (Vadim Drobinin) — iMessage Apps: от стикеров до банковских пр...Вадим Дробинин (Vadim Drobinin) — iMessage Apps: от стикеров до банковских пр...
Вадим Дробинин (Vadim Drobinin) — iMessage Apps: от стикеров до банковских пр...
 
Фриланс и мобильные приложения (Вадим Дробинин)
Фриланс и мобильные приложения (Вадим Дробинин)Фриланс и мобильные приложения (Вадим Дробинин)
Фриланс и мобильные приложения (Вадим Дробинин)
 
UI и UX глазами разработчика (Вадим Дробинин)
UI и UX глазами разработчика (Вадим Дробинин)UI и UX глазами разработчика (Вадим Дробинин)
UI и UX глазами разработчика (Вадим Дробинин)
 
Git для начинающих
Git для начинающихGit для начинающих
Git для начинающих
 

Тестирование UI в Xcode (CocoaHeads Moscow)