• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • 一種用于云中Android UI的快速自動化測試框架

    發表于:2013-11-27來源:InfoQ作者:Abel Avram點擊數: 標簽:測試框架
    一種用于云中Android UI的快速自動化測試框架 Google開源了Espresso,這是一種Android自動化測試框架,使測試人員可以在云中x86機器的多線程環境里運行測試,并解決了關于UI測試的并發問題。

      Google開源了Espresso,這是一種Android自動化測試框架,使測試人員可以在云中x86機器的多線程環境里運行測試,并解決了關于UI測試的并發問題。

      由于Android設備數量和種類眾多,在真實的設備上運行測試非常耗時,而且成本很高。一種解決方案是在模擬器上執行測試。模擬器是一個可控的環境,支持多種OS版本、屏幕尺寸和內存限制。這種方法可以捕獲大部分代碼Bug,剩下的Bug可以留給真實設備測試和人工測試去發現。

      模擬器的問題是執行速度,其中,在模擬的ARM CPU上運行Android是一個瓶頸。為了解決這個問題,Google已經創建了可以直接在x86硬件上運行的Android版本,并使用了VM加速。另一個瓶頸是Android的啟動時間。該問題已經通過抓取OS快照并執行快照得以解決。該方法可以在很短的時間內提供期望的OS和應用程序配置。早在今年3月份,Google就已經使用該方法完成了8200萬次Android測試。

      通過比較在Nexus 4和模擬器上的測試發現,后者需要真實設備上測試時間的65%來完成測試。因此,一個好的模擬器似乎已經解決了自動化測試問題。但是,還有另一塊絆腳石。自動化測試使用Android的Instrumentation API,這些API的調用在一個與UI線程不同的線程中運行,因此,使用自動化方法測試用戶界面會導致嚴重的并發問題,進而產生不一致不可靠的測試結果。 Google對這個問題的解決方案是Espresso,它是一個測試框架,能夠使UI測試在多線程環境中安全地運行,并移除了關于編寫測試的大部分樣板代碼。Espresso可以跨各種移動設備工作,包括電話、電視、智能眼鏡、汽車等。它還可以跨不同屏幕尺寸和內存大小、多個API版本以及不同網絡工作。據Espresso幕后團隊介紹,他們的解決方案捕獲了Android和應用程序中99%的Bug,只給真實設備測試和人工測試留下了少數Bug,減少了整體的測試工作量。

      下面是Espresso中斷言視圖未顯示的測試示例:

      onView(withId(R.id.bottom_left)).check(matches(not(isDisplayed())));

      讀者可以在這里找到其它測試示例。

      目前,Espresso還處于開發人員預覽狀態,在Google Code上提供。但思路是,等到它足夠成熟和穩定以后,將其遷移到Android SDK中。Google使用Espresso測試了他們自己的超過30個應用程序,包括G+、Maps和Drive。

    原文轉自:http://www.infoq.com/cn/news/2013/10/google-espresso-testing

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>