移動測試 - Robotium框架



Robotium是一個開源的測試框架,用於編寫Android應用程式的自動化灰盒測試用例。藉助Robotium的支援,測試用例開發人員可以編寫功能、系統和驗收測試場景,涵蓋多個Android活動。

Robotium可用於測試有原始碼的應用程式和只有APK檔案的應用程式。

Robotium的優勢

  • 易於編寫,程式碼更簡潔。編寫可靠的測試用例所需時間最少。

  • 您可以開發強大的測試用例,只需具備最少的被測應用程式知識。

  • 該框架自動處理多個Android活動。與標準的儀器測試相比,測試用例的可讀性大大提高。

  • 自動計時和延遲。

  • 自動跟蹤當前活動。

  • 自動查詢檢視。

  • 自動做出自己的決策(例如:何時滾動等)。

  • 無需修改Android平臺。

  • 測試執行速度快。

  • 由於執行時繫結到GUI元件,因此測試用例更健壯。

  • 與Maven或Ant無縫整合。

Robotium的缺點

  • Robotium無法處理Flash或Web元件。

  • 它一次只能處理一個應用程式。

  • 它無法使用Robotium模擬點選軟鍵盤(需要使用“enterText()”將文字輸入EditText欄位)。

  • Robotium無法與狀態列通知進行互動——也就是說,無法下拉通知區域並點選指定的通知。

  • 速度可能有點慢,尤其是在舊裝置上執行時。

如何使用Robotium

步驟1 - 使用Robotium的先決條件是Java SDK(最低版本1.6)。如果您系統上沒有安裝Java,請按照以下步驟操作。

  • Oracle技術網下載JDK和JRE

  • 接受許可協議。

  • 安裝JDK和JRE。

  • 設定環境變數,如下面的螢幕截圖所示。

Environment Variable

步驟2 - 從Android Studio下載Android Studio

  • 雙擊exe檔案並執行安裝程式。
  • 繼續使用所有預設選項。
  • 設定ANDROID_HOME。

步驟3 - 安裝Android映象和工具。

  • 點選SDK Manager -
SDK Manager
  • 選擇必要的包。例如,如果我們正在為Android 4.4.2構建應用程式,請確保工具部分選中以下包 -

    • Android SDK Tools rev 22.6.3
    • Android Platform-tools rev 19.0.1
    • Android SDK Build-tools rev 19.1

步驟4 - 建立Android虛擬裝置。

  • 開啟Android Studio,然後點選工具欄中的AVD Manager。AVD允許我們測試和執行Android應用程式。
AVD Manager
  • 對Nexus5 AVD使用以下設定 -

    • 裝置 - Nexus 5 (4.95, 1080 x 1920; xxhdpi)
    • 目標 - Google APIs x86 (Google Inc.) - API Level 19
    • (確保您選擇名稱中包含Google APIs的目標)。
    • CPU - Intel Atom (x86)
    • 選中“使用主機GPU”複選框
    • 點選確定
  • 您現在應該在AVD Manager中看到您建立的AVD,您可以在其中啟動它、刪除它或建立另一個!

步驟5 - Robotium Jar檔案從RobotiumTech下載Robotium Jar檔案

使用Robotium測試應用程式

要使用Robotium測試應用程式,請按照以下步驟操作 -

步驟1 - 在Android Studio中建立一個名為“RobotiumTest”的測試專案。

Robotium Test

選擇所有預設選項,直到到達主頁面。

步驟2 - 將Robotium jar檔案複製到專案的Lib資料夾中。

Robot Jar Files

步驟3 - 在src資料夾下的build.gradle檔案中新增依賴項。

androidTestCompile 'com.jayway.android.robotium:robotium-solo-5.5.3'

步驟4 - 同步Gradle。

Sync the Gradle

步驟5 - 建立如下所示的測試類 -

package com.example;

import com.robotium.solo.Solo;
import android.test.ActivityInstrumentationTestCase2;
import android.widget.EditText;
import android.widget.TextView;

public class MyTestClass extends ActivityInstrumentationTestCase2<TestActivity>{

   private Solo solo;

   public MyTestClass() {
      super(TestActivity.class);
   }

   public void setUp() throws Exception {
      solo = new Solo(getInstrumentation(), getActivity());
   }

   public void testCase() throws Exception {
      String vResult="TestExample";
      EditText vEditText = (EditText) solo.getView(R.id.edit1);
      solo.clearEditText(vEditText);
      solo.enterText(vEditText,"TestExample");
      solo.clickOnButton("Submit");
      assertTrue(solo.searchText(vResult));
      TextView textField = (TextView) solo.getView(R.id.txt1);
      //Assert to verify result with visible value
      assertEquals(vResult, textField.getText().toString());
   }

   @Override
   public void tearDown() throws Exception {
      solo.finishOpenedActivities();
   }
}

步驟6 - 儲存所有更改。確保沒有錯誤。

步驟7 - 現在,執行測試用例。如果測試用例成功,您應該看到以下輸出!

Display Result
廣告

© . All rights reserved.