1、確定jdk安裝完畢,且檢查環(huán)境變量
在網(wǎng)站建設(shè)、成都網(wǎng)站制作過程中,需要針對客戶的行業(yè)特點、產(chǎn)品特性、目標受眾和市場情況進行定位分析,以確定網(wǎng)站的風(fēng)格、色彩、版式、交互等方面的設(shè)計方向。成都創(chuàng)新互聯(lián)公司還需要根據(jù)客戶的需求進行功能模塊的開發(fā)和設(shè)計,包括內(nèi)容管理、前臺展示、用戶權(quán)限管理、數(shù)據(jù)統(tǒng)計和安全保護等功能。
2、確定android SDK安裝完畢,且檢查環(huán)境變量
3、確定你的appium和nodejs均安裝完畢,且環(huán)境變量設(shè)置完畢,可以通過cmd命令行:appium-doctor中確定
4、真機開啟了usb調(diào)試模式,通過命令行執(zhí)行:appium -a 127.0.0.1 -p 4723 -U N2F4C15A30001571 --no-reset ,其中-u后面的部分是手機的devices。來建立手機端和appium服務(wù)器的連接
5、在初始化程序設(shè)置一些運行時的狀態(tài),如appium版本,手機版本,型號,系統(tǒng)類型。設(shè)置待測試的app packagename和activityname
6、test類中寫入操作,進行自動化測試
一、首先說說手機自動化測試的原理 1、手機自動化測試的原理為PC上一個控制端(測試工具)與手機上的一個agent端,通過串口、USB或者無線方式將PC與手機終端相連,然后應(yīng)用測試工具向手機發(fā)送請求或者命令,手機收到命令或者請求后,交給agent端解析,然后agent將這些解析的命令下發(fā)給手機的各個功能模塊所能識別的命令,調(diào)用那些功能模塊模擬操作。完成這些操作后,手機會返回一些信息,agent可以抓取這些信息,然后傳回給PC端,這樣就完成了一個完整的手機自動化測試。 2、關(guān)鍵點在于agent,有的公司是向自己的手機終端的軟件功能模塊中植入測試程序響應(yīng)代碼,有的公司可以利用MMI_Command的方式來控制手機終端;原理就是給手機提供一個響應(yīng)的接口。 3、而對于PC控制端,這個測試腳本用各種編程語言都可以,看如何定義 4、而又的自動化測試設(shè)計成錄制的機制,說通俗點,就是記錄手工操作的鍵盤信息或者LCD的操作信息(LCD需要用到智能識別機制) 5、自動化測試框架的搭建方法是通用的,你需要有一套自己的測試框架才能保證自動化測試的順利開展。 二、Android自動化測試方向: 1、CTS,CTS 測試基于Android instrumentation 測試, 其又基于JUnit 測試。說白了, CTS 就是一堆單元測試用例。這也是Java 語言的擅長部分。 2、 Monkey工具,Monkey是Android中的一個命令行工具,可以運行在模擬器里或?qū)嶋H設(shè)備中。它向系統(tǒng)發(fā)送偽隨機的用戶事件流(如按鍵輸入、觸摸屏輸入、手勢輸入等),實現(xiàn)對正在開發(fā)的應(yīng)用程序進行壓力測試。Monkey測試是一種為了測試軟件的穩(wěn)定性、健壯性的快速有效的方法。 3、ASE,ASE 意思為Android 腳本環(huán)境, 即我們可以通過腳本(比如Python)調(diào)用Android 的功能,從而定制一些測試。比如打電話,發(fā)短信,瀏覽網(wǎng)頁,等。我們可以擴充它的API(Java 部分), 并用python 腳本調(diào)用這些API, 從而實現(xiàn)豐富的測試功能。用于API 部分可以訪問到Android 全部API, python 又能靈活部署測試,所以ASE 的擴展性非常好。 4、Robotium,該工具用于黑盒的自動化測試??梢栽谟性创a或者只有APK 的情況下對目標應(yīng)用 進行測試。Robotimu 提供了模仿用戶操作行為的API,比如在某個控件上點擊,輸入Text 等等。(推舉你可以研究一下這個工具,開源的,我有資料) 5、可以自己開發(fā)一個手機方面的自動化測試工具,原理上一樣的 如果你想要什么資料的話或者想一起學(xué)習(xí)研究的話,可以給我發(fā)郵件:test_sunny@hotmail.com
1、Monkey是Android SDK自帶的測試工具,在測試過程中會向系統(tǒng)發(fā)送偽隨機的用戶事件流,如按鍵輸入、觸摸屏輸入、手勢輸入等),實現(xiàn)對正在開發(fā)的應(yīng)用程序進行壓力測試,也有日志輸出。實際上該工具只能做程序做一些壓力測試,由于測試事件和數(shù)據(jù)都是隨機的,不能自定義,所以有很大的局限性。
2、MonkeyRunner也是Android SDK提供的測試工具。嚴格意義上來說MonkeyRunner其實是一個Api工具包,比Monkey強大,可以編寫測試腳本來自定義數(shù)據(jù)、事件。缺點是腳本用Python來寫,對測試人員來說要求較高,有比較大的學(xué)習(xí)成本。
3、Instrumentation是早期Google提供的Android自動化測試工具類,雖然在那時候JUnit也可以對Android進行測試,但是Instrumentation允許你對應(yīng)用程序做更為復(fù)雜的測試,甚至是框架層面的。通過Instrumentation你可以模擬按鍵按下、抬起、屏幕點擊、滾動等事件。Instrumentation是通過將主程序和測試程序運行在同一個進程來實現(xiàn)這些功能,你可以把Instrumentation看成一個類似Activity或者Service并且不帶界面的組件,在程序運行期間監(jiān)控你的主程序。缺點是對測試人員來說編寫代碼能力要求較高,需要對Android相關(guān)知識有一定了解,還需要配置AndroidManifest.xml文件,不能跨多個App。
4、UiAutomator也是Android提
既然說到andoird測試工具的分類,我就以分類的角度來回答吧。
1)純白盒方式的測試,Monkey。樓上已經(jīng)有哥們提到了,使用moneky更多的是開發(fā)team,而不是純粹的測試team,畢竟要求對android開發(fā)比較了解才用得了monkey。
2)偏白盒的robotium,這家伙號稱是黑盒,但是本人不太認同~ 因為使用robotium需要知道package和acitivity這樣的細節(jié),即便不是開發(fā)人員來做,也得從開發(fā)人員那里獲得不少開發(fā)文檔才能做。
3)純黑盒的方式,這個分類比較有意思,我分得細點
3-1)sikuli,原來只針對桌面應(yīng)用,后來自然延伸到了android app,讓人眼前一亮的測試方式??騻€圖,寫個簡單的python測試腳本(其實java腳本也可以),測試就做好了,簡單又形象,還有邏輯。因為驗證點是依賴于圖片比對,所以瓶頸也在此。屏幕大小和分辨率的不同是這種測試的硬傷,如果測試團隊覺得每個手機上摳下來的圖要重新截,那...也就沒啥了。
3-2)testin,deviceanywhere等
樓上那個哥們應(yīng)該是testin的人,介紹已經(jīng)很全面了,我只概括一下。這類測試本身沒有神馬特別的,無非是放在了云端,將規(guī)模化的測試做到了極致,與其說是測試工具,不如說是測試平臺。說缺點嘛也有,由于只是簡單的基于坐標的腳本錄制(并沒有靈活的功能性驗證點),這種測試往往比較簡單,只是做做簡單的適配性和性能測試,畢竟賣點不在測試類型上。
3-3)clicktest(我們家的工具,算是廣告吧,呵呵)
論原理,也是基于圖片對比技術(shù),只是做了些優(yōu)化,比對的智能一些,跨手機的效果更好罷了。也支持錄制回放,自定義了一些測試命令,易上手,可讀性強,不再需要使用者(手工測試人員)編程了。另外,支持工作流式的邏輯集成,可以靈活得組合測試步驟,增強復(fù)用性。clicktest是工具,不是平臺,歡迎各位咨詢和探討。
對了,還有一種
4)硬件輔助的測試方式,我就不舉例了
先說原理,硬件輔助視頻輸出(攝像頭or視頻線),控制方式是軟硬件結(jié)合。這種方式的特點,跨平臺杠杠的,但是成本高,包括硬件成本以及硬件工程師的成本。
android自動化測試步驟:
1.標準的monkey 命令
[adb shell] monkey [options] eventcount , 例如:
adb shell monkey -v 500 產(chǎn)生500次隨機事件,作用在系統(tǒng)中所有activity(其實也不是所有的activity,而是包含 Intent.CATEGORY_LAUNCHER 或Intent.CATEGORY_MONKEY 的activity)。
上面只是一個簡單的例子,實際情況中通常會有很多的options 選項。
2:常用選項
--help:打印幫助信息
-v:指定打印信息的詳細級別,一個 -v增加一個級別 , 默認級別為 0 。
3.事件選項
-s:指定產(chǎn)生隨機事件種子值,相同的種子值產(chǎn)生相同的事件序列。如: -s 200
--throttle:每個事件結(jié)束后的間隔時間——降低系統(tǒng)的壓力(如不指定,系統(tǒng)會盡快的發(fā)送事件序列)。如:--throttle 100
--pct-touch:指定觸摸事件的百分比,如:--pct-touch 5% , 相關(guān)的還有以下option:
--pct-motion percent (滑動事件)、 --pct-trackball percent (軌跡球事件) 、 --pct-nav percent (導(dǎo)航事件 up/down/left/right)、 --pct-majornav percent (主要導(dǎo)航事件 back key 、 menu key)、 --pct-syskeys percent (系統(tǒng)按鍵事件 Home 、Back 、startCall 、 endCall 、 volumeControl)、 --pct-appswitch percent (activity之間的切換)、 --pct-anyevent percent(任意事件)。
4.約束選項
-p:指定有效的package(如不指定,則對系統(tǒng)中所有package有效),一個-p 對應(yīng)一個有效package, 如:-p com.ckt -p com.ckt.asura;
-c:activity必須至少包含一個指定的category,才能被啟動,否則啟動不了。
5.調(diào)試選項
--dbg-no-events:初始化啟動的activity,但是不產(chǎn)生任何事件。
--hprof:指定該項后在事件序列發(fā)送前后會立即生成分析報告 —— 一般建議指定該項。
--ignore-crashes:忽略崩潰
--ignore-timeouts:忽略超時
--ignore-security-exceptions:忽略安全異常
--kill-process-after-error:發(fā)生錯誤后直接殺掉進程
--monitor-native-crashes:跟蹤本地方法的崩潰問題
--wait-dbg:知道連接了調(diào)試器才執(zhí)行monkey測試。
6.一個簡單的monkey命令:
adb shell monkey -p com.xy.android.junit -s 500 -v 10000
表示產(chǎn)生時間序列的種子值:500, 產(chǎn)生 10000個事件 。