Firebase Test Lab for Android でコンソールから簡単テスト実行
Firebase Test Labが無料枠でも使えるようになっていたので、試しに使ってみました。
今回は、テストコードを書かなくても自動的にUI構造を分析してテストを実行してくれるRoboテストを試してみました。(Firebase Test Lab for Android Robo テスト)
また、無料枠では1日15テスト(物理デバイス5, 仮想デバイス10)まで実施できるようです。(2017/01/31 時点)
https://firebase.google.com/pricing/
テスト用のAndroidアプリを用意
Android StudioのテンプレートからEmpty Activityを3つ作成し、ボタンで画面遷移するようなアプリを作成しました。
[MainActivity.java]
public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Button button1 = (Button) findViewById(R.id.button1); button1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { startActivity(new Intent(MainActivity.this, SecondActivity.class)); } }); Button button2 = (Button) findViewById(R.id.button2); button2.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { startActivity(new Intent(MainActivity.this, ThirdActivity.class)); } }); } }
[SecondActivity.java]
public class SecondActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_second); } }
[ThirdActivity.java]
public class ThirdActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_third); } }
ThirdActivityには、Manifestファイルで android:parentActivityName=".MainActivity"
を設定しました。
FirebaseコンソールからRoboテストを実行
まずFirebaseコンソールにアクセスし、Test Labを選択します。
初回は以下の画面が表示されるので、最初のテストを実行するをクリックします。
テストタイプの選択画面が表示されるので、Roboテストにチェックが入っていることを確認し、続行をクリックします。
ウィザード画面が表示されるので、先程作成したテストアプリを選択し、続行をクリックします。
最後に、テスト端末、API レベル、向き、ロケールを選択します。
本画面で選択した 端末数 × 向き × ロケール の数がテストケース数になるので、無料で利用する場合は無料枠内に収める必要があるので注意が必要ですね。 ちなみに、無料枠を超えて実行しようとした場合は下記エラーが表示されました。
テストが完了すると、テスト結果としてログ(アプリのログだけでなくすべてのログが出てる?)、各画面のスクリーンショット、アクティビティマップ、実行時の動画が確認できます。 今回のテストアプリでは、アクティビティマップは以下のようになりました。
ThirdActivityだけUpNavigationを付けたんですが、ちゃんと反映されていますね。
また、クラッシュした際はテストでの問題タブが追加され、クラッシュ原因の確認ができるようになっていました。