robotium基於Android studio無源碼測試

一、思路:
1、當我們在Android studio中運行測試用例時首先會編譯出app-debug.apk和app-debug-androidTest.apk,然後通過adb命令將被測試apk push到手機然後執行adb命令進行安裝;測試apk亦然。最後在調用adb shell am instrument.....命令來啓動測試用例
2、Android studio將測試工程做了密封,無法設置Android:targetPackage的值
這就使得我們無法指定被測試應用,只能將當前工程的Android應用工程的包名設置爲我們要測試的應用包名,但是這樣安裝的時候會提示我們已存在相同包名的應用是否卸載
3、所以只要我們在編譯好apk後,將當前工程編譯好的apk替換成我們的被測試apk不就搞定了嗎!
4、首先定義task任務,將我們的目標被測試apk複製到studio默認的apk生產文件夾下,那麼這個task任務的執行時間就要在編譯完成後,執行adb push  .apk之前。
5、在Android studio run/debug配置界面有這麼一個東西before launch,這正好解決了我們的問題,那麼下面我們來試試具體操作


二、在app模塊下build.gradle文件中自定義一個task任務:
        
task copyTask(type: Copy) {
    from '被測試.apk'//將被測試apk放在工程app目錄下
    into 'build/outputs/apk/'//將apk複製到指定目錄
    rename { String fileName -> //在複製時重命名文件
        fileName = "app-debug.apk" // 重命名
    }
}

 在
defaultConfig中定義被測試apk報名和測試啓動類InstrumentationTestRunner
    
defaultConfig {
                    applicationId "com.xx.xx"//被測試app的包名
                    minSdkVersion 18
                    targetSdkVersion 23
                    versionCode 1
                    versionName "1.0"
                    testInstrumentationRunner "android.test.InstrumentationTestRunner"
    }
在app目錄build.gradle文件中的dependencies模塊添加robotium包依賴

三、創建測試類
在androidTest.java目錄下創建一個測試類TestDemo,繼承父類ActivityInstrumentationTestCase2

接下來獲取被測app的啓動activity的class對象和定義測試用例:
public class TestDemo extends ActivityInstrumentationTestCase2 {
    private static Class<?> launcherActivity;
    public Solo solo;
    static {
        try {
            launcherActivity = Class.forName("被測app的launchactivity");
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
    }

    public TestDemo() {
        super(launcherActivity);
    }

    @Override
    protected void setUp() throws Exception {
        solo=new Solo(getInstrumentation(),getActivity());
    }

    @Override
    protected void tearDown() throws Exception {
        solo.finishOpenedActivities();
    }
    public void testCase_001(){
        solo.sleep(5000);
        Log.e("123","啓動測試成功");
    }
}

四、接下來就是運行測試用例

在工具欄點擊run,點擊Edit configurations 在Defaults中點擊Android Tests,在before launch中添加gradle-aware make在輸入框中輸入,自定義的task任務,確定後就大功告成。 

接下來我們直接在測試用例中點擊運行我們的測試用例即可

讓我們看一看測試結果

OK,robotium在Android studio無源碼完美運行
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章