Sauce LabsとXCUITestの連携

This page is not available in the language you requested. You have been redirected to the English version of the page.
Link to this page copied to clipboard
Not for use with personal data

Axe DevTools Mobileを使用すると、UIテストでアクセシビリティの問題を見つけることができます。Sauce Labsと統合してテストを実施し、ユーザーがアプリを実際に見る前に、その体験に関する洞察を得ることができます!Sauce Labsは、最大のクラウドベースのテストプラットフォームであり、様々なデバイスとシミュレータの構成をホスティングし、デジタルへの自信を構築します。現在のビルド自動化において、Sauce上でテストを実行するように設定して、問題が本番に到達する前に把握しましょう。

以下は、Axe DevTools MobileおよびSauce Labsと統合したUIテストを実行するためのガイドです。

前提条件

  1. 配信のためにアプリを準備します。Sauce Labsでのテストは実際のデバイスで行われるため、アプリとUITestターゲットを事前にプロビジョニングしてからサービスに送信して再署名されるようにすることで、プロセスがスムーズになります。
  2. コマンドラインインターフェースをインストールし、Sauce Labsの認証情報を設定します。 saucectl Sauce Labsの指示に従ってください こちらの指示.
tip

例をお探しですか?サンプルiOSプロジェクトには、テストのための統合が準備されています。

  1. 前提条件を確認してください。
  2. Githubからダウンロードをダウンロード
  3. ターミナルウィンドウを開き、cd を入力し、Finderからaxe-devtools-ios-sample-appをターミナルウィンドウにドラッグ&ドロップします。そして、リターン/エンターを押します。
  4. 同じウィンドウで、sh prepareForSauceRealDevice.shまたはsh prepareForSauceVirtualDevice.shを入力します。リターン/エンターを押します。

実際のデバイスでテストを実行

Sauce Labsの設定を追加

Sauce Labs uses a yaml file, located at at the project root, .sauce/config.yml. See the sample config below for testing on real devices.

apiVersion: v1alpha
kind: xcuitest
sauce:
  region: us-west-1
  concurrency: 1

xcuitest: 
  # file names for real devices have the `.ipa` extension
  app: "<app_name>.ipa"
  testApp: "<app_name>UITests-Runner.ipa"


suites:
  - name: "<app_name>UITests"
    devices:
      - name: "iPhone.*"
        platformVersion: "17.2"

ビルドセットアップ

プロジェクトのルートフォルダーからターミナルで次のコマンドを呼び出して、デバイスをコンピュータに接続することなくデバイスビルドを作成します。

xcodebuild build-for-testing -configuration Debug \
                             -scheme "$APP_SCHEME" \
                             -target "$APP_UITEST_TARGET" \
                             -sdk iphoneos \
                             -derivedDataPath "./DerivedData"

このコマンドにより、./DerivedData/Build/Products/Debug-iphoneos/に2つのアプリファイルが生成されます:iOSアプリケーションとUIテスト(UITests-Runnerで終わる)。

次に、両方のアプリケーションファイルを .ipa ファイルに変換します。 Sauce Labsの .ipa ファイル作成方法の指示.

.ipaファイルが作成されたら、プロジェクトのディレクトリ内にアプリフォルダを作成し、両方の.ipaファイルをその中に追加します。

次のコマンドを実行して、.ipaファイルをSauce Labsにプッシュし、テストを開始します。

saucectl run
note

追加の継続的インテグレーションツールを使用していますか?Sauce Labsは、現在の環境でのテストもサポートしています。 CIパイプラインとSauce Labsの.

ファイルをアップロードし、テストを開始します。

設定が正しく行われていることを確認したら、このプロセスを自動化する準備が整います!以下のスクリプトを使って、デバイス用の.ipaファイルを自動的にビルドし、それらをSauce Labsにアップロードし、XCUITestを実行できます。このスクリプトを使って、チームでSauce Labsでテストを手動で呼び出すことも可能です。

APP_LOCATION="DerivedData/Build/Products/Debug-iphoneos"
APP_NAME="<app_name>"

