標籤:
1、Monkeyrunner:優點:操作最為簡單,可以錄製測試指令碼,可視化操作;缺點:主要產生座標的自動化操作,移植性不強,功能最為局限;
2、Rubotium:主要針對某一個APK進行自動化測試,APK可以有源碼,也可以沒有源碼,功能強大;缺點是針對APK操作,而且需要對APK重新簽名(有工具),因此操作相對複雜;
3、UiAutomator:優點:可以對所有操作進行自動化,操作簡單;缺點:Android版本需要高於4.0,無法根據控制項ID操作,相對來說功能較為局限,但也夠用了;
4、Monkey:準確來說,這不算是自動化測試,因為其只能產生隨機的事件,無法按照既定的步驟操作;
由上面介紹可以有這樣的結論:測試某個APK,可以選擇Rubotium;測試過程可能涉及多個APK,選擇UiAutomator;一些簡單的測試,選擇Monkeyrunner;
| |
Hierachyview+Monkey |
UiAutomator + Monkey |
Robotium |
許可權 |
root |
普通 |
普通 |
是否需要簽名 |
是 |
否 |
否 |
響應速度 |
10s(網友測試資料) |
4s(網友測試資料) |
1-2s |
是否支援WebView |
否 |
否 |
是 |
是否支援跨應用測試 |
是 |
是 |
否 |
支援該特性的Android API |
? |
API 16 |
API 7 |
是否支援控制項ID |
是 |
否 |
是 |
從上述資料來看,Android提供的測試載入器各有優缺點,有的支援WebView測試,有的不支援。有的支援跨應用,有的不支援。因此,一個好的Android測試載入器,更多地是相容了上述幾種測試方法。例如,Appium。
UiAutomator Testcase類繼承自JUnit的TestCase類。而Robotium、Espresso則繼承自activityInstrumentationTestCase2。從這個繼承關係,我們也能理解為什麼採用Robotium的方式,應用需要簽名。而採用UiAutomator則不需要。其原因是:採用Robotium的方式,其測試代碼本質上是一個APK。根據Android的安全機制,應用是需要簽名的。
Android自動化測試架構