Android 自動化測試工具初探

openkk 12年前發布 | 46K 次閱讀 Android Android開發 移動開發

Android 自動化測試工具初探

前言

    這段幾乎都編寫代碼,沒有新的心得體會.唯一由感想的是在測試上.由于策劃的變動,接口的完善等因素,總在不停的修改功能,修改代碼.由于項目中的代碼都經過了好多少,又沒有很好的架構規劃.所以在修改或測試的時候難免會有遺漏的地方,這個時候就在想android是不是也應該有自動化測試工具來輔助測試.使得功能更完善點.本期的創新文檔只能算是對自動化創新工具的一種簡介.

1. Robotium

Robotium是一款測試Android App的測試框架,是基于Android測試框架InstrumentationTestCase2進行的2次封裝,把一些基本操作又簡化了一遍。它使得編寫黑盒測試代碼更加容易和穩定。通過使用Robotium,測試用例開發人員能夠跨越多個Activity,開發出功能,系統以及驗收測試用例。

1) 建被測試用例

編寫簡單的被測試用例并安裝到測試機器上.

 

Android 自動化測試工具初探

Android 自動化測試工具初探

 

2) 創建測試用例

打開eclipse,選擇File->New->Project…->Android Test Project創建DemoTest測試項目。并導入robotium-solo-1.6.0.jarjar

 

Android 自動化測試工具初探

        創建測試用例DemoTest.java并繼承ActivityInstrumentationTestCase2,并在testDisplay方法中編寫模擬測試步驟.代碼如下:

 

public class DemoTest extends ActivityInstrumentationTestCase2{

 

    private Solosolo;

    private Activity activity;

 

    public DemoTest() {

       super("com.demo", DemoActivity.class);

    }

 

    @Override

    protected void setUp() throws Exception {

       super.setUp();

 

       activity = this.getActivity();

       solo = new Solo(getInstrumentation(), this.activity);

    }

 

    @Override

    public void tearDown() throws Exception {

       try {

           solo.finalize();

       } catch (Throwable e) {

           e.printStackTrace();

       }

       activity.finish();

       super.tearDown();

    }

 

    public void testDisplay() throws Exception {

       //模擬輸入

       solo.enterText(R.id.editText, "劉崢");

      

       //模擬點擊

       solo.clickOnButton("login");

    }

}

3) 運行測試用例

選擇測試工程DemoTest右擊,選擇Run As->Android JUnit Test運行測試程序,此時Robotium將會按照用例中編寫的模擬測試軌跡來執行,其執行的結果如下圖.

Android 自動化測試工具初探

備注:更詳細的資料可以在http://code.google.com/p/robotium/中獲取.

此外再介紹一款測試用具android monkey

Monkey是一個命令行工具 ,可以運行在模擬器里或實際設備中。它向系統發送偽隨機的用戶事件流,實現對正在開發的應用程序進行壓力測試。Monkey包括許多選項,它們大致分為四大類:

l  基本配置 選項,如設置嘗試的事件數量。

l  運行約束選項,如設置只對單獨的一個包進行測試。

l  事件類型和頻率。

l  調試選項。

 

   Monkey運行的時候,它生成事件,并把它們發給系統。同時,Monkey還對測試中的系統進行監測,對下列三種情況進行特殊處理:

 

l  如果限定了Monkey運行在一個或幾個特定的包上,那么它會監測試圖轉到其它包的操作,并對其進行阻止。

l  如果應用程序崩潰或接收到任何失控異常 Monkey將停止并報錯。

l  如果應用程序產生了應用程序不響應(application not responding)的錯誤,Monkey將會停止并報錯。

 

<SPAN style="FONT-FAMILY: 宋體; FONT-SIZE: 12pt; mso-ascii-font-family: " new??="" couriernew?;mso-hansi-font-family:?couriernew?;mso-bidi-font-family:?courier="">按照選定的不同級別的反饋信息,在</span> <SPAN style="FONT-FAMILY: ; FONT-SIZE: 12pt" new??="" courier="">Monkey</span> <SPAN style="FONT-FAMILY: 宋體; FONT-SIZE: 12pt; mso-ascii-font-family: " new??="" couriernew?;mso-hansi-font-family:?couriernew?;mso-bidi-font-family:?courier="">中還可以看到其執行過程報告和生成的事件。</span>

 本文由用戶 openkk 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!