天天看點

騰訊Android自動化測試實戰3.1.3 環境搭建

<b>3.1.3 環境搭建</b>

使用robotium進行自動化測試的工程采用的是android junit test工程,基礎環境與android開發環境一緻,為了友善本書第3章及第10章的講解,本書的官網(http://tmq.qq.com/)附上了改造後的notepad和notepadtest工程,環境搭建步驟如下:

步驟1:安裝基礎環境(搜尋引擎搜“android開發環境搭建”)。

步驟2:導入工程。

下載下傳随書官網中的notepad和notepadtest兩個工程,打開eclipse→file→import,選擇“existing projects into workspace”,如圖3-2所示。選擇notepad工程所在的目錄,導入notepad工程。使用相同的步驟,導入notepadtest工程。如圖3-3所示。

圖3-2 選擇導入已存在的工程至工作空間

圖3-3 選擇notepad及notepadtest工程所在的目錄

步驟3:配置工程。

導入兩個demo工程後,由于兩個工程均包含有一些配置檔案,是以如果沒有提示錯誤,則可以直接使用;如果還有提示錯誤,請依實際情況檢查以下配置項。

(1)配置簽名:兩個工程需要簽名一緻,這裡使用android開發環境中自帶的debug.keystore進行簽名,是以需要確定環境中包含該簽名檔案,簽名配置檢視:window→preferences→android→build,如圖3-4所示。

(2)配置build target:build target即指定使用哪個android平台來建構這個項目,兩個工程均配置為使用target=android-19,即使用sdk中platforms目錄下android-19目錄中的android.jar這個jar包編譯項目,如圖3-5所示。

若你的開發環境中未下載下傳相應的api level的jar包,請使用sdk manager下載下傳,或者自行将project.properties配置檔案中的target換成使用者機器中已下載下傳的api level。

圖3-4 檢查簽名檔案

圖3-5 配置build target

(3)引用robotium的jar包并關聯源碼:robotium測試架構以jar包形式提供,在測試工程中引用robotium的jar包即可。android的junit形式測試工程與android工程一樣,将要引用的jar包放入libs目錄下,在eclipse中将預設變成android private libraries私有庫,這樣預設在eclipse中就可以引用該jar中的api,在編譯時也會将其編譯進測試工程的apk中,如圖3-6所示。

此外,為了友善檢視robotium中的源碼實作,一般也會選擇關聯引用的jar包的源碼,如上圖所示,在libs中建立相應的properties檔案,然後使用src = 形式的指令指定源碼所在的目錄即可。

圖3-6 配置robotium的jar包并關聯源碼

(4)配置編碼:新導入工程後,由于工程裡會含有一些中文注釋,常常會由于編碼不一緻,導緻代碼結構被破壞而引起工程編譯出錯,demo中的兩個工程均采用utf-8編碼,是以需要檢查導入後編碼是否為utf-8,右鍵工程依次選擇properties→resource,檢視編碼,如圖3-7所示。

圖3-7 配置編碼

(5)配置instrumentation:測試工程需要配置instrumentation以指定要注入的被測程序,即指定被測app,在notepadtest中使用&lt;instrumentation&gt;标簽指定targetpackage為被測應用的包名,如圖3-8所示。

步驟4:運作示例。

首先確定有手機開啟了usb調試,并連接配接了電腦,然後如圖3-9所示,右鍵選擇示例的測試類,例如右鍵選擇notepadtest.java類,選擇run as→android junit test,即可運作demo中的測試用例。

圖3-8 配置instrumentation

圖3-9 運作示例

對于環境搭建,新手較容易出現如下問題:

常見問題1:the import

android cannot be resolved

需要檢查上文配置工程部分中配置的build target是否正确。

常見問題2:java.lang.noclassdeffounderror:com.robotium.solo.solo

noclassdeffounderror指在編譯時該類是存在的,但在運作的時候找不到該類,報找不到solo類時一般意味着robotium的jar包未打進測試工程的apk包中。首先,右鍵測試工程→build path→configure build path,檢視確定在libraries中包含了robotium,如圖3-10所示。由于demo中将robotium的jar包放至libs目錄下了,是以預設将包含至android private libraries中。

然後,如圖3-11所示,在build path的order and export中確定robotium的jar包處于勾選狀态(處于勾選狀态即意味着該jar的class類将被打包進測試工程的apk中,而例如android sdk中的android.jar包,由于其class類在手機的android系統中已存在,是以不需要勾選,在運作時也可以找到相應的類)。

圖3-10 確定libraries中包含robotium

圖3-11 確定order and

export中robotium的jar包被勾選

繼續閱讀