Robotium針對只有apk包的測試入門例子

  • 環境搭建

  1. 安裝jdk,配置環境變量。
  2. 下載安裝Android SDK,並更新
  3. 下載Eclipse,並安裝
  • 操作步驟

  1. 使用工具re-sign.jar對APK重簽名,在命令行裏,輸入>java -jar 路徑\re-sign.jar,將apk拖入就ok,記住packagename和mainActivity
  2. 打開Eclipse,新建一個Android Test Project

    創建項目

    選擇An existing Android project

  3. 修改manifest.xml文件,
    <span style="color:#444444;"><?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
    </span>  <span style="background-color: rgb(255, 255, 204);"> </span><span style="background-color: rgb(255, 255, 51);"> package="com.mobile.test"</span><span style="color:#444444;">
        android:versionCode="1"
        android:versionName="1.0" >
    
        <uses-sdk android:minSdkVersion="14" />
    
        <instrumentation
          </span> <span style="background-color: rgb(255, 255, 255);"> </span><span style="background-color: rgb(255, 255, 51);">android:name="android.test.InstrumentationTestRunner"
            android:targetPackage="com.mobile" /><span style="color:#ffffff;">
    </span></span><span style="color:#444444;">
        <application
            android:icon="@drawable/ic_launcher"
            android:label="@string/app_name" >
            <uses-library android:name="android.test.runner" />
        </application>
    
    </manifest></span>

    在測試工程中新建lib文件夾,將下載好的Robotium jar包拷入lib中,並在build path中將jar包引入工程

  4. 新建一個junit測試類,代碼如下:
    <span style="color:#444444;">package com.mobile.test</span><span style="color:#444444;">
    import com.robotium.solo.Solo;
    
    import android.test.ActivityInstrumentationTestCase2;
    import android.widget.Button;
    import android.widget.EditText;
    public class Logintest extends  ActivityInstrumentationTestCase2{
    	//聲明一個Solo對象
    	private Solo solo;
    	private ViewFetcher viewFetcher;
    	private static final String LAUNCHER_ACTIVITY_FULL_CLASSNAME="com.mobile.ui.activity.LoginActivity";
    	//聲明一個Class類型的變量,用於ActivityInstrumentationTestCase2加載啓動被測程序
    	private static Class launcherActivityClass;
    	//聲明一個標籤用於日誌的輸出控制,便於調試
    	final String TAG="testStartIndexPageActivity";
    	static{
    		try {
    			launcherActivityClass = Class
    					.forName(LAUNCHER_ACTIVITY_FULL_CLASSNAME);
    		} catch (ClassNotFoundException e) {
    			throw new RuntimeException(e);
    		}
    	}
    	
    	//構造函數,傳入launcherActivityClass即可
    	public Logintest ()
    	{
    		super(launcherActivityClass);
    	}
    	
    	//初始化了Solo實例
    	public void setUp() throws Exception {	
    		solo = new Solo(getInstrumentation(), getActivity());
    	}
    	
    	//用例結束
    	public void tearDown() throws Exception {
    		solo.finishOpenedActivities();
    	}
     //登入應用
    	public void testlogin() throws Exception {		
    		Button lc = solo.getButton("登錄");
    	        assertTrue(lc != null);
    		final String fieldValue1 = "admin";
    		final String fieldValue2 = "admin";
    		EditText editText = (EditText) solo.getView("login_name");
    		EditText editText1 = (EditText) solo.getView("login_pass");
    		solo.enterText(editText, fieldValue1);
    		solo.enterText(editText1, fieldValue2);
    		// find button and click it
    		solo.clickOnButton("登錄");
    		solo.sleep(1000);
    	}
    </span>
  5. 確保上述操作無誤,即可點擊測試用例執行測試了。

 

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