天天看點

基于 Robotium 自動化測試工程從 Eclipse 遷移至 Android Studio導讀一、環境準備二、按官方文檔導入項目三、設定代理四、調整測試工程五、配置Java依賴庫六、修改簽名七、運作測試用例八、持續建構測試工程

作者:陳航特 團隊:騰訊移動品質中心TMQ

2016年11月份,google已正式宣布停止對內建開發環境(IDE)Eclipse的支援,雖然早在google推出Android Studio時就早已知道這一天遲早會到來,但由于多年的Eclipse使用習慣及項目中的其他原因,自動化測試工程仍然使用Eclipse中進行開發與維護。在自動化測試适配Android7.0版本時,發現Eclipse已無法很好支援用例的編寫與調試,故遷移至Android Studio已成必然。

本文記錄介紹在Eclipse上的基于Robotium自動化測試工程如何遷移至Android Studio,如何配置項目,及如何基于gradle持續建構測試工程。

1、安裝Android Studio;

下載下傳位址:http://www.android-studio.org/

2、更新JDK至1.8(推薦);

新版的Android工具大多用的JDK1.8,不過如果是用的Android Studio,則推薦使用内建的JRE環境。

基于 Robotium 自動化測試工程從 Eclipse 遷移至 Android Studio導讀一、環境準備二、按官方文檔導入項目三、設定代理四、調整測試工程五、配置Java依賴庫六、修改簽名七、運作測試用例八、持續建構測試工程

3、檢查确認安裝好的Android Studio關聯好正确的Android sdk路徑。

官方詳情文檔:https://developer.android.com/studio/intro/migrate.html#android_studio

按文檔中所介紹的,将Eclipse項目導入Android Studio中,導入後工程目錄結構如下:

基于 Robotium 自動化測試工程從 Eclipse 遷移至 Android Studio導讀一、環境準備二、按官方文檔導入項目三、設定代理四、調整測試工程五、配置Java依賴庫六、修改簽名七、運作測試用例八、持續建構測試工程

app/src/main目錄下包含了原測試工程作為Android項目的主要檔案,包含代碼檔案java、清單檔案AndroidManifest.xml等。同時Android Studio自動生成了build.gradle、gradlew等等gradle建構相關的檔案。

若國内網絡受限,可以對Android Studio設定網絡代理。

基于 Robotium 自動化測試工程從 Eclipse 遷移至 Android Studio導讀一、環境準備二、按官方文檔導入項目三、設定代理四、調整測試工程五、配置Java依賴庫六、修改簽名七、運作測試用例八、持續建構測試工程

Android Studio是将被測工程與測試工程放一起的,而我們這個基于Robotium的自動化測試不想依賴源碼。當時是為了獨立apk工程,是以遷移後,需要将main下的目錄全拷貝一份至androidTest目錄,同時為了使main目錄下能正常編譯,建立了個空殼Android項目,即main下隻包含一個簡單Activity的最簡Android工程。結構如下:

基于 Robotium 自動化測試工程從 Eclipse 遷移至 Android Studio導讀一、環境準備二、按官方文檔導入項目三、設定代理四、調整測試工程五、配置Java依賴庫六、修改簽名七、運作測試用例八、持續建構測試工程

需要注意的是,Android Studio預設會将androidTest目錄下的測試工程的packagename設定為被測工程的packagename加字尾.test,即若Android工程的packagename為com.tencent.example,那麼測試工程的packagename則為com.tencent.example.test。而為了讓包名與原來保持一緻,需要修改build.gradle,設定testApplicationId。

剛将Eclipse工程導入Android Studio後,依賴庫可能設定有誤,此時需要修改相應依賴庫File——Project Structure。

基于 Robotium 自動化測試工程從 Eclipse 遷移至 Android Studio導讀一、環境準備二、按官方文檔導入項目三、設定代理四、調整測試工程五、配置Java依賴庫六、修改簽名七、運作測試用例八、持續建構測試工程

