Android自動化(功能)測試方法簡介

1. 單元測試

單元測試是單一實(shí)體(類或者方法)的功能性測試藤滥,檢查程序是否按照預(yù)期結(jié)果正常運(yùn)行,及時(shí)發(fā)現(xiàn)代碼中的邏輯錯誤,以保證應(yīng)用系統(tǒng)在迭代開發(fā)中的正確性莲镣。

1.1 JUnit

JUnitxUnit測試框架下Java語言的單元測試框架。同時(shí)JUnit是很常用的白盒測試的一種涎拉。

  • 優(yōu)點(diǎn)
  1. 白盒測試瑞侮,測試人員可以根據(jù)源代碼,編寫項(xiàng)目所有的接口或者方法的單元測試用例鼓拧;
  2. 自動化測試半火,并判斷輸出執(zhí)行結(jié)果,不需要人為的干預(yù)季俩;
  3. 容易集成在構(gòu)建過程中钮糖,及時(shí)發(fā)現(xiàn)問題
  4. 速度快,支持測試覆蓋率等代碼質(zhì)量檢測工具
  • 缺點(diǎn)
  1. 只支持純Java代碼酌住,測試對象中不能包含Android Framework相關(guān)代碼

1.2 Espresso

Espresso是Google正對Android UI提供一種單元測試方法店归,屬于白盒測試,需要開發(fā)人員或者熟悉項(xiàng)目源代碼的測試人員編寫單元測試用例酪我。它的特點(diǎn)是規(guī)模更小消痛、更簡潔,API更加精確都哭,編寫測試代碼簡單秩伞,容易快速上手。

Espresso測試對象是Activity,所以其測試用例步驟主要如下:

  1. 查找元素:找到UI上測試的元素位置欺矫,比如找到一個按鈕
  2. 執(zhí)行操作:給某個元素執(zhí)行一個動作纱新,比如觸發(fā)按鈕的點(diǎn)擊事件
  3. 檢查結(jié)果:判斷做出的動作是否符合期望,比如按鈕點(diǎn)擊后汇陆,是否符合我的期望

2. 自動化測試(功能測試)

2.1 Instrumentation

早期Google提供的Android自動化測試工具類怒炸。通過Instrumentation你可以模擬按鍵按下、抬起毡代、屏幕點(diǎn)擊阅羹、滾動等事件勺疼。不能跨多個App。

2.2 UiAutomator

UiAutomator谷歌在Android4.3推出的UI自動化測試框架捏鱼,可以模擬人對手機(jī)的操作执庐,比如各種點(diǎn)擊、長按导梆、滑動轨淌、按鍵等操作動作】茨幔可以對整個系統(tǒng)做UI自動化測試递鹉,不局限于APP。

2.3 Robotium

Robotium是非常著名的Android自動化測試框架藏斩,支持native和hybrid兩種應(yīng)用模式躏结,可以非常簡單方便的執(zhí)行Android UI黑盒測試

主要特點(diǎn)

  1. 支持NativeHybrid應(yīng)用狰域;
  2. 不僅對單Activity編寫測試媳拴,還可以自動處理多Activity的應(yīng)用測試;
  3. 編寫測試用例比較簡單兆览,相對于Instrumentation來說屈溉,測試代碼可讀性比較好;
  4. 測試用例執(zhí)行速度比較快抬探,可以與Maven子巾、Gradle以及Ant更好的結(jié)合,可以支持持續(xù)集成的測試驶睦;
  5. 提供Robotium Recorder(收費(fèi))測試用例的腳本錄制砰左,可以方便快速地編寫測試用例;
  6. Robotium主要缺點(diǎn)不能跨App场航。

2.4 Appium

Appium封裝了標(biāo)準(zhǔn)Selenium客戶端類庫缠导,不但支持IOS平臺和Android平臺的navtive應(yīng)用、web應(yīng)用和混合應(yīng)用溉痢,還支持Window,Mac平臺僻造。

主要特點(diǎn):

  1. 支持Android、iOS孩饼、Firefox OS:IOS部分是封裝了UIAutomation髓削;Android 4.3以上是用UiAutomator,Android 2.3 ~ 4.2用的是Instrumentation;
  2. 跨App镀娶,支持Native App立膛、Hybird AppWeb App;
  3. Appium Server是使用Node.js開發(fā),通過NPM在MacOS宝泵、Windows或者Linux系統(tǒng)上安裝部署;
  4. 支持很多語言來編寫測試腳本好啰,JavaJavascript儿奶、PHP框往、PythonC#闯捎、Ruby等主流語言;
  5. 擴(kuò)展了WebDriver,封裝Selenium客戶端類庫椰弊,對具有Selenium Web自動化測試經(jīng)驗(yàn)的人員來說,比較容易上手瓤鼻;
  6. 提供Appium Inspector工具秉版,可以非常方便的查看App界面元素的元數(shù)據(jù)屬性信息,Mac版本支持測試用例錄制茬祷;

