Upload
cch-robo
View
353
Download
5
Embed Size (px)
Citation preview
Page1/72
DevFestKansai2016LT(2016/11/27)
FirebaseTestLab無料枠を使ってみました。
Page2/72
自己紹介名前 robo(兼高理恵)お仕事 Java技術者 要件定義に設計から実装まで好きなもの モバイル端末
Page3/72
FirebaseTestLabforAndroidで無料枠が使えるようになりました。
Page4/72
GoogleDevelopersJapanFirebaseDevSummit速報速報:I/Oからから6か月後のか月後のFirebase(2016/11/15)https://googledevjp.blogspot.jp/2016/11/live-from-firebase-dev-summit-in-berlin.html(オリジナル)
FirebaseTestLabforAndroidでサポートされる端末の種類が増え、無償版が導入されます。
本日より、Sparkサービス(無償版)をご利用の場合、1日あたり物理端末で5回、仮想端末で10回のテストを実行できるようになります。クレジットカードの設定は不要です。また、端末の選択肢を増やしてほしいという要望にお応えし、本日より、11種類の人気Android機種をTestLabに新しく追加しています。
Page5/72
FirebaseTestLabforAndroidで無料枠が使えるようになりました。TheFirebaseBlogStartusingFirebaseTestLabforAndroidatnocharge(2016/11/17)https://firebase.googleblog.com/2016/11/start-using-firebase-test-lab-for-android-at-no-charge.html
Page6/72
SPARKプラン(無償版)を利用していても、以下の制限内なら無料でテスト実行ができるそうです。1日につき、「実機デバイスで5つのテスト、仮想デバイスで10のテスト」が無料で実行できます。1回のテスト実行では、最大で4つの異なるデバイスを指定できます。テスト実行では、実機と仮想デバイスが混在できます。
つまり実機1つと仮想デバイス2つをセットでテストするのなら、1日につき5回分のテスト実行が無料で実行できることになります。
Page7/72
(確認)Firebaseの料金体系Firebase料金プランhttps://firebase.google.com/pricing/Firebaseは、無料のSPARKプランでも制限付きで利用開始できますが、今までの料金体系でTestLabを利用するには、使用量に基づいて課金されるBLAZE有料プランにアップグレードする他ありませんでした。もちろん有料プランにアップグレードするには、クレジットカードが必要になります。
とはいえ、とはいえ、BLAZEプランにアップグレードすれば無制限にテスト実行できるようになります。プランにアップグレードすれば無制限にテスト実行できるようになります。
Page8/72
(確認)Firebaseの料金体系
Page9/72
(補足)テストするアプリケーションについてテストに利用したアプリケーションは、FirebaseAndroidCodelabのプロジェクトを利用しました。このサンプルは、FirebaseConsoleでの新規プロジェクト作成からAnalysticsやTestLabまでの実践演習になっています。
https://codelabs.developers.google.com/codelabs/firebase-android/index.html
Page10/72
テスト内容についてFirebaseAndroidCodelabでは、Instrumenttestを使ってTestLabでのテスト実行の演習を行っています。実機(またはエミュレータ)でSignIn画面を表示して「ログイン」ボタンが表示されていることをチェックするだけの簡単なテストです。
Page11/72
FirebaseTestLabforAndroidの概要FirebaseTestLabforAndroidを参照https://firebase.google.com/docs/test-lab/?hl=ja
Page12/72
FirebaseTestLabforAndroidの概要FirebaseTestLabforAndroidの概要を参照https://firebase.google.com/docs/test-lab/overview/?hl=ja
Page13/72
FirebaseTestLabforAndroid(その他)今回利用しませんでしたが、テスト中で任意にスクリーンショットを撮る方法も説明されています。FirebaseTestLabforAndroidインストゥルメンテーションテストのスクリーンショットを作成するhttps://firebase.google.com/docs/test-lab/test-screenshots?hl=ja
Page14/72
次ページより実際にAndroidStudioとFirebaseConsoleから
FirebaseTestLabをテスト実行させた結果になります。
Page15/72
AndroidStudioからFirebaseTestLabを実行する
Page16/72
AndroidStudioからFirebaseTestLabを実行する設定手順概要AndroidStudioからFirebaseTestLabを利用する場合は、Instrumenttestのテストコードの実装を行い、FirebaseドキュメントのAndroidStudioからFirebaseTestLabforAndroidを使用する。https://firebase.google.com/docs/test-lab/android-studio?hl=jaに記載された設定手順を行います。ですが記述内容は、対象バージョンが1.3〜1.5と少し古くなっています。(注意)2016/11/25時点での最新AndroidStudioバージョンは、2.2.2です。
Page17/72
Page18/72
AndroidStudioからFirebaseTestLabを実行する設定手順概要AndroidStudio2.0以上で無料でTestLabを使用する場合は、課金を有効にする指定を無視課金を有効にする指定を無視して、FirebaseAndroidCodelabの16.TestYourApp(inthecloud!)https://codelabs.developers.google.com/codelabs/firebase-android/index.html#15の設定手順を行います。
Page19/72
Page20/72
AndroidStudioからFirebaseTestLabを実行する設定手順概要基本的に「AndroidStudioからFirebaseTestLabforAndroidを使用する。」の設定手順から「課金を有効にして「課金を有効にしてFirebaseプロジェクトを作成する」プロジェクトを作成する」と「「AndroidStudioででTestLabを有効にする」を有効にする」を除外した手順になります。
以上で説明は終了ですが、以上で説明は終了ですが、判りにくいと思いますので、次から具体例を示します。判りにくいと思いますので、次から具体例を示します。
Page21/72
AndroidStudioからFirebaseTestLabを実行Run/DebugConfigurationダイアログを開くダイアログを開くAndroidStudioのメニューからRun>EditConfigrations…でRun/DebugConfigurationダイアログダイアログを開き、左上の[++]ボタンから[AndroidTests]を選択してInstrumenttestの設定を追加します。
Page22/72
GereralタブのDeploymentTargetOptions項目より上の設定は、通常のInstrumenttestを行う場合の設定と同じです。
Page23/72
AndroidStudioからFirebaseTestLabを実行FirebaseTestLabでテスト実行させるように指定FirebaseTestLabでテスト実行させる場合は、TargetのドロップダウンリストからFirebaseTestLabMatrixを選択します。
Page24/72
FirebaseTestLabMatrixの選択により、FirebaseTestLab.PricingInfomationリンクやConnettoFirebaseボタンが表示されます。
Page25/72
AndroidStudioからFirebaseTestLabを実行Firebaseサービスの課金コース確認FirebaseTestLab.PricingInfomationリンクをクリックするとブラウザが開き、Firebaseサービスで現在利用している料金プラン情報が表示されます。
Page26/72
(例では無料版のSPARKであることが表示されています)
Page27/72
AndroidStudioからFirebaseTestLabを実行Firebaseサービスへの接続許可ConnettoFirebaseボタンをクリックするとブラウザが開き、Firebaseサービスを利用するための許可が求められるので、[許可]ボタンをクリックします。
Page28/72
AndroidStudioからFirebaseTestLabを実行Firebaseサービスへの接続結果先の画面で[許可]ボタンをクリックするとブラウザが開き、許可の結果が表示されます。
Page29/72
AndroidStudioからFirebaseTestLabを実行MatrixConfigrationの設定MatrixConfigrationの[…]をクリックすると、クラウド上でテストを実行する端末の設定マトリクス(Device×Platform×Locale×Orientation)と組み合わせ数が指定できます。Matrix数は、各項目の組み合わせ数により決定されます。例えば、Device、Platform、Locale、Orientationより各1項目のみ選択した場合の組み合わせ数は1ですがOrientationでPortlateとLandscapeの両方(2つ)を選ぶと組み合わせ数は2となります。
Page30/72
AndroidStudioからFirebaseTestLabを実行MatrixConfigrationの設定Device選択選択
(例では37項目から1機種のみを選択しています)
Page31/72
AndroidStudioからFirebaseTestLabを実行MatrixConfigrationの設定Platform選択選択
(例では4.3.x〜7.1.xの7APIから1APIのみを選択しています)
Page32/72
AndroidStudioからFirebaseTestLabを実行MatrixConfigrationの設定Locale選択選択
(例では1ロケールのみを選択しています)
Page33/72
AndroidStudioからFirebaseTestLabを実行MatrixConfigrationの設定Orientation選択選択
(例では縦置横置の2方向から1方向のみを選択しています)
Page34/72
AndroidStudioからFirebaseTestLabを実行MatrixConfigrationの設定Cloudprojectの設定の設定
(Firebaseconsoleで設定した当該アプリのFirebaseprojectを選択)OKボタンをクリックすればMatrixConfigration設定は終了です。
Page35/72
AndroidStudioからFirebaseTestLabを実行テスト実行...だが実行できず。メニューからRun>Run'FrientdryChatTest'でテスト実行するも、Firebaseの課金設定を有効にしてください(Pleaseenablebilling)と警告されてしまいました。
Page36/72
結論
AndroidStudioからFirebaseTestLabの実行は不可現時点のAndroidStudio(2.2.2)では、FirebaseTestLab無料枠のテスト実行に対応していないようでした。
Page37/72
FirebaseConsoleからTestLabを実行する
Page38/72
FirebaseConsoleからFirebaseTestLabsを実行する設定手順概要FirebaseConsoleからTestLabを利用する場合は、FirebaseドキュメントのFirebaseTestLabforAndroidを使用してテストを実行するhttps://support.google.com/firebase/answer/6386654?hl=jaに記載された設定手順を参照ください。
Page39/72
Page40/72
FirebaseConsoleからFirebaseTestLabを実行する設定手順概要大まかな手順の流れは、Instrumenttestテストコードを実装して、FirebaseConsoleからTestLabを選択し、アプリとInstrumenttestのAPKアップロードを行ってから、AndroidStudioと同じように各種設定手順を行っていきます。
Page41/72
FirebaseConsoleからFirebaseTestLabを実行する設定手順概要FirebaseConsoleにログイン
Page42/72
FirebaseConsoleからFirebaseTestLabを実行する設定手順概要テストを行うFirebaseProjectを選択
Page43/72
FirebaseConsoleからFirebaseTestLabを実行する設定手順概要FirebaseTestLabを選択
Page44/72
FirebaseConsoleからFirebaseTestLabを実行する設定手順概要
以降は、FirebaseTestLabforAndroidを使用してテストを実行するドキュメントに従って設定手続きならびにテスト実行を行ないます。
Page45/72
FirebaseConsoleからTestLabを実行
インストゥルメンテーションテスト実行
Page46/72
FirebaseConsoleからTestLabを実行インストゥルメンテーションテストを実行する。
インストゥルメンテーションテストを選択し、[実行]ボタンをクリックします。
Page47/72
FirebaseConsoleからTestLabを実行インストゥルメンテーションテストを実行する。アプリとアプリとInsturumenttestののAPKをアップロードする。をアップロードする。
Page48/72
FirebaseConsoleからTestLabを実行インストゥルメンテーションテストを実行する。テストを実行するテストを実行する端末端末×APIレベルレベル×Locale×Orientationを指定を指定
Page49/72
FirebaseConsoleからTestLabを実行インストゥルメンテーションテストを実行する。端末端末×APIレベルレベル×Locale×Orientationを指定を指定
[1つのテストを実行]ボタンをクリックするとテスト実行がおこなわれます。
Page50/72
FirebaseConsoleからTestLabを実行インストゥルメンテーションテストを実行する。インストゥルメンテーションインストゥルメンテーションテストテスト実行終了実行終了
Page51/72
FirebaseConsoleからTestLabを実行インストゥルメンテーションテストを実行する。テスト実行結果の生ログ一覧テスト実行結果の生ログ一覧
Page52/72
FirebaseConsoleからTestLabを実行インストゥルメンテーションテストを実行する。テスト実行結果のスタイル付きログ一覧テスト実行結果のスタイル付きログ一覧
Page53/72
FirebaseConsoleからTestLabを実行インストゥルメンテーションテストを実行する。テスト実行結果の動画再生テスト実行結果の動画再生
テスト実行が録画されるので、テスト状況が動画で確認できます。
Page54/72
FirebaseConsoleからTestLabを実行
Roboテスト実行
Page55/72
FirebaseConsoleからTestLabを実行Roboテストを実行する。
Roboテストを選択し、[実行]ボタンをクリックします。
Page56/72
FirebaseConsoleからTestLabを実行Roboテストを実行する。アプリのアプリのAPKをアップロードする。をアップロードする。
Page57/72
FirebaseConsoleからTestLabを実行Roboテストを実行する。テストを実行するテストを実行する端末端末×APIレベルレベル×Locale×Orientationを指定を指定
Page58/72
FirebaseConsoleからTestLabを実行Roboテストを実行する。端末端末×APIレベルレベル×Locale×Orientationを指定を指定
[1つのテストを開始]ボタンをクリックするとテスト実行がおこなわれます。
Page59/72
FirebaseConsoleからTestLabを実行Roboテストを実行する。Roboテストテスト実行終了実行終了
Page60/72
FirebaseConsoleからTestLabを実行Roboテストを実行する。テスト実行結果のスタイル付きログ一覧テスト実行結果のスタイル付きログ一覧
Page61/72
FirebaseConsoleからTestLabを実行Roboテストを実行する。テスト実行結果の生ログ一覧テスト実行結果の生ログ一覧
Page62/72
FirebaseConsoleからTestLabを実行Roboテストを実行する。テスト実行結果のスクリーンショット一覧テスト実行結果のスクリーンショット一覧
Page63/72
FirebaseConsoleからTestLabを実行Roboテストを実行する。テスト実行結果のアクティビティマップテスト実行結果のアクティビティマップ(画面遷移図画面遷移図)一覧一覧
Page64/72
FirebaseConsoleからTestLabを実行Roboテストを実行する。テスト実行結果の動画再生テスト実行結果の動画再生
テスト実行が録画されるので、テスト状況が動画で確認できます。
Page65/72
結果
FirebaseConsoleからTestLabは実行OKFirebaseConsoleからFirebaseTestLab無料枠のテスト実行が行えました。インストゥルメントテーションテストでは、テスト可否だけでなく、ログ出力、テスト中の動画が記録されます。Roboテストでは、テスト可否だけでなく、ログ出力、スクリーンショット、アクティビティマップ(画面遷移図)、テスト中の動画まで記録されます。
Page66/72
総括
TestLab無料枠でテスト実行ができました。AndroidStudioからTestLabのテスト実行は現時点で未対応FirebaseConsoleからTestLabのテスト実行は可能アプリ本体とInstrumenttestのAPKアップロードが必要。Instrumenttestでは、ログやテスト中の動画も記録される。Robotestも実行でき、ログやテスト中のスクリーンショットや動画およびアクティビティマップ(画面遷移図)も記録される。
Device×Platform×Locale×Orientationの組み合わせに注意する。テスト対象機種にAQUOSやarrowsがなく、まだ日本向けとは言いがたい。TestLabを活用するためには、Insturmentaiontest(AndroidTest)を作らなくてはいけない!
Page67/72
ご清聴、ありがとうございました。
Page68/72
(補足)MatrixConfigration選択項目一覧組み合わせ数は、
Device選択数×Platform選択数×Locale選択数×Orientation選択数…で求められることに注意。
Device(37種類)PHYSICAL(29機種)XperiaZ2Sony,XperiaZ3Sony,XperiaZ5CompactSony,MotoG4PlusMotorola,MotoG4Motorola,MotoEMotorola,MotoG(1stGen)Motorola,
Page69/72
Nexus7(2013)ASUS,Nexus9HTC,LGG3LG,Nexus5LG,GalaxyS7Samsung,GalaxyNote3DuosSamsung,HTCOne(M8)HTC,GalaxyJ5Samusung,GalaxyS4(3G)Samsung,GalaxyTab3SamsungSamsungGalaxyS3,SamsungNexus4LG,MotoG(3rdGen)MotoloraLGG4LG,
Page70/72
GalaxyS4miniSamsungNexus6Motorola,GalaxyNote2Samsung,MotoG(2ndGen)Motorola,GalaxyNote4Samsung,MotoXMotorola,GalaxyS6Samsung,GalaxyS6EdgeSamsung,
VIRTUAL(8機種)Nexus10Samsung,Nexus4LG,Nexus5LG,Nexus5XLG,Nexus6Motorola,
Page71/72
Nexus6PHuawei,Nexus7(2012)ASUS,Nexus9HTC,
Platform(7種類)Android4.3.xAPI18(JellyBean),Android4.4.xAPI19(KitKat),Android5.0.xAPI21(Lollipop),Android5.1.xAPI22(Lollipop),Android6.0.xAPI23(Marshmallow),Android7.0.xAPI24(Nougat),Android7.1.xAPI25(Nougat),
Locale(1種類)Japanease-default
Page72/72
Orientation(2種類)LanscapePortarait