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を選択します。

スクリーンショット_2017-01-31_16_00_21

初回は以下の画面が表示されるので、最初のテストを実行するをクリックします。

スクリーンショット_2017-01-31_14_36_02

テストタイプの選択画面が表示されるので、Roboテストにチェックが入っていることを確認し、続行をクリックします。

スクリーンショット_2017-01-31_16_15_28

ウィザード画面が表示されるので、先程作成したテストアプリを選択し、続行をクリックします。

スクリーンショット_2017-01-31_16_18_21

最後に、テスト端末、API レベル、向き、ロケールを選択します。

スクリーンショット 2017-01-31 16.22.43

スクリーンショット_2017-01-31_16_26_12

本画面で選択した 端末数 × 向き × ロケール の数がテストケース数になるので、無料で利用する場合は無料枠内に収める必要があるので注意が必要ですね。 ちなみに、無料枠を超えて実行しようとした場合は下記エラーが表示されました。

スクリーンショット 2017-01-31 14.00.31

テストが完了すると、テスト結果としてログ(アプリのログだけでなくすべてのログが出てる?)、各画面のスクリーンショット、アクティビティマップ、実行時の動画が確認できます。 今回のテストアプリでは、アクティビティマップは以下のようになりました。

スクリーンショット 2017-01-31 16.50.54

ThirdActivityだけUpNavigationを付けたんですが、ちゃんと反映されていますね。

また、クラッシュした際はテストでの問題タブが追加され、クラッシュ原因の確認ができるようになっていました。

スクリーンショット 2017-01-31 18.50.52

参考