第二章 環境搭建

 做任何程序開發之前的第一項工作就是搭建環境,同樣在開始Robotium自動化測試之前,搭建相應的測試環境也是首要任務。

2.1 Android開發環境搭建

由於Robotium是基於Android的自動化測試框架,首先要搭建Android開發環境。

2.1.1 JDK安裝

如果你還沒有安裝JDK的話,可以去網上下載,接下來的工作就是根據安裝提示一步一步走。然後設置相應的環境變量,設置環境變量步驟如下:

1)我的電腦->屬性->高級->環境變量->系統變量中添加以下環境變量:

JAVA_HOME值爲: D:\ProgramFiles\Java\jdk1.6.0_18(你安裝JDK的目錄

CLASSPATH爲:.;%JAVA_HOME%\lib\tools.jar;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\bin;

Path: 在開始追加 %JAVA_HOME%\bin;

NOTE前面設置環境變量對搭建Android開發環境不是必須的,可以跳過。

2)安裝完成之後,可以在檢查JDK是否安裝成功。打開cmd窗口,輸入java –version 查看JDK的版本信息。出現如圖2.1.1所示表示安裝成功了:                                                                                                                                   

 

圖2.1.1、驗證JDK安裝是否成功

2.1.2 Eclipse安裝

Eclipse是一個開發的利器,關於這個開發工具,我們就不多說了,如果你沒有安裝,請從網上下載對應你操作系統位數的,最新版本的Eclipse,解壓即可使用。當然也有已經集成了ADT版本的Eclipse,這樣你就可以省略下面的ADT的安裝步驟了。

2.1.3 Android SDK安裝

Android Developers下載android-sdk_r05-windows.zip,下載完成後解壓到任意路徑。

·  運行SDK Setup.exe,點擊Available Packages。如果沒有出現可安裝的包,請點擊Settings,選中Misc中的"Force https://..."這項,再點擊Available Packages

·  選擇希望安裝的SDK及其文檔或者其它包,點擊Installation SelectedAccept AllInstall Accepted,開始下載安裝所選包

·  在用戶變量中新建PATH值爲:Android SDK中的tools絕對路徑(本機爲D:\AndroidDevelop\android-sdk-windows\tools)。

 確定後,重新啓動計算機。重啓計算機以後,進入cmd命令窗口,檢查SDK是不是安裝成功。運行 android –h 如果有類似圖2.1.3所示的輸出,表明安裝成功:

 

圖2.1.3驗證Android SDK是否安裝成功

2.1.4 ADT安裝

打開 Eclipse IDE,進入菜單中的 "Help" -> "Install New Software"

·  點擊Add...按鈕,彈出對話框要求輸入NameLocationName自己隨便取,Location輸入http://dl-ssl.google.com/android/eclipse。如圖2.1.4.1所示:

2.1.4.1 安裝ADT

·  確定返回後,在work with後的下拉列表中選擇我們剛纔添加的ADT,我們會看到下面出有Developer Tools,展開它會有Android DDMSAndroid Development Tool,勾選他們。如圖2.1.4.2所示:

                                                                     圖2.1.4.2添加Developer Tools

·  然後就是按提示一步一步next

完成之後:

·  選擇Window >Preferences...

·  在左邊的面板選擇Android,然後在右側點擊Browse...並選中SDK路徑,本機爲: D:\AndroidDevelop\android-sdk-windows

·  點擊ApplyOK。配置完成。

2.1.5 創建AVD

爲使Android應用程序可以在模擬器上運行,必須創建AVD

1)在Eclipse中。選擇Windows > Android SDK and AVD Manager

2)點擊左側面板的Virtual Devices,再右側點擊New

3)填入Name,選擇TargetAPISD Card大小任意,Skin隨便選,Hardware目前保持默認值。

4)點擊Create AVD即可完成創建AVD

注意:如果你點擊左側面板的Virtual Devices,再右側點擊New ,而target下拉列表沒有可選項時,這時候你:

·          點擊左側面板的AvailablePackages,在右側勾選https://dl-ssl.google.com/android/repository/repository.xml,如圖2.1.5所示:

圖2.1.5添加虛擬設備

·       然後點擊Install Selected按鈕,接下來就是按提示做就行了

要做這兩步,原因是在1.3Android SDK安裝中沒有安裝一些必要的可用包(Available Packages)。

