手機UI自動化測試工具NativeDriver VS Robotium
最近在調研手機端的自動化測試工具,之前看到了Robotium這個工具也寫了幾個用例,后面發現了NativeDriver工具,也寫了幾個 例子,下面主要從官方介紹以及寫例子的過程中發現的一些問題對比一下兩種工具的優缺點吧,也是剛開始做自動化測試不久,暫時還沒有了解工具底層的一些東 西,以下僅是自己個人觀點,如果有不全面的歡迎大家評論補充討論。現在打算使用NativeDriver工具來進行手機端UI自動測試。
NativeDriver:
官方地址:http://code.google.com/p/nativedriver/
優點:
1、跨平臺,android平臺的源代碼已經公開,IOS的不久也將要發布,windows平臺的在計劃中,以后針對不同的平臺都可以使用相同的語言和相同的API來寫用例。
2、使用WebDriver API(selenium2.0也加入了WebDriver )進行的擴展,對于熟悉WebDriver的用戶,上手會更加的快(PS:還不熟悉WebDriver,有空學習一下)
3、類似于selenium RC的方式來運行測試程序,這個可以看下面的NativeDriver架構圖,測試程序通過http+json訪問模擬器上的server,然后進行相應的模擬操作
4、元素查找可以直接使用通過hierarchyviewer工具識別出來了資源ID來進行元素查找定位
5、支持WebView控件
缺點:
1、被測程序需要加入工具提供的server-standalone.jar,以及修改AndroidManifest.xml文件后專門打build用于測試,具體見:
http://code.google.com/p/nativedriver/wiki/AndroidMakeAnAppTestable
2、現在NativeDriver提供的API還是有些少,不過可以自己擴展一下。
3、貌似沒發現wait相關的api,需要自己來封裝一下來等待響應控件的操作了。
4、這是在寫測試用例的時候發現的,不知道是哪里的問題,先就算作缺點吧,比如對文本框輸入文字,如果當前文本框沒有獲取焦點,是輸入不了文字的,sendKeys輸入之前需要click一下獲取到焦點。
WebElement passWord = driver.findElement(By.id("PassWord"));//找到資源id為PassWord的控件
passWord.clear();//清除控件文字
passWord.click();//點擊選中控件,此時會獲取到焦點
passWord.sendKeys("123");//控件中輸入內容
5、由于是剛推出來,網上的資料還是比較少的,需要自己去摸索,而且官方API也沒有,還好有源代碼可以看一下
Robotium:
官方地址:http://code.google.com/p/robotium/
優點:
1、提供的API相應的還是比較豐富的
2、網上相關資料稍微會多一些
缺點:
1、 測試程序也需要生產APK文件,安裝到模擬器或者設備上,所以如果被測程序和測試程序簽名不一樣是測試不了的,這就需要測試之前我們去修改被測程序的簽 名。不過按照計劃,后續的版本會提供類似于selenium RC模式的,到時候可能會解決這個問題,但是還不知道什么時候發布。
2、不支持跨平臺
3、API中很多使用控件的位置(index索引)來查找,這樣子對以后用例的維護會有些不方便。同時API中有按照id來查找的使用的確是R.java自動生成的文件中的id,但是通過工具只能識別到資源控件id,這個還需要自己通過資源控件id去查找一下才行
posted on 2014-06-30 18:16 順其自然EVO 閱讀(396) 評論(0) 編輯 收藏 所屬分類: selenium and watir webdrivers 自動化測試學習 、android