Robotium入門-創(chuàng)新互聯(lián)

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

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

優(yōu)點(diǎn):
1. 可以以最少的知識(shí)去測試應(yīng)用程序,和發(fā)展強(qiáng)大的測試用例。
2. 可以自動(dòng)處理多個(gè)Android activity
3. 開源, 版本更新迅速
4. 用于黑河的自動(dòng)化測試,可以在有源碼或者只有APK的情況下對目標(biāo)應(yīng)用進(jìn)行測試,提供了模仿用戶操作行為的API,比如輸入text等。
5. 通過運(yùn)行時(shí)綁定GUI組件使測試用例更強(qiáng)大
6. 執(zhí)行測試用例速度快
7. 順利整合了Maven或Ant來運(yùn)行測試,持續(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   獲取或設(shè)置超時(shí)時(shí)間
WebElement:public class WebElement extends Object   WebViews的元素,有g(shù)etClassName, getTagName等屬性

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

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

創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比武寧網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式武寧網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋武寧地區(qū)。費(fèi)用合理售后完善,十載實(shí)體公司更值得信賴。

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。

文章標(biāo)題:Robotium入門-創(chuàng)新互聯(lián)
轉(zhuǎn)載來源:http://muchs.cn/article2/pspic.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供營銷型網(wǎng)站建設(shè)、小程序開發(fā)、虛擬主機(jī)ChatGPT、App開發(fā)建站公司

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

搜索引擎優(yōu)化