Robotium チュートリアル: Android テストフレームワークの例
⚡ スマートサマリー
Robotium オープンソースです Android ユーザーインターフェイスを介してネイティブアプリとハイブリッドアプリを駆動するテスト自動化フレームワークで、テスターが複数の機能、システム、および受け入れシナリオをスクリプト化できるようにします。 Android 活動。
何ですか Robotium?
Robotium あります Android ネイティブアプリケーションとハイブリッドアプリケーションのテストケースを自動化するテストフレームワーク。 Robotium開発者は、堅牢な自動 GUI テスト ケースを作成できます。 Android 開発者は、複数のアプリケーションにわたる機能テスト、システムテスト、および受け入れテストのシナリオを作成することもできます。 Android 活動。
Robotium テストフレームワーク
標準 Android テストフレームワークには、以下の制限事項があります。
- 複数のアクティビティを処理できない
- テスト実行のパフォーマンスが遅い
- テストケースは複雑で実装が難しい
その Robotium フレームワークは、テストを実行するためのより良い選択肢です。 Android アプリケーション。
Robotium はオープンソースのフレームワークであり、 Android テストフレームワークを使用しています。 Robotium開発者は、堅牢な自動 GUI テスト ケースを作成できます。 Android さらに、開発者は複数のアプリケーションにわたる機能テスト、システムテスト、および受け入れテストのシナリオを作成できます。 Android 活動。
以下の表は、 Robotium 単純な計測フレームワークから。
の高度な機能 Robotium
Robotium テストケースクラス
Robotium テスト用の少数のクラスセットが同梱されており、記事の例ではレガシーをインポートしています。 com.jayway.android.robotium.solo パッケージ。これらのクラスは、複数のアクティビティにまたがるテストケースをサポートし、 Solo と統合されています ActivityInstrumentationTestCase2.
注意: 現在 Robotium リリースでは、より短いバージョンで同じクラスを公開します com.robotium.solo パッケージはそのままですが、Maven座標は com.jayway.android.robotium:robotium-solo実際にプロジェクトに追加するJARファイルのバージョンに合わせてインポート設定を調整してください。
下の図は、Soloクラスが計測テストケースの上にどのように配置されているかを示しています。
統合 Robotium および ActivityInstrumentationTestCase2
テスターはアプリケーション設計の知識がなくてもテストケースを作成できるため、このアプローチは ブラックボックステストそれは、普通のものと比べて際立った利点です。 Android テストケースクラス。
使い方 Robotium
使用するには Robotium 自分で Android テストプロジェクトを実行するには、以下の手順に従ってください。
使用方法 Robotium
品質を保証するために Android 申請は、以下の4段階の手順に従ってください。
- テスト仕様を設計する
- テストプログラムを開発する
- 対象デバイス上でテストケースを実行します。
- 検査結果を収集する
以下のフローチャートは、これら4つの段階を順番に並べたものです。
Android アプリケーションテスト手順
ステップ1)設計テスト仕様
これは、アプリケーションをテストする最初のステップです。このステップでは、テスト対象を定義します。 Android アプリケーションには、UI、アクティビティ、コンポーネント、サービスなど、テストが必要な対象が多数存在します。対象を明確に定義することで、幅広いテストカバレッジを実現できます。
- 実施すべきテストの種類(単体テスト、機能テスト、システムテスト)を計画する。
- それぞれをデザインする テストケース 最大限のカバー範囲を維持しながらping テストケースの数が少ない。テストするコードが多いほど、バグを早期に発見できる可能性が高くなる。
ステップ2)テストプログラムを作成する
このセクションでは、 Android を使用したテストプログラム Android JUnit テストと Robotiumすでに開発済みであると仮定します Android Helloという名前のプログラムAndroidこのプログラムには、以下に説明する機能があります。
- 画面に「Hello world!」というテキストを表示します。
- 「こんにちは」と表示しますAndroid ユーザーが「スタート」ボタンを押したときに表示されるメッセージ。
以下のスクリーンショットは、テスト対象のアプリケーションがデバイス上で実行されている様子を示しています。
HelloAndroid
システム要件
- その Android プラットフォームには、事前に統合された JUnit 3つのフレームワークとは
ActivityInstrumentationTestCase2構築します。 - を作成するには Android テストプロジェクトから Eclipseお使いのマシンには動作確認が必要です Android SDKのインストール。
- 最新版をインストール Android 固定された古いリリースではなく、プラットフォームSDKを使用する。
このウォークスルーのスクリーンショットは Eclipse この例が書かれた当時は標準的なツールチェーンだったADTプラグインを使用しました。 Eclipse ADTはサポートされなくなったため、最新のマシンでは ダウンロード Android Studio 代わりに、同じテストコードを再利用します。 Gradle モジュールを開きます。
Robotium テストフレームワークをダウンロードしてください Robotium 図書館から Robotium プロジェクトページ.
作る Android テストプロジェクト
- 「ファイル」→「新規作成」→「その他」をクリックします。
- 選択する Android -> Android 下の図に示すようにテストプロジェクトを実行し、「次へ」を選択してください。
新しいを作成します Android テストプロジェクト
テストプロジェクトの名前を記入してください。命名規則に従って、テストプロジェクトの名前は「Hello」とします。Androidテスト"。
命名規則に従ってテストプロジェクト名を追加します。
テスト対象のアプリケーションを選択してください。この場合は Hello です。Androidをクリックし、「完了」をクリックします。
テスト対象のアプリケーションを選択してください
テストスイートの作成
テスト仕様に基づいて、テストプログラムのテストスイートを作成します。さまざまな選択肢から選ぶことができます。 ソフトウェアテスト フレームワーク。このチュートリアルでは標準の Android テストフレームワーク ActivityInstrumentationTestCase2.テストするには Robotium、追加 Robotium ライブラリファイルを libs プロジェクトフォルダ内のディレクトリ。
テストケースは、複数のテストを実行するために使用するフィクスチャを定義します。テストケースを定義するには、以下のプログラム構造に従ってください。
- TestCaseクラスのサブクラスを実装してください。
- 照明器具の状態を格納するインスタンス変数を定義します。
- setUp() メソッドをオーバーライドして、フィクスチャの状態を初期化します。
- tearDown() メソッドをオーバーライドして、テスト後のクリーンアップを行います。
以下の図は、その構造をこれから作成するテストプログラムにマッピングしたものです。
テストプログラムの構造
package com.example.helloandroid.test; import com.example.helloandroid.HelloAndroid; import com.jayway.android.robotium.solo.Solo; import android.test.ActivityInstrumentationTestCase2; import android.widget.TextView; public class HelloAndroidTest extends ActivityInstrumentationTestCase2 <HelloAndroid> { private HelloAndroid mActivity; private TextView mView; private String resourceString; private Solo solo; public HelloAndroidTest () { // TODO Auto-generated constructor stub super("com.example.helloandroid",HelloAndroid.class); } @Override protected void setUp() throws Exception { // TODO Auto-generated method stub // super.setUp(); mActivity = this.getActivity(); solo = new Solo(getInstrumentation(),getActivity()); mView = (TextView) mActivity.findViewById(com.example.helloandroid.R.id.textview2); resourceString = mActivity.getString(com.example.helloandroid.R.string.hello_world); } @Override protected void tearDown() throws Exception { // TODO Auto-generated method stub //super.tearDown(); solo.finishOpenedActivities(); } public void testPrecondition() { assertNotNull(mView); } /* test Target application contains a text display "Hello World!"*/ public void testSearchText() { assertEquals(resourceString,(String) mView.getText()); } /* test HelloAndroid Activity on target application is exist*/ public void testCurrentActivity() throws Exception { solo.assertCurrentActivity("wrong activity", HelloAndroid.class); } /* test Application UI contains "Start" button */ /* send event click button to target application */ public void testSearchButton() throws Exception { boolean found = solo.searchButton("Start"); solo.clickOnButton("Start"); assertTrue(found); } }
テストケースの追加
- テストスイートと同じパッケージ内に、TestCaseクラスを作成します。
- 例えば、特定のアクティビティをテストするには、HelloAndroidActivityInstrumentationTestCase2 を拡張するテストケースを作成します。Android>.
- そのクラス内で、テスターはgetActivity()メソッドを通じてテスト対象のアクティビティを取得します。
- 「test + 元のメソッド名」という名前のメソッドを追加することで、アクティビティのテストを自由に作成できます。
- テストメソッド内では、テスターは以下を使用できます。 Android JUnit 実際の値と期待値を比較する関数。これらのメソッドを以下に示します。
以下の表は、2つのフレームワークで最もよく使用されるアサーションおよびインタラクションの方法を一覧にしたものです。
例として挙げた方法 Robotium Android テストフレームワーク
上記のテストスイートは、アプリケーションのGUIに「Hello World!」というテキストが表示され、「Start」という名前のボタンが含まれていることを検証します。
ステップ 3) テストを実行する
テストプログラムの作成が完了したら、以下の手順に従ってテストを実行してください。
- 接続する Android 実機をPCに接続するか、実機がない場合はエミュレータを起動してください。
- IDEでテストプロジェクトを右クリックし、[実行]を選択します。 Android 単体テスト。
以下のスクリーンショットは、IDEからテスト実行を開始した様子を示しています。
テストプログラムを実行する
IDE からテストを実行する以外にも、コマンドラインから実行できます。このテストプログラムでは、テストパッケージは com.example.helloandroid.testLinuxターミナルで、以下のコマンドを使用して、そのパッケージ内のすべてのテストを実行します。
$ adb shell am instrument -w -e package com.example.helloandroid.test
ステップ4)テスト結果を取得する
テストの実行後、テスト結果を収集します。
このテストプログラムでは、4つのテストメソッドが実行されます。以下の実行結果では、すべてのテストケースが合格しました。
すべてのテストケースが合格した場合のテスト結果出力
テストケースが失敗した場合、出力が表示され、どのテストケースが失敗したかが示されます。
テストケースが失敗した場合のテスト結果出力
ソースコード サンプル
この記事には、チュートリアルをより分かりやすく理解し、技術的な詳細を素早く把握するのに役立つソースコードの例が含まれています。
- HelloAndroid:テスト対象のアプリケーション。
- HelloAndroidホイール試乗: テストプログラムでは、 Android テストフレームワーク。
比較したい場合は Robotium この分野の他のオプションについては、以下を参照してください。 モバイルアプリケーションのテスト ガイド、 Appium チュートリアル そしてまとめ モバイル アプリ テスト ツール.

.png)
.png)
.png)



.png)

.png)
.png)

.png)
.png)