編輯:關於Android編程
很久沒更新博客了,今天至後期的一段時間將帶給大家的是UiAutomator android的自動測試框架,一系列的介紹,希望大家喜歡。
采用uiautomator編寫的自動化測試工具則可以實現基於UiSelector選擇直接操作uiObject來編寫基於屬性操作具備移植性的測試。它有個弱點就是在於都是基於像素位置操作,不具備移植性,
注:
android官方給出的版本條件如下,若低於這些版本請先下載新版本
Android SDK Tools, Revision 21 or higherAndroid SDK Platform, API 16 or higher
在開始測試前請先配置好你的環境變量(環境變量的搭建請大家百度),java JDK請使用1.7
本次的說明主要是在eclipse開發工具中講解
我們首先打開eclipse創建以個java項目,記住是java項目,創建自己的包名,創建libs文件夾,用於存放我們的jar包,用到的jar包
他在文件的
上圖我用的是android 19包下面的jar包,將jar包拷貝到libs文件夾中,並且將jar包導入到項目中,
下面我們將開始進行編程了:
在包中創建Class(類) 我創建的類Test 他必須繼承 UiAutomatorTestCase
接下來就是創建方法,注意的是方法名必須是test開頭,不要問我為什麼,這是規矩,
如下面的代碼
public void testDemo() throws UiObjectNotFoundException { UiDevice.getInstance().pressHome();//點擊home鍵 UiObject browser=new UiObject(new UiSelector().text("互聯網"));//找到浏覽器 browser.clickAndWaitForNewWindow();//點擊浏覽器 UiObject edit=new UiObject(new UiSelector().className("android.widget.EditText"));//得到浏覽器中的網頁輸入框 edit.click();//點擊輸入框這樣就能使光標在輸入框上 UiDevice.getInstance().pressDelete();//刪除浏覽框中的網址 edit.setText("www.baidu.com");//設置我們想輸入的網址 UiDevice.getInstance().pressEnter();//回車進行浏覽,在部分手機不支持回車浏覽,可以使用上面的方式得到浏覽按鈕在點擊進行浏覽 sleep(3000); }代碼中主要是實現找到手機自帶的浏覽器並且點擊進入實現自動輸入www.baidu.com,並進行浏覽
在這裡大家就會問怎麼才能等到手機上面的浏覽器已經手機上的輸入框,下面將通過圖解來給大家呈現:
在eclipse中有的圖標如果沒有請在
當手機通過adb連接上電腦後再eclipse中就會出現如同:
選中我們的手機,我用的手機是samsumg 點擊上圖紅框的圖,就會出現如下圖
鼠標在左側移動式就有個紅色的框框跟隨你移動右面就會顯示框框選中的app的屬性,如,
通過上面的方式我們打開浏覽器:
再繼續找浏覽器中輸入網址的文本框如下圖:
這樣就能通過class來找到文本框,
完成上面的代碼我們
我盟在dos命令窗體中輸入androidcreateuitest-project-nuidemo-t1-pE:\xingdun\Test
為了方便大家我們可以在我們創建的java工程文件夾下面 我的工程文件在按住shifi 右鍵鼠標就會出現在“在此處打開命令窗口”
在命令窗口androidcreateuitest-project-nuidemo-t1-pE:\xingdun\Test
出現“added file xxxxxxxx”表示成功
我們回到eclipse中刷新我們的項目就會出現 一個build.xml文件,
打開這個文件 將最上面的 default =“ help”修改成build ,保存,
run as 這個build ,不是項目
控制台出現如圖表示成功
這時我們將我們的demo.jar 這裡大家會問為什麼是demo.jar 這裡的demo.jar來源於build中的
接下來就是將我們的demo.jar通過adb push到我們的手機中
成功將在命令窗口顯示多少K,表示成功
接下來就是開始運行我們的程序,運行程序我們可以繼續通過adb來運行,
在命令窗體輸入adbshelluiautomatorruntestdemo.jar-ccom.test.Test點擊回車這樣就能看見我們的勞動成果了
說明 runtest demo.jar 中的demo.jar是我們復制到手機中的jar包, -c 後面的com.test.Test 是我們的項目包名+類名,由於我們的項目只有一個方法就直接
跟的包名+類名,其實最全面的寫法是在包名後面還有跟#和方法名,有多少方法就直接#多少方法。
首先處理這個問題,用了1個星期,非常努力,拼命的尋找哪裡出現了OOM 內存溢出的問題,可是都沒找到結果,一直以為是自己使用的Picaso加載圖片框
問題現象 (該文章,引自零號路的私人博客,本人在浏覽框架的開發過程中,用該方式,規避了內存洩露的問題。) 在Android5.1系統中,會發現App存在 Web
官網:https://developer.android.com/intl/zh-tw/training/material/shadows-clipping.html
代碼下載地址已經更新。因為代碼很久沒更新,已經很落伍了,建議大家使用RecyclerView實現。參考項目:https://github.com/bingoogolapp