溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Robotium入門

發(fā)布時間:2020-07-04 00:24:29 來源:網(wǎng)絡 閱讀:370 作者:heng_sunny 欄目:移動開發(fā)

Android測試環(huán)境
Android測試環(huán)境的核心是一個Instrumentation框架。Instrumentation框架通過將主程序和測試程序運行在一個進程來實現(xiàn)功能,通過Java反射機制,來獲取當前窗口所有視圖,并根據(jù)該視圖查找到目標控件的屬性信息,并計算出目標控件中心點坐標。然后,利用Instrument內(nèi)部接口,實現(xiàn)點擊操作。
Android自身提供了對Instrumentation測試的基本支持,其中之一就是位于android.test包內(nèi)的ActivityInstrumentationTestCase2類,它擴展了JUnit的TestCase類提供的Android activities的功能測試。在應用測試中,每個activity首先會被Instrumentation初始化,然后再加載到Android模擬器來執(zhí)行。
Robotium的case都繼承ActivityInstrumentationTestCase2。設計的目的:主要用來得到測試的Activity,執(zhí)行單元測試用例。getActivity()是入口
Robotium - Instrumentation
Robotium框架,使用的也是Instrumentation,通過將測試的工程項目安裝到AVD(模擬器)上面來與運行時的項目交互,觸發(fā)其組件的動作等。這種方法需要兩個項目同時安裝到AVD中。
Robotium簡介:
是一個測試框架,能方便為Android應用程序編寫強大、健壯的自動化黑盒測試用例。利用Robotium的支持,用例開發(fā)人員能編寫功能、系統(tǒng)和驗收測試方案,跨越多個Android activities,Robotium支持Activities,Dialogs, Toasts, Menus, Context Menus

官網(wǎng):www.robotium.org
中文社區(qū):www.robotium.cn

優(yōu)點:
1. 可以以最少的知識去測試應用程序,和發(fā)展強大的測試用例。
2. 可以自動處理多個Android activity
3. 開源, 版本更新迅速
4. 用于黑河的自動化測試,可以在有源碼或者只有APK的情況下對目標應用進行測試,提供了模仿用戶操作行為的API,比如輸入text等。
5. 通過運行時綁定GUI組件使測試用例更強大
6. 執(zhí)行測試用例速度快
7. 順利整合了Maven或Ant來運行測試,持續(xù)集成的一部分
常用方法:
get

getCurrentActivity() --
getText(String)
getView(int)
getEditText(String)
getImage(int) -- Returns an p_w_picpathView with a given index

Click:
clickOnButton(int)
clickOnButton(String)
clickOnCheckBox(int)
clickOnView(View)
clickOnText(String)
clickLongOnText(String)
clickOnRadioButton(int)
clickOnScreen(float, float)

drag & scroll:
darg(float, float, float, float, int)
scrollDown()/scrollToBottom()/scrollToTop()/scrollToSide(int side)

search:
searchText(String)
searchEditText(String)
searchButton(String, boolean)

wait:
waitForActivity(String name)
waitForCondition(Condition condition, timeout)
waitForDialogToClose(long timeout)
waitForTest(String text)
waitForView(View view)
waitForWebElement(By by)

Class:
By: public abstract class By extends Object    用于處理web元素
Condition:public interface Condition    Method: isSatisfied()
RobotiumUtils: public class RobotiumUtils extends Object    包含一些工具性的方法,供其他類使用
Solo:public class Solo extends Object    Robotium測試開發(fā)的主要類,對views, WebViews, Activities, Dialogs, Menus, Context Menus有很好的支持
Timeout: public class Timeout extends Object     獲取或設置超時時間
WebElement:public class WebElement extends Object    WebViews的元素,有getClassName, getTagName等屬性

編寫Robotium測試程序:
指定需要啟動的Activity,launcherActivityClass = Class.forName(ActivityName);
在構造函數(shù)里傳入該Activity
重寫setUp() -- 初始化Solo對象
重寫tearDown() -- 釋放所有Activity資源
編寫測試用例

為什么需要重簽名?
因為測試apk和被測apk的簽名需要一致才能運行并驅動測試
如何進行重簽名?
雙擊re-sign.jar, 將重簽名的apk拖至re-sign.jar窗口中
cmd: java -jar xxx/resign.jar(jar包所在位置)
InstrumentationTestRunner: 執(zhí)行JUnit Test, 可以理解為對用例進行管理和操作,繼承在Instrumentation


向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。

AI