BitBar: クラウド上の実機を使った XCUITest の始め方

この資料は、SmartBear の Blog で公開されている「How to Get Started with XCUITest Using Real Devices on Cloud」の日本語参考訳です。


Apple の XCUITest は、iOS アプリの開発者とテスターの間で急速に人気を集めています。UI Automation が非推奨となってから、このフレームワークによって多くのユーザーが新しいフレームワークを採用できるようになりました。XCUITest フレームワークの基盤である XCTest は数年前から Xcode の一部となっています。

この記事では、XCUITest の概要と、XCUITest を使用してクラウド サービス上のリモートの実機でテストを実行する方法を説明します。

iOS デバイス用に作成されたモバイル アプリやゲームは、多種多様なテスト自動化フレームワークを使用してテストできます。Apple は、XCTestXCUITest といった独自の「公式」テスト自動化フレームワークを、Xcode の一部として提供しています。Xcode と緊密に統合されているため、XCTest と XCUITest では、サブクラス、メソッド、アサーションを使用してテストケースを記述できます。

どちらのフレームワークも Bitbar Testing ソリューションでサポートされています。このブログでは、XCUITest を使用して Bitbar Testing でテストを実行する方法を詳しく説明します。

ステップ 1: 実機で無制限に並列化できるようにアプリを設定する

モバイルテストの同時実行は、効率と生産性、そしてこれらを向上させるテスト自動化の利用にとって、非常に重要です。Bitbar Public Cloud のどの iOS デバイスでもアプリを実行できるようにするため、確認しなければならないことは 1 つだけです。Scheme Editor を開き、Run 列ですべてのテスト ターゲットのチェックボックスがオン (有効) になっていることを確認します。

次に、テスト バンドルに含めるすべてのクラスが、テストのターゲット メンバーシップに含まれていることを確認します。

テスト クラス メンバーシップを含める

注意: Swift を使用している場合、アノテーション @testable はテストバ ンドルに必要なモジュールをすべてインポートします。

ステップ 2: 適切な方法で IPA とテスト パッケージをビルドする

次のステップでは、適切な方法でアプリケーションの IPA とテスト パッケージをビルドします。Bitbar Public Cloud にあるすべての iOS デバイスでアプリをインストール、起動、実行できるようにするには、以下の手順をすべて実行する必要があります。

これらのフレームワークに不慣れな場合は、 iOS アプリ テスト向けの XCUITest チュートリアルを参照してください。

どのフレームワーク (XCTest、XCUITest、その他) を使用しているかにかかわらず、テスト対象のアプリケーションをビルドし、Bitbar Testing クラウドにインポートする必要があります。iOS デバイスで実行可能な IPA を作成する方法を以下に示します。

Xcode で [Product] -> [Build for] -> [Testing] をクリックします。

Xcode でテスト用の IPA をビルドする

最後に、Bitbar Public Cloud のテスト実行用に IPA とテスト パッケージをビルドする場合は、常に実機をビルド ターゲットとしてアプリをビルドする必要があります。

ビルド ターゲットに実際の iOS デバイスを使用する

また、ビルドしたアプリは、ZIP ファイルにパッケージ化する必要があります。最も簡単な方法は、Xcode のプレビューを使用して、右の .app ファイルの上の [Show it in Finder] を右クリックします。

Xcode で右クリックしてファイルを zip する

Finder で .app ファイルを右クリックしてパスをコピーします。このパスはビルドごとに変更されないため、この操作は一度だけ行う必要があります。

テスト パッケージを zip する [Finder] ビュー

Bitbar Public Cloud の XCTest に必要な IPA パッケージ (zip パッケージ) の作成は自動化して、CI インテグレーションの一部とすることができます。ターミナルを開き、以下のように IPA を作成します。

$ mkdir /tmp/Payload $ cd /tmp/Payload $ cp -r /Users/username/Desktop/Build/Products/Debug-iphoneos/LocalizationDemo.app . # app path can be pasted $ cd .. $ zip --symlinks -qr "LocalizationDemo.ipa" Payload $ ls -lrt LocalizationDemo.ipa -rw-r--r-- 1 username staff 0 Dec 16 12:42 LocalizationDemo.ipa

注意: iPhone 5 または iPhone 5C (ARMv7 32 ビット プロセッサー) デバイス向けにビルドする場合、ビルドを作成する前に追加の手順が必要です。Xcode7 以降では、ARMv7s はデフォルトの $(ARCHS_STANDARD) に含まれないため、ターゲット ビルド アーキテクチャーとして追加する必要があります。

ステップ 3: Bitbar Testing にログインして XCUITest プロジェクトを作成する

上記の手順が完了したら、Bitbar Testing にログインし、[Projects] メニューから XCUITest project を作成します。

BitBar Cloud で XCUITest プロジェクトを作成する

ステップ 4: アプリケーションの IPA とテスト パッケージをアップロードする

まず、ビューの右上にある緑色のプラス ボタンをクリックします。これにより、テスト実行の作成ウィザードが表示され、テストに必要なすべてのパラメーターを適切に設定できます。テスト実行の作成ウィザードは、アプリケーション ファイル (IPA) とテスト パッケージ (.zip) の両方を要求します。

IPA ファイルを BitBar Cloud にアップロードする

アプリやテスト パッケージを変更したり、再度アップロードする必要がなく、以前アップロードした古いものをテスト実行に使用できるので、これは非常に便利な機能です。

BitBar Cloud 用テスト パッケージをアップロードする

ステップ 5: テスト実行に使用する任意の数の iOS デバイスを選択する

Bitbar Cloud で実行する最大の利点は、任意の数の iOS デバイスを使用してテストを同時実行できることです (同時に使用可能な iOS デバイスの数に制限はありません)。テスト実行の作成ウィザードのステップ 3 で、テスト実行に使用するデバイスを選択します。

BitBar Cloud で無制限に並列化

選択したら、画面の指示に従ってウィザードの残りの操作を完了し、テスト実行を開始します。右下にある緑色の [Start] ボタンは、テスト実行の作成ウィザードのすべてのフェーズで利用可能です。

結果を確認する

テスト実行後、まず、テスト実行用に選択したデバイスでどのように動作したかを確認します。最初のビューには、各デバイスのテストの成功/失敗の詳細が表示されます。このビューには、テスト実行に要した時間も表示されます。
BitBar Cloud のデバイス実行ビュー

Bitbar は、セッションの録画ビデオ (有効にする方法は Bitbar の担当者に確認してください)、スクリーンショット、ログ、パフォーマンス統計、デバイス セッションに関する詳細な情報を含む、テスト実行に関するすべての詳細を提供します。これらの情報はすべて、エンド ユーザーが使用する実際のデバイスで最適に動作するようにアプリを修正し、調整するのに役立ちます。

BitBar Public Cloud の詳細ビュー

BitBar Public Cloud のデバイス ログ

XCTest と XCUITest 向けの追加資料

XCTest/XCUITest の基本的な使い方をすばやく学びたい方は、「Getting Started with XCTest/XCUITest for iOS App Testing」ウェビナーをご覧ください。

XCTest と XCUITest をテストに使用する方法とベスト プラクティスに関する詳細は、SlideShare をご覧ください。

タイトルとURLをコピーしました