2016-02-23 127 views
10

過去幾周,我在使用Appium(python)進行android測試,但昨天我們決定轉換到Expresso(Java)進行自動測試。有幾個原因讓我們進行這種轉變:Appium v​​s Espresso用於自動化測試框架

  • 我們想擴展我們的自動化測試,並且有許多功能在appium中不存在。

  • 這是最新的android測試框架之一,具有很好的向後兼容性。

  • 小API,非常容易定製。

我一直在閱讀Espresso,但我根本沒有發現任何好東西,如果我將它與Appium比較。我是Python/R developer,所以也許有幾點我不能理解。任何人都想幫助我理解這個新測試框架的轉變對未來是否有好處?我錯過了這裏的大圖,任何幫助將不勝感激。

+0

別忘了分享你的經驗/印象 – kiedysktos

回答

8
  1. 換擋將是非常有用的咖啡支持像攝像頭,瀏覽器和撥號器等,這appium不支持應用程序之外的測試活動。
  2. 意式濃縮咖啡您可以測試吐司消息,自動完成和在應用程序之外的對話框。
  3. 隨着濃縮咖啡測試西服,你可以找到代碼覆蓋率和衡量你的測試工作。
+2

我我不確定你可以用Espresso測試應用程序以外的東西,爲此你需要使用類似於ui-automator的東西。請參閱https://developer.android.com/training/testing/ui-testing/espresso-testing .html和https://developer.android.com/training/testing/ui-testing/uiautomator-testing.html –

+1

@YairKukielka確實,Espresso不支持在應用程序之外進行測試,但它可以與UiAutomator協同工作。 ,在相同的測試代碼中,您可以編寫Espresso以及UiAutomator,以及在應用程序之外進行測試。參考:https://plus.google.com/+AndroidDevelopers/posts/WCWANrPkRxg – user846316

+1

您可以使用Espresso Intent來測試Came ra和電話的撥號器活動在您的應用程序之外。這就是我的意思在我的答案。 –

8

如果您只堅持Android自動化並且不知道自動化iOS,那麼您可以去Espresso。

AFIKW,Espresso需要應用程序的源代碼才能使其自動化。

優點是,它直接由谷歌開源。

但是我的目標是與Appium合作,因爲它是一個大型的開源社區,它的方式有很大的增強,並且易於使用任何編程語言自動化,不用說它支持Android和iOS。

+1

我同意你的看法。 –

+0

你能澄清一下你的意思是'巨大的增強功能'嗎?我找不到太多的意義。 – olevegard

+0

我認爲appium支持非常低的api水平,現在它仍然是唯一的'5.0',這是不好的 –

4

我同意Espresso在單獨進行Android測試時可能非常高效。例如,它只能運行它正在測試的活動,這很好。

不過,我堅持Appium,因爲它對於AndroidDriver和iOSDriver都有相同的API。通常,Android應用程序會附帶iOS應用程序,如果您要負責UI自動化,則必須考慮總體成本。

Appium具有以下超過特定平臺的解決方案的優點:

  • Android和iOS測試可以共享許多類,包括輔助方法和配置,
  • Android和iOS測試可以在更高的水平共享公用測試邏輯,同時在較低層次上有不同的或稍微不同的實現(例如,有時我可以複製整個頁面對象類並簡單地更改定位器以使其在其他平臺上工作),同一API使我們能夠無縫地在iOS和Android測試版之間切換在團隊中發揮作用。輕鬆切換到Selenium進行Web開發是額外的好處。

Appium最大的缺點是速度更長,測試場景和定位元素有些困難,但仍然是我的選擇。

作爲附註,我想補充一點,您不應該忘記引用測試自動化的測試金字塔。請保持平衡單元測試,集成測試之間的UI測試http://martinfowler.com/bliki/TestPyramid.html

+0

在穩定性和長期維護成本方面,您會推薦什麼? Appium或Espresso? –

1

兩者之間的主要區別是,

咖啡的測試是在應用程序中,它知道應用程序的所有層。所以你可以模擬某些層次的應用程序,更像是一個白盒測試

Appium測試是黑盒子,測試只知道應用程序的UI層。主要優勢在於跨平臺測試。