相應的Scope有compile、TestCompile、Provided、Debug Compile等等。

Test Compile:建構測試工程時用到的依賴包;

Provided:編譯時需要,但不需要打包進apk的依賴包。

設定後,build.gradle建構檔案中會自動生成類似如下的内容:

基于 Robotium 自動化測試工程從 Eclipse 遷移至 Android Studio導讀一、環境準備二、按官方文檔導入項目三、設定代理四、調整測試工程五、配置Java依賴庫六、修改簽名七、運作測試用例八、持續建構測試工程

也可直接修改build.gradle檔案調整依賴包。

類似于Eclipse,測試工程需要與被測工程同樣的簽名,為了在平時調試時就能正常運作用例,需要Android Studio對測試工程的打包預設就用被測工程的簽名。

基于 Robotium 自動化測試工程從 Eclipse 遷移至 Android Studio導讀一、環境準備二、按官方文檔導入項目三、設定代理四、調整測試工程五、配置Java依賴庫六、修改簽名七、運作測試用例八、持續建構測試工程
基于 Robotium 自動化測試工程從 Eclipse 遷移至 Android Studio導讀一、環境準備二、按官方文檔導入項目三、設定代理四、調整測試工程五、配置Java依賴庫六、修改簽名七、運作測試用例八、持續建構測試工程

配置後,相應的build.gradle檔案就會包含相應的簽名資訊:

基于 Robotium 自動化測試工程從 Eclipse 遷移至 Android Studio導讀一、環境準備二、按官方文檔導入項目三、設定代理四、調整測試工程五、配置Java依賴庫六、修改簽名七、運作測試用例八、持續建構測試工程

1、運作用例類中的所有用例:

右鍵選中測試用例類,選擇Run xxxTest;

2、運作用例類中的某個用例:

打開該用例類,光标放在該用例的代碼中,右鍵選擇Run即可

要修改運作配置,則如下圖點選Edit Configurations。

基于 Robotium 自動化測試工程從 Eclipse 遷移至 Android Studio導讀一、環境準備二、按官方文檔導入項目三、設定代理四、調整測試工程五、配置Java依賴庫六、修改簽名七、運作測試用例八、持續建構測試工程
基于 Robotium 自動化測試工程從 Eclipse 遷移至 Android Studio導讀一、環境準備二、按官方文檔導入項目三、設定代理四、調整測試工程五、配置Java依賴庫六、修改簽名七、運作測試用例八、持續建構測試工程

運作用例後可以在指令行中看到am instrument調起用例:

基于 Robotium 自動化測試工程從 Eclipse 遷移至 Android Studio導讀一、環境準備二、按官方文檔導入項目三、設定代理四、調整測試工程五、配置Java依賴庫六、修改簽名七、運作測試用例八、持續建構測試工程

至此,Eclipse中的測試工程就已經遷移至Android Studio,且可以正常運作測試用例了。

Android Studio的工程根目錄下有gradlew可執行檔案,該檔案即gradle的封裝版,可以不用事先手動安裝gradle。運作gradlew tasks可以看到目前項目的gradle任務清單,如下圖所示,可以看到使用gradlew assembleAndroidTest即可建構測試工程。

基于 Robotium 自動化測試工程從 Eclipse 遷移至 Android Studio導讀一、環境準備二、按官方文檔導入項目三、設定代理四、調整測試工程五、配置Java依賴庫六、修改簽名七、運作測試用例八、持續建構測試工程

參考附錄:

1、測試工程官方詳情文檔:

https://developer.android.com/studio/test/index.html;

2、Eclipse工程遷移至Android Studio文檔:

https://developer.android.com/studio/intro/migrate.html#android_studio;

3、Android Studio使用者指南:

https://developer.android.google.cn/studio/intro/index.html?hl=zh-cn。

擷取更多測試幹貨,請搜尋微信公衆号:騰訊移動品質中心TMQ!