Android 自動化測試工具初探java
這段幾乎都編寫代碼,沒有新的心得體會.惟一由感想的是在測試上.因爲策劃的變更,接口的完善等因素,總在不停的修改功能,修改代碼.因爲項目中的代碼都通過了好多少,又沒有很好的架構規劃.因此在修改或測試的時候不免會有遺漏的地方,這個時候就在想android是否是也應該有自動化測試工具來輔助測試.使得功能更完善點.本期的創新文檔只能算是對自動化創新工具的一種簡介.android
Robotium是一款測試Android App的測試框架,是基於Android測試框架InstrumentationTestCase2進行的2次封裝,把一些基本操做又簡化了一遍。它使得編寫黑盒測試代碼更加容易和穩定。經過使用Robotium,測試用例開發人員可以跨越多個Activity,開發出功能,系統以及驗收測試用例。架構
1) 建被測試用例app
編寫簡單的被測試用例並安裝到測試機器上.框架
2) 建立測試用例eclipse
打開eclipse,選擇File->New->Project…->Android Test Project建立DemoTest測試項目。並導入robotium-solo-1.6.0.jar的jar包ide
建立測試用例DemoTest.java並繼承ActivityInstrumentationTestCase2類,並在testDisplay方法中編寫模擬測試步驟.代碼以下:工具
public class DemoTest extends ActivityInstrumentationTestCase2{測試
private Solosolo;this
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將會按照用例中編寫的模擬測試軌跡來執行,其執行的結果以下圖.
備註:更詳細的資料能夠在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將會中止並報錯。
按照選定的不一樣級別的反饋信息,在Monkey中還能夠看到其執行過程報告和生成的事件。