天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

Android自動化測試解決方案

  現(xiàn)在,已經(jīng)有大量的Android自動化測試架構(gòu)或工具可供我們使用,其中包括:Activity Instrumentation, MonkeyRunner, Robotium, 以及Robolectric。另外LessPainful也提供服務(wù)來進行真實設(shè)備上的自動化測試。

  Android自身提供了對instrumentation測試的基本支持,其中之一就是位于Android.test包內(nèi)的ActivityInstrumentationTestCase2類,它擴展了JUnit的TestCase類來提供Android activities的功能測試。在應(yīng)用測試中,每一個activity首先會被Instrumentation初始化,然后再加載到Android模擬器或設(shè)備的Dalvik虛擬機中來執(zhí)行。

  Android SDK自帶一個測試工具MonkeyRunner,它提供的API和執(zhí)行環(huán)境可以運行Python語言編寫的測試代碼。它提供API來連接設(shè)備,安裝/卸載應(yīng)用,運行應(yīng)用,截屏,比對圖片來判斷特定命令執(zhí)行后的屏幕是否包含預期信息,以及運行對應(yīng)用的測試。MonkeyRunner使用ActivityInstrumentationTestCase2, ProviderTestCase,ServiceTestCasek, SingleLaunchActivityTestCase及其他類來定義測試用例,并使用InstrumentationTestRunner類來運行測試。

  Robotium是另一種通過InstrumentationTestRunner來完成Android交互式測試的架構(gòu),它橫跨多個activities,支持功能測試,系統(tǒng)測試和接收測試。Robotium支持Activities、Dialogs、Toasts、Menus、Context Menus甚至Honeycomb,并且它可以同Maven和Ant集成來完成持續(xù)集成測試。Robotium被稱之為針對Android應(yīng)用的又一個Selenium。

  Robolectric另辟蹊徑,它并不依賴于Android提供的測試功能,它使用了shadow objects并且運行測試于普通的工作站/服務(wù)器JVM,不像模擬器或設(shè)備需要dexing(Android dex編譯器將類文件編譯成Android設(shè)備上的Dalvik VM使用的格式),打包,部署和運行的過程,大大減少了測試執(zhí)行的時間。Pivotal實驗室聲稱使用Robolectric可以在28秒內(nèi)運行1047個測試。

  LessPainful將Android測試又推進了一步,它提供了一個多設(shè)備平臺自動化測試的服務(wù)。用戶上傳應(yīng)用(*.apk)和用Cucumber(一種業(yè)務(wù)相關(guān)的DSL)編寫的測試文件,選擇測試運行需要的設(shè)備配置,最后測試將自動執(zhí)行并生成測試報告。它支持的設(shè)備包括Garmin Asus,幾款HTC,LG,Samsung Galaxy,Sony Xperia和Motorola Motodefy。

  為了了解更多LessPainful提供的服務(wù)細節(jié),我們采訪了LessPainful公司的CEO Jonas Maturana Larsen。下面就是這次簡短的訪問:

  InfoQ:在不同版本的Android上運行應(yīng)用程序,存在什么問題了保程序能正常運行,開發(fā)者需要在Android的每一個版本上測試他的應(yīng)

  JML舉個例子,SAXParser在Android 2.2之前有一個bug存在于對ContentHandler.startElement的回調(diào)中,它導致應(yīng)用產(chǎn)生錯誤的行為。

  到目前為止,我們已經(jīng)在很多方面發(fā)現(xiàn)了不同操作系統(tǒng)版本間的差異性。其中一些可能在2.1-update1上導致崩潰,但可以正常運行于2.1-update3和2.2.

  InfoQ:不同的設(shè)備對Android,有沒有真正的區(qū)?你能否們舉個例子,比如Android2.2應(yīng)用可以運行在HTC但不能運行于Samsung?(或其他各種Android版本和設(shè)備制造商的合)

  JML在LG手機,HorizontalScrollViews有時會導致子視圖上的背景圖片消失。這個問題存在于我們測試的所有的LG手機,不管Android版本是多少。

  如果你不自己處理這類問題,它將導致你的應(yīng)用在不同設(shè)備上不盡相同。例如,Motorola將會用紅色邊框來高亮一個輸入域。在我曾經(jīng)參與的一個項目中,我們用同樣的紅色邊框來表示輸入有誤。

  還有一些問題,與其說和制造商相關(guān),不如說是和硬件相關(guān):比如,一些手機使用了較小的RAM和高分辨率的攝像頭,當你處理手機上的圖像時就會將導致崩潰。

  InfoQ測試是如何執(zhí)行的?

  JML測試就如同運行一個ActivityInstrumentationTestCase2,主要使用Robotium來運行。我們對應(yīng)用所做的唯一修改就是去掉已有的簽名,再為它重新生成我們的簽名文件。

  在測試運行完成后,應(yīng)用會被卸載,而手機也會被恢復到初始設(shè)置。

  InfoQ:與MonkeyRunner,Robotium和Robolectric相比,你所提供的服務(wù)有什么優(yōu)勢呢?

  JMLLessPainful是一種服務(wù),而并不僅僅是一種架構(gòu)。我們希望創(chuàng)建一種服務(wù),不但使測試能夠進行,并且比起其他任何一種架構(gòu),它能夠節(jié)省我們大量測試時間,還能夠幫助我們發(fā)現(xiàn)更多的bug。

  另外,我們相信使用Cucumber,可以清晰地定義高層次測試描述,同時可以更好地被開發(fā)團隊以外的人員共享。

  以Git領(lǐng)域為例,我們更希望成為像是GitHub那樣,而不只是通常的git庫。

  InfoQ:你劃未來要支持更多的設(shè)備嗎

  JML是的。我們計劃繼續(xù)增加對更多設(shè)備的支持。如果有這樣的要求提出,我們就會努力完成它。

  目前,我們也在著手于對ios設(shè)備的支持,希望beta版能在今年秋季發(fā)布。

  InfoQ:什么是LessPainful企業(yè)版?

  JML我們將提供一個工具集,它就類似于一個Mac Mini,但我們會非常靈活的滿足顧客的需求。LessPainful企業(yè)版目前還沒有正式推出,所以敬請期待。

  英文原文:Automated Testing Solutions for Android

