getting started with robotium most popular android application ui testing tool
Robotiumは、ネイティブおよびハイブリッドのAndroidアプリケーションをテストするためのAndroidテスト自動化フレームワークです。 。 UIオートメーションスクリプトを作成するためのシンプルなAPIを提供します。 ただし、Androidアプリケーションのテストには多数のツールが利用可能であり、Robotiumが最も一般的に使用されています Androidテストツール 。
Robotiumは、機能、システム、およびユーザーの受け入れテストケースを作成するために使用できます。 Robotiumテストケースは、AndroidエミュレーターとAndroid実デバイスで実行できます。
参考文献 => モバイルアプリケーションテストの初心者向けガイド
学習内容:
Robotium入門
Robotiumの利点
- 書きやすい
- シンプルなAPI(すべてのメソッドはSoloクラスでのみ使用可能)
- 自動遅延とタイミング
- あるアクティビティから別のアクティビティに移動するときに、コードを記述する必要はありません。
- Androidネイティブアプリとハイブリッドアプリをテストします。
- 複数のAndroidアクティビティを処理できます。
- APIがシンプルなため、テストを作成する時間が短縮されます。
- UIコンポーネントへのランタイムバインディングにより、テストケースは堅牢です
- テストケースの高速実行。
- MavenおよびANTと簡単に統合できます。
前提条件
#1)JAVAをダウンロードしてインストールする
- からJavaをダウンロード このページ 。
- JavaライブラリをPATHに追加し、JAVA_HOMEを環境内のJavaインストールディレクトリのルートに設定します。
#2)ADTバンドルをダウンロードする
- からADTバンドルをダウンロードします このページ 。
- ADTバンドルzipを解凍し、フォルダーに入れます。
- ANDROID_HOMEを環境内のADTバンドルフォルダーのルートに設定します。
Robotiumプロジェクトの作成
プロジェクトの作成に必要な手順はわずかですが、
ステップ1) Eclipseを開き、テストするAndroidアプリケーションが含まれています。
ステップ2) Androidプロジェクト-> Androidツールを右クリックし、新しいテストプロジェクトをクリックします。
ステップ3) テストプロジェクトに名前を付けて、(次へ)ボタンをクリックします。
ステップ4) テスト対象のアプリケーションをターゲットとして選択し、(完了)ボタンをクリックします。
ステップ5) テストプロジェクトは、Eclipseワークスペースに作成されます。
ステップ#6) Robotiumソロjarをからダウンロード ここに 。
ステップ7) ワークスペースでテストプロジェクトを右クリックします。ビルドパスに移動し、ビルドパスの構成をクリックします。
ステップ#8) (ライブラリ)タブに切り替え、(外部jarの追加)オプションをクリックし、ダウンロードしたRobotium jarファイルを参照してライブラリに追加し、(OK)をクリックします。
ステップ#9) Robotiumテストプロジェクトが正常に作成されました。これで、プロジェクトの下にクラスを作成し、テストケースの作成を開始できます。
Robotiumクラスの作成
#1) テストプロジェクトのsrcディレクトリの下にあるパッケージを右クリックし、新しいクラスを作成します。
#二) Robotiumテストプロジェクトのメインアクティビティクラスをインポートします。
構文 :
import com.sasi.attendanceproject.Home;
#3) 新しいクラスは、ActivityInstrumentationTestCase2クラスからプロパティを継承します
public class AttendanceTest extends ActivityInstrumentationTestCase2
(( 注意: ここで、HomeはAndroidアプリケーションでテストされるアクティビティです)
#4) 以下のようにSoloクラスのインスタンスを作成します
private Solo solo;
#5) 以下のように、Testクラスのコンストラクターを作成します
public AttendanceTest() { super(Home.class); // TODO Auto-generated constructor stub
#6) 以下のように、setUpメソッドとtearDownメソッドを作成します
セットアップ メソッドは、インストルメンテーションを開始するために使用されます
public void setUp()throws Exception { solo=new Solo(getInstrumentation(), getActivity()); }
取り壊す メソッドは、テストの完了後にアクティビティを閉じるために使用されます。
public void tearDown() throws Exception { solo.finishOpenedActivities(); }
いくつかのRobotiumメソッド
#1) assertCurrentActivity(text、Activity)
このメソッドは、現在のアクティビティが送信パラメータとして渡されるアクティビティであるかどうかを確認します。
構文
solo.assertCurrentActivity('Current Activity', Home.class);
#二) clickOnButton(text)
このメソッドは、指定されたテキストのボタンをクリックします。
構文:
solo.clickOnButton('ADMIN');
#3) clickOnButton(int)
このメソッドは、指定されたインデックスのボタンをクリックします。
構文:
solo.clickOnButton(2);
#4) waitForText(text)
このメソッドは、アクティビティにテキストが表示されるまで待機します。
構文:
solo.waitForText('Creating New Password');
#5) enterText(int、text)
このメソッドは、2番目のパラメーターとして指定されたインデックス編集ボックスに渡されたテキストを入力します。
構文:
solo.enterText(0,'test');
#6) clickOnCheckbox(int)
このメソッドは、指定されたインデックスのチェックボックスをクリックします。
構文:
これはデータマイニングの例ではありませんか?
solo.clickOnCheckBox(0);
# 7 ) clickOnRadioButton(int)
このメソッドは、指定されたインデックスのラジオボタンをクリックします。
構文:
solo.clickOnRadioButton(1);
#8) clickOnImage(int)
このメソッドは、指定されたインデックスの画像をクリックします。
構文:
solo.clickOnImage(1);
#9) clearEditText(int)
このメソッドは、指定されたインデックスを持つ編集ボックス内のテキストをクリアします。
構文:
solo.clearEditText(0);
#10) waitForText(text)
このメソッドは、指定されたテキストがアクティビティに表示されるまで待機します。
構文:
solo.waitForText(“Robotium”);
サンプルプログラム
Androidアプリケーションでの要素の検索
ステップ1) テストするAndroidアプリケーションを含むEclipseを開きます。
ステップ2) プロジェクトを展開し、解像度に移動しますか?レイアウトフォルダとアクティビティXMLファイルをダブルクリックします。自動化します。設計されたアクティビティがEclipseエディターで開きます。
ステップ3) ボタン要素の検索
- IDによる要素の検索
見つけたい要素をクリックします。右側のプロパティパネルで、その要素のIDを見つけることができます。 (@ + id /は無視してください)
上の図では、要素のIDはbtnadminです。
このボタンを見つけるための対応するRobotiumコードは、
solo.clickOnButton(R.id.btnadmin);
- 位置による要素の検索
IDが利用できない場合は、注文を使用して要素を見つけることができます。ボタンが2番目の位置にある場合は、次の方法でボタンを見つけることができます。
solo.clickOnButton(1);
- テキストによる要素の検索
ボタンに表示されているテキストを使用してボタンをクリックすることもできます。
Solo.clickOnButton(“ADMIN”);
- テキストボックス要素の検索
同様の方法を使用して、データを入力するテキストボックスをクリックし、右側からテキストボックスの位置を見つけます。
Solo.enterText(0,”Anitha”); //Username textbox is in 1st position
Solo.enterText(1,”test”); //Password textbox is in 2nd position
- ラジオボタン要素の検索
ラジオボタン要素をクリックします。クリックして、ラジオボタンの位置を確認します。
Solo.clickOnRadioButton(1); //It will location radio button in the second position.
サンプルコード
package com.sasi.attendanceproject.test; import android.test.ActivityInstrumentationTestCase2; import android.widget.EditText; import com.robotium.solo.By; import com.robotium.solo.Solo; import com.robotium.solo.WebElement; import com.sasi.attendanceproject.Home; public class AttendanceTest extends ActivityInstrumentationTestCase2{ private Solo solo; public AttendanceTest() { super('com.sasi.attendanceproject.Home',Home.class); // TODO Auto-generated constructor stub } public void setUp()throws Exception{ solo=new Solo(getInstrumentation(),getActivity()); } public void testAttendance()throws Exception{ //solo.assertCurrentActivity('Current Activity', Home.class); solo.waitForWebElement(By.id('btnadmin')); solo.clickOnButton('ADMIN'); solo.clickOnButton(0); solo.waitForText('Creating New Password'); solo.enterText(0, 'test'); solo.enterText(1, 'test'); solo.clickOnButton('Okay'); solo.waitForText('Attendance Login'); solo.enterText(0, 'Anitha'); solo.enterText(1, 'test'); solo.clickOnButton('Login'); solo.waitForWebElement(By.id('btnaddnew')); solo.clickOnButton('Add New Details'); solo.waitForText('Enter the Employee Details'); solo.enterText(0, 'Anitha'); solo.enterText(1, '6'); solo.enterText(2, 'Testing Engineer'); solo.clickOnRadioButton(1); solo.clickOnButton('Okay'); solo.waitForWebElement(By.id('tvempID')); System.out.println(solo.getText(0)); } public void tearDown()throws Exception{ solo.finishOpenedActivities();}}
Robotiumプロジェクトの実行
Eclipseから:
プロジェクトを右クリックし、「実行」->「AndroidJUnitテスト」を選択します。
コマンドプロンプトから:
ステップ1) AndroidテストプロジェクトディレクトリへのCD
ステップ2) 次のコマンドを実行します。
adb shell am instrument -w <>/android.test.InstrumentationTestRunner
結論
- Robotiumは、最も一般的に使用されているAndroidテスト自動化ツールです。
- RobotiumテストケースはAndroidエミュレーターとRealデバイスで実行できます。RealデバイスでRobotiumテストケースを実行するために特定の構成コードを記述する必要はありません。
- RobotiumはMavenプロジェクトでも簡単に記述でき、継続的インテグレーションツールを介して実行できます。
- したがって、Robotiumは、簡単でシンプルなAndroidテスト自動化スクリプトの作成に非常に役立ちます。
推奨読書 => 5つのモバイルテストの課題とソリューション
著者について: これはAnithaEswariによるゲスト投稿です。彼女は現在、Webおよびモバイル自動化テストで3年以上の豊富な経験を持つシニアテストエンジニアとして働いています。彼女は、RobotiumやAppiumなどのモバイルテストツールを含むさまざまな自動化テストツールについて十分な知識を持っています。
次の記事では、 Selendroidチュートリアル。
推奨読書
- デスクトップ、クライアントサーバーテスト、およびWebテストの違い
- モバイルUIテストチュートリアル(iOSおよびAndroidアプリのGUIテスト)
- Androidアプリケーションをテストするための11の最高の自動化ツール(Androidアプリテストツール)
- アプリケーションをデバイスにインストールし、Eclipseからテストを開始します
- LoadUIを使用した負荷テスト-無料のオープンソース負荷テストツール
- AndroidおよびiOSモバイルアプリをテストするためのAppiumチュートリアル
- GUIテストチュートリアル:完全なユーザーインターフェイス(UI)テストガイド
- 最高のソフトウェアテストツール2021 (QAテスト自動化ツール)