2.2 Robotium的使用

   下面我們以(http://www.robotium.cn/archives/210)上的一個例子講解一下在有源碼的情況下,如何使用Robotium進行測試。這個不是我們的重點,我們後面重點講解沒有源碼,只有Apk包的情況下的自動化測試用例編寫。

(1)下載Robotium官方例子http://code.google.com/p/robotium/downloads/list/ExampleTestProject_v2.3.zip以及最新的JAR包(http://code.google.com/p/robotium/downloads/list

(2)打開Eclipse導入被測試工程,如圖2.2.1所示

圖2.2.1 導入被測試的功能

(3)創建測試工程:選擇Android Test Project,並點擊下一步,然後輸入工程名NotePadTest,並點擊下一步。

 

2.2.2 創建測試工程

(4)選擇被測工程NotePad,並點擊完成,如圖2.2.3所示:

2.2.3 選擇被測工程

 

(5)在測試工程中新建lib文件夾,並將下載好的Robotium jar包拷入lib中,並在build path中將jar包引入工程。如圖2.2.4所示:

圖2.2.4 將Robotium包添加到工程中

6)打開測試工程中的manifest.xml文件,修改其中的:

  <instrumentation

        android:name="test"

        android:targetPackage="com.example.test"/>

指定要被測試文件的name和package,如圖2.2.5所示:

圖2.2.5 修改manifest.xml

同時還要注意一點兒,在這個配置文件中有如下的結點:

<uses-sdk android:targetSdkVersion="17"android:minSdkVersion="14" android:maxSdkVersion="17"/>

這個上面寫的版本號要和你運行測試用例的機器版本號相同,或是大於測試機的版本號,否則會報錯。

(7)創建測試用例

A,新建junit test case,選擇junit4,並輸入類名NotePadTest,點擊完成,如圖2.2.6所示:

圖2.2.6 創建測試用例

B,打開新建的測試類,修改繼承ActivityInstrumentationTestCase2<NotesList>,創建構造方法,並編寫測試代碼,具體結果如圖2.2.7所示:

圖2.2.7 測試類結構

測試用例代碼如下:   

01	package com.example.android.notepad.test;
02	 
03	import android.test.ActivityInstrumentationTestCase2;
04	 
05	import com.example.android.notepad.NotesList;
06	import com.jayway.android.robotium.solo.Solo;
07	 
08	public class NotePadTest extendsActivityInstrumentationTestCase2
09	{
10	    private Solo solo;//聲明Solo
11	    public NotePadTest()//構造方法
12	    {
13	        super(NotesList.class);
14	 
15	    }
16	 
17	    @Override
18	    public void setUp() throws Exception
19	    {
20	        solo = new Solo(getInstrumentation(), getActivity());
21	    }
22	 
23	    @Override
24	    public void tearDown() throws Exception
25	    {
26	        solo.finishOpenedActivities();
27	    }
28	 
29	    public void testAddNote() throws Exception
30	    {
31	        //點擊add note按鈕
32	        solo.clickOnMenuItem("Add note");
33	        //比對結果
34	        solo.assertCurrentActivity("Expected NoteEditor activity", "NoteEditor");
35	        //在第一個TextEdit控件上輸入內容
36	        solo.enterText(0, "Note 1");
37	        //返回上個界面
38	        solo.goBack();
39	        //點擊菜單中的Add note
40	        solo.clickOnMenuItem("Add note");
41	        //在第一個EditText中輸入內容
42	        solo.enterText(0, "Note 2");
43	        //返回NotesList activity
44	        solo.goBackToActivity("NotesList");
45	        //截屏
46	        solo.takeScreenshot();
47	        boolean expected = true;
48	        boolean actual = solo.searchText("Note 1") ; 
                solo.searchText("Note 2");
49	        assertEquals("Note 1 and/or Note 2 are not found", expected, actual);
50	 
51	    }
52	 
53	}


C,編寫完成後,打開模擬器或者連接上真機,右擊測試類,選擇Android junit Test,如圖2.2.8所示。

 

圖2.2.8 運行測試用例

D,Eclipse會切換到junit界面,此時模擬器(真機)會自動執行測試,通過左邊界面可以看到運行結果,如圖2.2.9所示:

 

圖2.2.9 robotium運行結果

一個簡單的測試就結束了,這個測試用例是官方提供的類似於HelloWorld的測試用例,我們不妨在環境配置這一章節講解一下。如果你不太懂,沒有關係,因爲這種方法不常用。具體的如何對只有安裝包Apk的測試纔是重要,我們後面會詳細講解。

2.3 本章小結

   本章我們講述了Robotium開發環境的搭建,並且講解了一下Robotium官方提供的一個基於源碼的記事本測試用例。可能大家剛剛接觸到這個測試框架,沒有看明白這個測試用例,不過沒有關係,就當先了解一下結構嘛,後面的章節我們會詳細講解的。

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