3. 壓力測試

3.1 Monkey

Monkey是Android SDK自帶的測試工具沐飘,在測試過程中會向系統(tǒng)發(fā)送偽隨機(jī)的用戶事件流,如按鍵輸入牲迫、觸摸屏輸入、手勢輸入等)借卧,實(shí)現(xiàn)對正在開發(fā)的應(yīng)用程序進(jìn)行壓力測試盹憎,也有日志輸出。

3.2 MonkeyRunner

MonkeyRunner是一Api工具包铐刘,比Monkey強(qiáng)大陪每,寫出一個Python程序去安裝一個Android應(yīng)用程序或測試包,運(yùn)行它镰吵,向它發(fā)送模擬擊鍵檩禾,截取它的用戶界面圖片,并將截圖存儲于工作站上疤祭。

4. 對比總結(jié)

在應(yīng)用開發(fā)中盼产,項(xiàng)目代碼組織架構(gòu)設(shè)計(jì)要合理,方便進(jìn)行單元測試勺馆。推薦使用JUnit進(jìn)行非Android Framework的函數(shù)或類的單元測試戏售,借助jacoco等插件統(tǒng)計(jì)分析代碼覆蓋率。

Espresso測試框架可以進(jìn)行UI單元測試草穆,但是App的Activity往往會涉及Android其他模塊灌灾,例如Service,Broadcast,所以推薦使用Appium等測試工具進(jìn)行App應(yīng)用的功能集成化自動測試悲柱。
Appium具有UiAutomator锋喜、Robotium等測試工具所有的特性,不僅支持Hybird App豌鸡、Web App這類非原生應(yīng)用嘿般,而且還支持iOS等其他移動平臺段标;Appium本身封裝拓展了Selenium測試工具,所以等于掌握Appium自動化測試工具博个,就可以編寫Android怀樟、iOS、Web等多端的應(yīng)用測試盆佣。

Monkey是一隨機(jī)事件流測試工具往堡,推薦使用于應(yīng)用的穩(wěn)定性測試,可以及早的發(fā)現(xiàn)App的Crash問題共耍。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末虑灰,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子痹兜,更是在濱河造成了極大的恐慌穆咐,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,406評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件字旭,死亡現(xiàn)場離奇詭異对湃,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)遗淳,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,395評論 3 398
  • 文/潘曉璐 我一進(jìn)店門拍柒,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人屈暗,你說我怎么就攤上這事拆讯。” “怎么了养叛?”我有些...
    開封第一講書人閱讀 167,815評論 0 360
  • 文/不壞的土叔 我叫張陵种呐,是天一觀的道長。 經(jīng)常有香客問我弃甥,道長爽室,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,537評論 1 296
  • 正文 為了忘掉前任潘飘,我火速辦了婚禮肮之,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘卜录。我一直安慰自己戈擒,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,536評論 6 397
  • 文/花漫 我一把揭開白布艰毒。 她就那樣靜靜地躺著筐高,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上柑土,一...
    開封第一講書人閱讀 52,184評論 1 308
  • 那天蜀肘,我揣著相機(jī)與錄音,去河邊找鬼稽屏。 笑死扮宠,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的狐榔。 我是一名探鬼主播坛增,決...
    沈念sama閱讀 40,776評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼薄腻!你這毒婦竟也來了收捣?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,668評論 0 276
  • 序言:老撾萬榮一對情侶失蹤庵楷,失蹤者是張志新(化名)和其女友劉穎罢艾,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體尽纽,經(jīng)...
    沈念sama閱讀 46,212評論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡咐蚯,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,299評論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了弄贿。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片仓蛆。...
    茶點(diǎn)故事閱讀 40,438評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖挎春,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情豆拨,我是刑警寧澤直奋,帶...
    沈念sama閱讀 36,128評論 5 349
  • 正文 年R本政府宣布,位于F島的核電站施禾,受9級特大地震影響脚线,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜弥搞,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,807評論 3 333
  • 文/蒙蒙 一邮绿、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧攀例,春花似錦船逮、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,279評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春酱鸭,著一層夾襖步出監(jiān)牢的瞬間吗垮,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,395評論 1 272
  • 我被黑心中介騙來泰國打工凹髓, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留烁登,地道東北人。 一個月前我還...
    沈念sama閱讀 48,827評論 3 376
  • 正文 我出身青樓蔚舀,卻偏偏與公主長得像饵沧,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子蝗敢,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,446評論 2 359

推薦閱讀更多精彩內(nèi)容