android 自動化測試的傻瓜實踐之旅(UI篇) -----小試身手

導言

  很早之前就開始折騰android的自動化測試,不過,本人毫無測試基礎,只能,從google那裏搜索到僅有的一些資源,和目前,惟一一本講android測試的書(應該是吧,若是還有但願告之).html

  從google那裏搜來的資源大多都是介紹類的文章,比較少有實例操做,關於,android自動化測試,優酷上有個淘寶的框架叫作----TMS的視頻演示,由於,那裏說不讓轉載,因此,感興趣的話就去google一下,就能看到.python

  順便說一下,這個專題不是一個專業,嚴格的android測試博文,因此,不要以專業的測試眼光去評論,這是,簡單的運用一下測試,讓咱們的程序員編出更好的代碼…android

自動化的 UI 測試

  目前能免費進行android UI的自動化測試的方法有如下三種:程序員

  Monkey&MonkeyRunner android 的Junit 測試框架 Robotium
入門難度 通常 困難 很是簡單
功能方面 很通常 無所不能 基本知足

 

關於Monkey & MonkeyRunner能夠參考本人寫的另外兩篇

android實用測試方法之Monkey與MonkeyRunner (評論部分有些常見問題及部分解決有興趣的能夠大概瀏覽一下)框架

加強型MonkeyRunner 腳本計劃 (算是一個小小的實踐吧)ide

說下,Monkey&MonkeyRunner測試

優勢: 上手簡單,只須要apk動畫

缺點: 文檔少,容易出錯,編寫腳本須要python基礎.google

android 的Junit

關於這個內容我曾經作個一個小小的視頻,後來上傳到了優酷lua

Android 測試入門教程之activity簡單測試 (慎入,聲音比較蛋疼,畫面被優酷壓縮得不像樣..)

說下, android for Junit

優勢: 無所不能…

缺點: 上手不容易,須要源碼.

 

Robotium

  本文重點簡介的方法….

說下,Robotium

優勢: 足夠簡單,足夠強大,支持apk測試

缺點: 還不能替代android for Junit

愉快的UI測試之旅 by Robotium

Robotium 是一個開源項目:

http://code.google.com/p/robotium/

目前最新版本:Robotium 3.1 is now released!

居然,要作測試,咱們要新建一個用於測試的項目:

直接下載項目吧….

http://vdisk.weibo.com/s/3feB5

而後,建立一個android的測試項目..

1,建立項目

image

2,選擇要測試的項目

image

3,完成

image

4,把Robotium導入到測試項目裏面,順便說一下:ADT 17 預覽版 4已經支持自動把libs下的jar包導入到依賴環境中…用以前版本的朋友手動添加吧…

image

編寫第一個UI測試方法

public class FootTabClickTest extends ActivityInstrumentationTestCase2<TabViewActivity> {
	
	//1,建立一個自動化測試對象
	private Solo tabSolo;
	
	
	public FootTabClickTest () {
		super("com.achai",TabViewActivity.class);
	}
	
	@Override
	protected void setUp() throws Exception {
		// TODO Auto-generated method stub
		super.setUp();
//2,初始化咱們的測試對象
tabSolo = new Solo(getInstrumentation(), getActivity());
	}
	
	@Smoke
	public void testClickEachTab(){
		
		//3,獲取咱們view 中全部的單選按鈕,沒錯就是這麼簡單…
		ArrayList<RadioButton> radioGroup =  tabSolo.getCurrentRadioButtons();
		//4,自動點擊每一個單選按鈕
		for(int i=0; i < radioGroup.size(); i++){
			tabSolo.clickOnRadioButton(i);
//5,暫停1s 用來看效果的…
tabSolo.sleep(1000);
		}
//6,又一個強大的功能,直接識別點擊當前view中匹配的文本,與控件無關!!!!!!!
tabSolo.clickOnText("(?i).*?個人收藏.*");
		tabSolo.sleep(1000);
//7,這個是長按,注意留意動畫
tabSolo.clickLongOnText("返回");
		tabSolo.sleep(2000);
//		tabSolo.clickOnRadioButton(1);
	}
	
	@Override
	protected void tearDown() throws Exception {
		// TODO Auto-generated method stub
		super.tearDown();
			}
	
	
	
}

 

效果動畫:

test2

 

總結

   就這麼多了,感受還不夠?那下次在更新吧…

相關文章
相關標籤/搜索