rm -rf *.ipa

xcodebuild build-for-testing -configuration Debug \
       -scheme "<scheme_name>" \
       -target "<UITests target>" \
       -sdk iphoneos \
       -derivedDataPath "./DerivedData" \
       -quiet

mkdir Payload

mv $APP_LOCATION/$APP_NAME.app Payload
zip -r -qq "$APP_NAME.ipa" Payload
rm -rf Payload/*

mv $APP_LOCATION/${APP_NAME}UITests-Runner.app Payload
zip -r -qq "${APP_NAME}UITests-Runner.ipa" Payload

saucectl run

rm -rf Payload
rm -rf DerivedData

仮想デバイスでテストを実行

Sauce Labsで仮想デバイスを使用して自動化されたXCUITestを実行できます!以下の手順に従って開始しましょう。

Sauce Labsの設定を追加

シミュレータでテストする場合、設定はプロジェクトルートにある.sauce/config.ymlに配置されます。以前に実機でテストを行ったことがある場合、シミュレータの設定が実機のものとは異なることに注意してください。.zip拡張子はappおよびtestAppのファイル名に使用され、suitesは「デバイス」ではなく「シミュレータ」をリストします。

apiVersion: v1alpha
kind: xcuitest
sauce:
  region: us-west-1
  concurrency: 1

xcuitest:
  # file names for simulators use the `.zip` extension
  app: "<app_name>.zip"
  testApp: "<app_name>UITests-Runner.zip"

suites:
  - name: "<app_name>UITests"
    simulators:
      - name: "iPhone 12 Simulator"
        platformVersions:
          - "16.2"
note

実デバイスとシミュレータを両方使いたい場合は、2つの別々の suites 設定を作成し、 apptestApp 設定を提供する必要があります。 each suite.

ビルドセットアップ

シミュレータ専用にアプリとテストランナーをビルドするために、以下のスニペットをガイドとして使用します。以前にReal Devicesでのテストを行ったことがある場合、いくつかの違いに気付くかもしれません - -sdk iphonesimulator, EXCLUDED_ARCHS="", CODE_SIGN_IDENTITY...

xcodebuild build-for-testing -configuration Debug \
  -scheme "$APP_SCHEME" \
  -target "$APP_UITEST_TARGET" \
  -sdk iphonesimulator \ 
  -derivedDataPath "./DerivedData" \
  EXCLUDED_ARCHS="" \
  CODE_SIGN_IDENTITY="" CODE_SIGNING_REQUIRED=NO CODE_SIGNING_ALLOWED=NO

Sauce Labsにアップロードする準備のために、.appファイルを圧縮してください。

  zip -r testApp.zip testApp.app
  zip -r testRunner.zip testRunner.app

最後に、次のコマンドを実行して.zipファイルをアップロードし、テストを開始します。

  saucectl run

ファイルをアップロードし、テストを開始します。

シミュレータでのテストの設定を行ったら、このプロセスを自動化することができます!以下のスクリプトを使用して、シミュレータ用の.appファイルを自動的にビルドし、圧縮してSauce Labsへアップロードし、XCUITestを実行してください。

APP_LOCATION="DerivedData/Build/Products/Debug-iphonesimulator"
APP_NAME="<app_name>"
RUNNER_NAME="<testApp_name>"

rm -rf $APP_NAME.zip $RUNNER_NAME.zip

xcodebuild build-for-testing -configuration Debug \
  -scheme "<scheme_name>" \
  -target "<UITests target>" \
  -sdk iphonesimulator \
  -derivedDataPath "./DerivedData" \
  -quiet \
  EXCLUDED_ARCHS="" \
  CODE_SIGN_IDENTITY="" CODE_SIGNING_REQUIRED=NO CODE_SIGNING_ALLOWED=NO

zip -r -qq $APP_NAME.zip $APP_LOCATION/$APP_NAME.app
zip -r -qq $RUNNER_NAME.zip $APP_LOCATION/$RUNNER_NAME.app

saucectl run

rm -rf DerivedData