使用 Xcode 執行 UI 自動化測試

Xcode 7 提供了 UI 自動化測試工具,想先初步了解它是如何運作建議讀者可以先瀏覽 UI Testing in Xcode – WWDC 2015 – Videos – Apple Developer,其中最吸引我的部分是,它直接與 Xcode 開發工具整合,而不用再另外使用 Instruments 裡的 Automation ,並可透過錄製的方式錄下使用者操作,然後重播使用者的操作,且可直接在模擬器與實體機器 (iOS 9 以上) 執行測試,另外撰寫測試的程式語言為開發人員常用的 Objective-C 或 Swift 程式語言。

要了解測試腳本要如何撰寫可以參考 UI Testing in Xcode 7 · Masilotti.com 與 Xcode 7 UI testing, a first look,以下是摘要的使用步驟:

(本範例放置 GitHub 空間 Link)

Step 1: 使用 Xcode 開啟要測試的專案後,File > New > Target,選取 Test 中的 iOS UI Testing Bundle。

xcode7_ui_1

 

Step 2. 選擇要撰寫的程式語言,可選擇 Swift 或 Objective-C (建議選擇 Swift)。

xcode7_ui_2

 

Step 3. 專案中會產生測試的腳本 (RefresherUITests.swift),我們會把要執行的測試步驟寫在裡面。

xcode7_ui_3

 

Step 4. 執行測試可點選 Product > Test 或直接快捷鍵 command + U,執行結果如下圖所示,綠色的部分表示 Pass,而紅色的部分表示 Fail。

xcode7_ui_4

 

Step 5. 執行後會產生報告,報告中會記錄執行的步驟、時間、截圖等資訊。

xcode7_ui_5

以及測試的覆蓋率 (需開啟  Gather Code Coverage 功能):

xcode7_ui_6

此時查看 Source code,右測顯示的數字表示測試過程中被執行的次數,而被標記為 0 且顯示紅色的地方表示測試過程尚未被覆蓋到,我們就可針對尚未覆蓋的的地方補測試。

xcode7_ui_7

 

我們也可透過 Terminal 執行測試,先切換至專案的目錄  (/iOS-UI-testing),輸入以下指令執行測試:

使用模擬器 (iPhone 6 with iOS 9.1):

xcodebuild test -project Refresher.xcodeproj -scheme Refresher -destination 'platform=iOS Simulator,name=iPhone 6,OS=9.1'

 

如要執行實機則帶入 Device ID:

xcodebuild test -project Refresher.xcodeproj -scheme Refresher -destination 'platform=iOS,id=be3835e3ce3d1cad33fb456ad44b78f34aadc3f3'

 

我們也可以透過 Xcode Server 定期來執行測試,可參考這篇 使用 Xcode Server 持續整合建置 。

 

更多資訊請參考:

1 . Appium vs. Xcode 7 UI Testing — Test Automation — Medium

2. joemasilotti/UI-Testing-Cheat-Sheet

3. Running Xcode tests from the terminal

 

廣告

One thought on “使用 Xcode 執行 UI 自動化測試

發表迴響

Please log in using one of these methods to post your comment:

WordPress.com Logo

您的留言將使用 WordPress.com 帳號。 登出 / 變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 / 變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 / 變更 )

Google+ photo

您的留言將使用 Google+ 帳號。 登出 / 變更 )

連結到 %s