it知識庫Android自動化測試解決方案,轉(zhuǎn)載需保留來源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 人妻中文字幕无码久久AV爆 | 97精品一区二区视频在线观看 | 国产精品三级在线观看 | 欧美成人精品高清在线观看 | 国内精品久久久久影院男同志 | www亚洲欲色成人久久精品 | 午夜福利体验试看120秒 | 欧美美女论坛 | 久久免费看视频 | 国产精品自在在线午夜蜜芽tv在线 | 亚洲中文无码亚洲人在线观看- | 艳鉧动漫1~6全集观看在线 | 成人高清护士在线播放 | 免费观看99热只有精品 | 亚洲精品自在在线观看 | 寂寞护士中文字幕 mp4 | 国产激情一级毛片久久久 | 91极品蜜桃臀在线播放 | 色AV色婷婷96人妻久久久 | 亚洲国产欧美日本大妈 | 涩涩免费视频软件 | 国产美女裸身网站免费观看视频 | 最近中文字幕免费高清MV视频6 | 校花爽好大快深点h | 精品亚洲麻豆1区2区3区 | 国产亚洲高清视频 | 毛片免费在线视频 | 中字幕视频在线永久在线 | 国产精品成人在线播放 | 中文字幕人成人乱码亚洲AV | 亚洲国产精品一区二区久久第 | 最近中文字幕2019免费版 | 美女用手扒开粉嫩的屁股 | 色AV色婷婷66人妻久久久 | 男人插曲女人下生免费大全 | 在线中文高清资源免费观看 | www.av一区| 黄得让人湿的片段 | 色偷偷亚洲男人天堂 | 超清无码波多野吉衣与黑人 | 好嗨哟在线看片免费 |