天天看點

Android自動化測試學習之robotium筆記

  今天突然對Android的自動化測試有點兒感興趣,google了下,發現自動化測試的工具還真不少,有Monkey,MonkeyRunner,Robotium等太多了,前段時間也看到了 風泊海上 寫的《Android自動化測試之Robotium學習》的博文,呵呵感覺也不錯,但是我自己也喜歡自己總結,做下筆記哈。

<a href="http://blog.51cto.com/attachment/201210/171811619.png" target="_blank"></a>

 下載下傳完成後,可以看到如下

<a href="http://blog.51cto.com/attachment/201210/172147160.png" target="_blank"></a>

将ExampleTestProject_v3.4.1.zip導入到eclipse中,可以看到有兩個多了兩個項目。NotepadTest是測試項目,測試Notepad的,我們可以直接運作Android JUnit Test 檢視運作效果,即可以看到模拟器上面正在自動測試。

<a href="http://blog.51cto.com/attachment/201210/172147108.png" target="_blank"></a>

<a href="http://blog.51cto.com/attachment/201210/172147438.png" target="_blank"></a>

現在我們自己一步步的完整的寫個程式進行自動化測試。

1、首先建立一個hellorobotium的project,裡面内容簡單,隻需要一個輸入框,和一個按鈕即可。邏輯代碼直接下載下傳源碼看。如下圖

<a href="http://blog.51cto.com/attachment/201210/172546368.png" target="_blank"></a>

2、現在開始建立測試項目。右擊建立,找到Android Test Project

<a href="http://blog.51cto.com/attachment/201210/172835109.png" target="_blank"></a>

然後選中下一步,填寫Project name,自己随便取,然後在下一步選擇要測試的項目即可。

<a href="http://blog.51cto.com/attachment/201210/173201409.png" target="_blank"></a>

3、建立完成後,添加robotium-solo-3.4.1.jar,如下圖所示

<a href="http://blog.51cto.com/attachment/201210/173426497.png" target="_blank"></a>

4、開始編寫測試類(Test)

package com.xzw.test; 

import com.jayway.android.robotium.solo.Solo; 

import com.xzw.example.EditorActivity; 

import android.test.ActivityInstrumentationTestCase2; 

public class Test extends ActivityInstrumentationTestCase2&lt;EditorActivity&gt;{ 

    private Solo solo; 

    public Test(){  

        super(EditorActivity.class); 

    }  

    @Override 

    protected void setUp() throws Exception { 

        //setUp() is run before a test case is started.  

        //This is where the solo object is created. 

         solo = new Solo(getInstrumentation(), getActivity()); 

    } 

    protected void tearDown() throws Exception { 

        //tearDown() is run after a test case has finished.  

        //finishOpenedActivities() will finish all the activities that have been opened during the test execution. 

         solo.finishOpenedActivities(); 

    /** 

     * 測試點選事件 

     */ 

    public void testClick(){  

        solo.assertCurrentActivity("進入EditorActivity", "EditorActivity"); 

        try { 

            Thread.sleep(1000); //休息1秒 

        } catch (InterruptedException e) {  

            e.printStackTrace(); 

        } 

        solo.clickOnEditText(0); //點選輸入框 

        } catch (InterruptedException e) { 

            // TODO Auto-generated catch block 

        solo.enterText(0, "xzw");  //往第一個EditText,輸入文本。第一個為0 

        solo.clickOnButton("Click");  //點選按鈕 

        solo.takeScreenshot(); //螢幕截圖,并儲存到 "/sdcard/Robotium-Screenshots/". 

        boolean expected = true; 

        boolean actual = solo.searchText("xx"); //查找含有xx字元的text,如果沒有則傳回false 

         //驗證預期結果 

        assertEquals("xx is not found", expected, actual);  

5、運作android junit test檢視運作結果。

<a href="http://blog.51cto.com/attachment/201210/174044920.png" target="_blank"></a>

    嘿嘿,搞定是不是很簡單啊。 

    歡迎大家一起學習交流。

本文轉自xuzw13 51CTO部落格,原文連結:http://blog.51cto.com/xuzhiwei/1019911,如需轉載請自行聯系原作者

繼續閱讀