Robotium學習筆記三

以下是從網絡上抄錄的一些Robotium注意事項


1)有些button沒有string,沒有text,只能通過index來click這樣很不直觀,而且button的index並不是固定的,有可能隨着控件重新加載,順序也有可能發生變化,無法保證測試結果。查看了robotium源碼,發現大多數click方法最終都是通過傳入參數轉成view,再調用clickOnView,於是參照着寫了一個通過button的ID來click的方法。Button的ID需要查看測試對象的源碼中獲取。比如導航中就有菜單欄大多數據button就是這種類型的。


2)listview動態添加item如何判斷添加成功。可從添加前及添加後Item個數判斷,先確定添加item的屬性,再通過相應的方法獲取item。比如添加一個item可能需要三個textview,那麼通過getCurrentTextViews(View)前後獲取到的個數差就相差三個。比如添加黑名單到黑名單列表。


3)有些EditText輸入時調出輸入法,但有些EditTextl輸入時不會調出輸入法,如果調出了輸入法,需要goBack()關閉輸入法纔可進行下一步操作。比如手機防盜輸入密碼會調出輸入法,酷盾帳號登錄或是註冊時不會調出輸入法。


4)有些控件是開發自已寫的,robotium沒有相應的API可用,可以使用clickOnScreen()大概預估一個x,y值,0座標在左上角。比如備份還原中從備份界面切換到酷盾帳號界面,黑名單中進入黑名單列表。


5)點擊listview中隨機添加的item。隨機添加的item無法得知text,則可以通過clickInList(int line)。比如黑名單列表。


6)有些界面robotium提供的滾動功能不起作用,需要找當前activity屏幕之外的button或是其他view時,可以通過solo.sendKey()發送向上、向下或是左右移動焦點找到需要點擊的button或是其他view。


4. 結果判斷
4.1 waitForText
    該方法適用於點擊操作後需要一點時間才返回結果的結果判斷。比如聯網操作,可以設置適當的延時,等待返回結果,判斷結果更加正確。


4.2 assertActivity
    該方法適用於activity時,可以判斷點擊操作切換Activity是否正確,可以與waitfortext配合使用。


4.3 searchText+assert
    當有editText時,輸入內容後,可通過searchText查找輸入內容是否是預期結果,再將返回結果判斷。
注:有些editText的內容無法通過searchText,原因暫時沒找到。比如:手動添加黑名單時的名稱及號碼的輸入框。


5. 執行
    有兩種方式,一種是通過eclipse;一種是通過命令行。


5.1 eclipse
    Run as Android JUnit Test,可以跑整個測試工程,也可以跑單個測試用例。


5.2 命令行
adb install ****Test.apk
adb shell am instrument testpackagename/android.test.InstrumentationTestRunner
抓取log的關鍵字是TestRunner。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章