1. 程式人生 > >Appium與Robotium區別

Appium與Robotium區別

觸摸 用戶 不能 語言設置 分開 clas 輸入文字 例子 mat

Appium是基於UIAutomator框架實現的。Appium測試進程與目標應用進程是分開的,所以Appium不能直接訪問目標應用的各種element屬性進行copy&paste,而只能模擬觸發相應的事件對目標應用進行操作。這就好比觸摸屏監控驅動和目標應用的關系:驅動監控到用戶點擊屏幕的事件後,驅動就會去判斷點擊的位置是否是一個文本框,如果是的話,就去打開系統鍵盤給用戶進行輸入。

  Robotium是基於Instrumentation框架的。Robotium測試進程與目標應用是在同一個進程中作為兩個不同的線程運行的。也就是說Robotium測試線程是有辦法直接訪問目標應用的各種element屬性的,可以訪問浮層,Intent之類的。所以它根本不需要觸發任何事件,直接就可以在內部修改相應的數據,比如這個例子中的文本框輸入文字。

  那麽單單針對文本輸入來說,Robotium和Appium優劣如何呢?我個人認為可以從以下幾點出發進行考慮:

  Robotium是直接Copy&Paste,所以效率當然會更高,特別是在長字符串輸入的時候,比如,輸入一篇文章,如果在Appium上調用鍵盤,特別當你的安卓設別性能不高的情況下,你會明顯感覺到卡卡的。

  Robotium因為不需要調出鍵盤,所以很容易就能輸入各種不同語言;而Appium就不一樣了,如果當前英文而你需要輸入中文,那麽你要去調用系統setting的應用先去把語言設置成中文,選擇中文輸入法等,然後再切換到目標應用進行輸入操作。

  Appium更能模擬用戶的行為操作;而Robotium偏向測試金字塔更底層點的Unit Test(所以Robotium除了能支持測試目標應用的Activity外,還能測試Content Provider等)

Appium與Robotium區別