Firebase Test Lab for Android と継続的インテグレーション システムを併用する

継続的インテグレーション(CI)システムを使用してアプリを開発する場合は、Firebase Test Lab for Android を使用できます。継続的インテグレーション システムでは、アプリのソースコードにアップデートを追加するたびにアプリを自動的にビルドし、テストすることができます。

Jenkins CI で Firebase Test Lab for Android を使用する

ここでは、Jenkins CI で Test Lab を使用する方法について説明します。

要件

Jenkins CI で Firebase Test Lab for Android を使用するには、以下の手順を完了する必要があります。

  1. gcloud を設定します。 gcloud コマンドラインから Firebase Test Lab for Android を使用する手順に沿って Firebase プロジェクトを作成し、ローカル Google Cloud SDK 環境を設定します。
  2. サービス アカウントを作成します。 サービス アカウントを使用すると、gcloud はユーザーを人としてではなくプログラムとして扱うようになります。したがって、スパムチェックは行われず、アカウントがブロックされることもキャプチャを要求されることもありません。サービス アカウントを作成して有効化するには、gcloud auth activate-service-account コマンドを使用する手順に沿って操作します。
  3. 必要な API を有効化します。サービス アカウントでログインした後、Google Developers Console の API ライブラリ ページGoogle Cloud Testing APICloud Tool Results API を有効化します。これらの API を有効化するには、コンソール上部の検索ボックスに API 名を入力し、各 API の概要ページで [API を有効にする] をクリックします。

Jenkins をインストールして設定する

Jenkins CI は Linux または Windows 上でインストールおよび設定をすることができます。このガイドの一部の情報は、Linux 上での Jenkins CI のインストールと実行に固有であり、ファイルパスにはスラッシュ(/)が含まれています。

Linux または Windows を実行しているコンピュータに Jenkins をダウンロードしてインストールするには、Jenkins のインストールの手順に沿って操作します。Jenkins をインストールした後、Jenkins の起動とアクセスの手順に沿って設定を完了し、Jenkins ダッシュボードにアクセスします。

グローバル セキュリティを設定する

Jenkins をインストールした時点では、ユーザー認証とアクセス制御が設定されていません。Jenkins で Firebase Test Lab for Android を使用する前に、グローバル セキュリティを設定してアクセス制御とユーザー認証を実施します。

グローバル セキュリティを設定するには

  1. サーバー上の Jenkins ダッシュボードに移動します。ダッシュボードに移動するには、http://<servername>:8080 にアクセスします。ここで <servername> は、Jenkins をインストールしたコンピュータの名前を示します。
  2. Jenkins ダッシュボードで [Jenkins の管理] をクリックし、次に [グローバル セキュリティの設定] をクリックします。
  3. [グローバル セキュリティの設定] ページで [セキュリティを有効化]、[保存] の順にクリックします。

Jenkins のセキュリティ設定の詳細については、簡単なセキュリティ標準的なセキュリティ設定Jenkins のセキュリティをご覧ください。

Jenkins プロジェクトを作成する

次に、Firebase Test Lab for Android でアプリの継続的インテグレーション テストを実行するためのプロジェクトを作成します。

Jenkins プロジェクトを作成するには

  1. サーバー上の Jenkins ダッシュボードに移動します。ダッシュボードに移動するには、http://<servername>:8080 にアクセスします。ここで <servername> は、Jenkins をインストールしたコンピュータの名前を示します。
  2. Jenkins ダッシュボードで [新規ジョブ作成] をクリックします。
  3. [ジョブ名] フィールドにプロジェクトの名前を入力します。
    • 単一のビルド設定を使用するプロジェクトを作成するには、[フリースタイル・プロジェクトのビルド] を選択します。
    • 複数の異なるビルド設定で動作するプロジェクトを作成するには、[マルチ構成プロジェクトのビルド] を選択します。さまざまなビルド設定(複数のロケール、複数の Android API レベルなど)を使用してアプリをビルドする場合は、マルチ構成プロジェクトが最適です。
  4. [保存] をクリックします。

プロジェクトが作成されると、ウェブブラウザにプロジェクトのメインページが表示されます。

リビジョン管理と Gradle ビルド手順を追加する

ここでは、Jenkins を GitHub などのリビジョン管理システムに統合する方法と、Gradle ビルド手順を追加してソースコードから APK パッケージを作成する方法について説明します。

GitHub などのリビジョン管理システムと統合する

GitHub などのリビジョン管理システムを使用してアプリのソースコードを管理する場合、アプリにアップデートが追加されるたびにビルドとテストの実行を自動的に行うように Jenkins を設定できます。定期的にビルドを実行するように設定することもできます。

Jenkins でのビルドの設定については、自動ビルドの設定をご覧ください。

APK パッケージを再作成する Gradle ビルド手順を追加する

リビジョン管理システムを使用してアプリのソースコードを管理する場合は、Jenkins がリビジョン管理システムからソースコードをダウンロードするたびに新しい APK バイナリを作成する Gradle ビルド手順を追加する必要があります。

  1. アプリケーションのメイン ディレクトリで以下のコマンドを実行するビルド手順を追加します。

    ./gradlew :app:assembleDebug
    ./gradlew :app:assembleDebugAndroidTest
    

  2. Test Lab でテストするときに Gradle によって作成された .APK パッケージを使用するビルド手順を追加します。以下に示すシェル スクリプトの例では、このパスを <local_server_path> とすることができます。ここで <AppFolder> は、アプリの Android Studio プロジェクト フォルダを示します。

    <AppFolder>/app/build/outputs/apk
    

Jenkins に Test Lab ビルド手順を追加する

gcloud コマンドラインを使用して Test Lab を実行するビルド手順を Jenkins に追加する準備ができました。

gcloud ビルド手順を追加するには

  1. プロジェクトのメインページから [設定] をクリックします。
  2. プロジェクトの設定ページで [ビルド] セクションまで下にスクロールし、[ビルド手順の追加] メニューから [シェルの実行] を選択します。

  3. Jenkins シェルの実行コマンド ウィンドウで以下を入力します。<local_server_path> はサーバー上のサンプルアプリのパスに、<app_apk> はアプリの APK に、<app_test_apk> はアプリのテスト APK に置き換えます。

    gcloud firebase test android run --app <local_server_path>/<app_apk>.apk
    --test <local_server_path>/<app_test_apk>.apk
    

テスト結果を分析する

Test Lab がアプリのテストを完了すると、Firebase コンソールで、またはプロジェクトの Google Cloud ストレージ バケットでテスト結果を確認することができます。上記のシェルコマンドに gsutil コマンドを追加して、ローカル コンピュータにテスト結果データをコピーすることもできます。詳しくは、Firebase Test Lab for Android の結果を分析するをご覧ください。

他の CI システムを使用した継続的インテグレーション

Firebase Test Lab for Android を Circle CI と併用する方法については、Circle CI のガイドをご覧ください。

Firebase Test Lab for Android と別の CI システムを併用する方法について説明するドキュメントを作成する場合は Google にお問い合わせください。審査したうえでこのセクションに掲載させていただきます。

フィードバックを送信...

ご不明な点がありましたら、Google のサポートページをご覧ください。