Android測(cè)試環(huán)境
Android測(cè)試環(huán)境的核心是一個(gè)Instrumentation框架。Instrumentation框架通過(guò)將主程序和測(cè)試程序運(yùn)行在一個(gè)進(jìn)程來(lái)實(shí)現(xiàn)功能,通過(guò)Java反射機(jī)制,來(lái)獲取當(dāng)前窗口所有視圖,并根據(jù)該視圖查找到目標(biāo)控件的屬性信息,并計(jì)算出目標(biāo)控件中心點(diǎn)坐標(biāo)。然后,利用Instrument內(nèi)部接口,實(shí)現(xiàn)點(diǎn)擊操作。
Android自身提供了對(duì)Instrumentation測(cè)試的基本支持,其中之一就是位于android.test包內(nèi)的ActivityInstrumentationTestCase2類(lèi),它擴(kuò)展了JUnit的TestCase類(lèi)提供的Android activities的功能測(cè)試。在應(yīng)用測(cè)試中,每個(gè)activity首先會(huì)被Instrumentation初始化,然后再加載到Android模擬器來(lái)執(zhí)行。
Robotium的case都繼承ActivityInstrumentationTestCase2。設(shè)計(jì)的目的:主要用來(lái)得到測(cè)試的Activity,執(zhí)行單元測(cè)試用例。getActivity()是入口
Robotium - Instrumentation
Robotium框架,使用的也是Instrumentation,通過(guò)將測(cè)試的工程項(xiàng)目安裝到AVD(模擬器)上面來(lái)與運(yùn)行時(shí)的項(xiàng)目交互,觸發(fā)其組件的動(dòng)作等。這種方法需要兩個(gè)項(xiàng)目同時(shí)安裝到AVD中。
Robotium簡(jiǎn)介:
是一個(gè)測(cè)試框架,能方便為Android應(yīng)用程序編寫(xiě)強(qiáng)大、健壯的自動(dòng)化黑盒測(cè)試用例。利用Robotium的支持,用例開(kāi)發(fā)人員能編寫(xiě)功能、系統(tǒng)和驗(yàn)收測(cè)試方案,跨越多個(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í)去測(cè)試應(yīng)用程序,和發(fā)展強(qiáng)大的測(cè)試用例。
2. 可以自動(dòng)處理多個(gè)Android activity
3. 開(kāi)源, 版本更新迅速
4. 用于黑河的自動(dòng)化測(cè)試,可以在有源碼或者只有APK的情況下對(duì)目標(biāo)應(yīng)用進(jìn)行測(cè)試,提供了模仿用戶(hù)操作行為的API,比如輸入text等。
5. 通過(guò)運(yùn)行時(shí)綁定GUI組件使測(cè)試用例更強(qiáng)大
6. 執(zhí)行測(cè)試用例速度快
7. 順利整合了Maven或Ant來(lái)運(yùn)行測(cè)試,持續(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 包含一些工具性的方法,供其他類(lèi)使用
Solo:public class Solo extends Object Robotium測(cè)試開(kāi)發(fā)的主要類(lèi),對(duì)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等屬性
編寫(xiě)Robotium測(cè)試程序:
指定需要啟動(dòng)的Activity,launcherActivityClass = Class.forName(ActivityName);
在構(gòu)造函數(shù)里傳入該Activity
重寫(xiě)setUp() -- 初始化Solo對(duì)象
重寫(xiě)tearDown() -- 釋放所有Activity資源
編寫(xiě)測(cè)試用例
為什么需要重簽名?
因?yàn)闇y(cè)試apk和被測(cè)apk的簽名需要一致才能運(yùn)行并驅(qū)動(dòng)測(cè)試
如何進(jìn)行重簽名?
雙擊re-sign.jar, 將重簽名的apk拖至re-sign.jar窗口中
cmd: java -jar xxx/resign.jar(jar包所在位置)
InstrumentationTestRunner: 執(zhí)行JUnit Test, 可以理解為對(duì)用例進(jìn)行管理和操作,繼承在Instrumentation
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性?xún)r(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專(zhuān)為企業(yè)上云打造定制,能夠滿足用戶(hù)豐富、多元化的應(yīng)用場(chǎng)景需求。
文章標(biāo)題:Robotium入門(mén)-創(chuàng)新互聯(lián)
轉(zhuǎn)載來(lái)源:http://chinadenli.net/article2/pspic.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供營(yíng)銷(xiāo)型網(wǎng)站建設(shè)、小程序開(kāi)發(fā)、虛擬主機(jī)、ChatGPT、App開(kāi)發(fā)、建站公司
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容
網(wǎng)頁(yè)設(shè)計(jì)公司知識(shí)