- 移動測試教程
- 移動測試 - 首頁
- 移動測試 - 概述
- 移動測試 - 平臺
- 移動測試 - 裝置型別
- 原生應用 vs 混合應用 vs 移動網頁
- 移動測試 - 裝置 vs 應用
- 模擬器 vs 模擬環境
- 移動測試 - 應用
- 移動測試 - UI
- 移動測試 - 計劃與工具
- 硬體視角
- 移動裝置測試 - 型別
- 移動測試 - 框架概述
- 移動測試 - Android框架
- 移動測試 - IOS框架
- Robotium框架
- Selendroid框架
- 移動測試 - Appium框架
- 移動測試 - Zucchini框架
- 移動測試有用資源
- 移動測試 - 快速指南
- 移動測試 - 有用資源
- 移動測試 - 討論
移動測試 - 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。
設定環境變數,如下面的螢幕截圖所示。
步驟2 - 從Android Studio下載Android Studio
- 雙擊exe檔案並執行安裝程式。
- 繼續使用所有預設選項。
- 設定ANDROID_HOME。
步驟3 - 安裝Android映象和工具。
- 點選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應用程式。
對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”的測試專案。
選擇所有預設選項,直到到達主頁面。
步驟2 - 將Robotium jar檔案複製到專案的Lib資料夾中。
步驟3 - 在src資料夾下的build.gradle檔案中新增依賴項。
androidTestCompile 'com.jayway.android.robotium:robotium-solo-5.5.3'
步驟4 - 同步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 - 現在,執行測試用例。如果測試用例成功,您應該看到以下輸出!