Posted at
AndroidDay 17

Firebase Test Lab の Robo test をやってみる


前書き

現在私が勤めているチームでは JUnit でのテストコードを書くようになっているのですが

影響範囲の広い修正などはテストや検証に抜け漏れがあるかもしれないという不安がありました。

しかもUIテストは検証の時以外は特にやってない状態だったので全体的&定期的にテストしてくれるツールを導入したい…

(ついでにクラッシュも見つけ出して欲しい気持ち)

そこで Firebase Test Lab の Robo test を導入することになりました!

概念や説明などは 公式ドキュメントにとても細かく書いております。


とりあえず実行してみる

gcloud コマンドラインから Firebase Test Lab を使ってみる」に沿ってやってみました

まずrunさせるapkを作るためにビルドします

$ ./gradlew assembleStaging

ビルドが終わったら

以下のコマンドで実行できますが

他にもいろんな端末や os-version など device で指定できます。(複数可能)

gcloud firebase test android run \

--type robo \
--app app/build/outputs/apk/staging/app-staging.apk \
--device model=Nexus7,version=21,locale=jp,orientation=portrait \
--device model=Nexus5,version=19,locale=jp,orientation=landscape \
--timeout 60s

結果はこんな感じです

スクリーンショット 2018-12-17 13.03.35.png

詳細は Firebase コンソルの TestLab で確認ができます。(CLIにもリンクが表示されるので押せば遷移できます)

Firebase のコンソルからはログ、スクショ、動画などテストした過程が見えるので便利だと思いました。

スクリーンショット 2018-12-17 11.50.12.png


まとめ

定期実行については長くなりそうで記述してないのですが(ごめんなさい)

環境としては gcloud コマンドのスクリプトを作成し、 CI の cron を使って実行しております。

(workflow として robo test を加えて毎朝指定してる時間にアプリをビルドして、テストを回すように...)

UIテストと言っても実機で検証ぐらいでしか確認してないので

この機会にUIテストのできてないプロジェクトなどには Robo test は簡単に試せていいのではないかなっと思いました!