文/羅勇
伴隨移動(dòng)互聯(lián)網(wǎng)產(chǎn)業(yè)的飛速發(fā)展,移動(dòng)業(yè)務(wù)得以變得越來(lái)越多樣豐富,然而劇增的業(yè)務(wù)也為移動(dòng)互聯(lián)網(wǎng)行業(yè)帶來(lái)了極大的挑戰(zhàn),且主要表現(xiàn)為:移動(dòng)應(yīng)用測(cè)試難以滿(mǎn)足業(yè)務(wù)發(fā)展需求,現(xiàn)有測(cè)試自動(dòng)化水平有限,業(yè)務(wù)管理缺乏統(tǒng)一的解決方案等。由此可見(jiàn),對(duì)移動(dòng)應(yīng)用軟件性能測(cè)試技術(shù)進(jìn)行研究分析,對(duì)促進(jìn)移動(dòng)互聯(lián)網(wǎng)產(chǎn)業(yè)健康穩(wěn)定發(fā)展具有十分重要的現(xiàn)實(shí)意義。
移動(dòng)應(yīng)用軟件性能測(cè)試主要由響應(yīng)時(shí)間測(cè)試、應(yīng)用軟件資源占用測(cè)試及可靠性測(cè)試等組成。其中,對(duì)于響應(yīng)時(shí)間測(cè)試而言,響應(yīng)時(shí)間包括有網(wǎng)絡(luò)傳輸時(shí)間、應(yīng)用服務(wù)器處理時(shí)間等,作為移動(dòng)應(yīng)用軟件對(duì)用戶(hù)提出請(qǐng)求做出相應(yīng)對(duì)應(yīng)需求的時(shí)間,用戶(hù)對(duì)該項(xiàng)性能期望值頗高,即常規(guī)業(yè)務(wù)響應(yīng)時(shí)間應(yīng)在5s以?xún)?nèi),而相較于計(jì)算機(jī)桌面程序,移動(dòng)應(yīng)用可用資源有限,架構(gòu)更為復(fù)雜,因而提高和維持應(yīng)用軟件響應(yīng)時(shí)間存在不小難度。對(duì)于應(yīng)用軟件資源占用測(cè)試而言,主要測(cè)試移動(dòng)應(yīng)用軟件運(yùn)行時(shí)對(duì)CPU、內(nèi)存的占用情況,同時(shí)結(jié)合相關(guān)應(yīng)用會(huì)調(diào)用系統(tǒng)服務(wù),所以還要對(duì)對(duì)應(yīng)的系統(tǒng)服務(wù)進(jìn)行測(cè)試。對(duì)于可靠性測(cè)試而言,其主要指的是在各式各樣影響因素下,測(cè)試移動(dòng)應(yīng)用軟件能否正常運(yùn)行,通常情況下均通過(guò)自動(dòng)化測(cè)試手段得以實(shí)現(xiàn)。
相較于傳統(tǒng)計(jì)算機(jī)應(yīng)用程序,移動(dòng)應(yīng)用軟件一方面因?yàn)槠淦脚_(tái)特殊性,另一方面軟件功能不斷豐富,業(yè)務(wù)邏輯日趨復(fù)雜,如何保證移動(dòng)應(yīng)用軟件可滿(mǎn)足要求及實(shí)際應(yīng)用交付,性能測(cè)試工作必須貫穿軟件開(kāi)發(fā)的全面環(huán)節(jié)。如今,移動(dòng)應(yīng)用軟件開(kāi)發(fā)主要應(yīng)用快速原型、迭代開(kāi)發(fā)等技術(shù),因而移動(dòng)應(yīng)用軟件數(shù)量劇增,并且同一軟件時(shí)有更新。復(fù)雜的軟件架構(gòu),高標(biāo)準(zhǔn)的軟件性能標(biāo)準(zhǔn),測(cè)試時(shí)間的緊迫性為移動(dòng)應(yīng)用軟件提出了更為嚴(yán)苛的要求,傳統(tǒng)性能測(cè)試技術(shù)手段已然難以滿(mǎn)足要求,并且傳統(tǒng)手工測(cè)試也存在一定局限性,要求引入自動(dòng)化測(cè)試技術(shù)以提高測(cè)試效率,控制測(cè)試成本,使新要求得到切實(shí)滿(mǎn)足。如今,移動(dòng)應(yīng)用軟件不論是日常應(yīng)用時(shí)間還是應(yīng)用頻率均實(shí)現(xiàn)了大幅增長(zhǎng),且使用用戶(hù)數(shù)量也不斷增多,由此使得并發(fā)用戶(hù)數(shù)轉(zhuǎn)變成一項(xiàng)亟待解決的問(wèn)題。一些熱門(mén)的移動(dòng)應(yīng)用軟件用戶(hù)量突破千萬(wàn)級(jí),在移動(dòng)應(yīng)用軟件性能測(cè)試時(shí)要求對(duì)真實(shí)用戶(hù)開(kāi)展并發(fā)操作進(jìn)行模擬。高質(zhì)量的性能測(cè)試平臺(tái)要求依托相應(yīng)機(jī)制建立大量虛擬用戶(hù),模擬真實(shí)用戶(hù)開(kāi)展對(duì)應(yīng)操作,進(jìn)而實(shí)現(xiàn)對(duì)移動(dòng)應(yīng)用軟件性能的測(cè)試。
以谷歌公司開(kāi)發(fā)的monkeyrunner測(cè)試工具為例,這一工具設(shè)計(jì)目的主要為測(cè)試功能或框架水平上的應(yīng)用軟件與設(shè)別,或者應(yīng)用于運(yùn)行單元測(cè)試套件。該款工具提供了一個(gè)應(yīng)用程序編程接口,依托對(duì)該應(yīng)用程序編程接口的應(yīng)用,可于Android代碼以外實(shí)現(xiàn)對(duì)Android設(shè)備及模擬器的控制,如完成安裝一個(gè)Android應(yīng)用程序,使該應(yīng)用程序進(jìn)行運(yùn)行,并向其傳輸模擬擊鍵,采集對(duì)應(yīng)的用戶(hù)界面圖片,并將獲取圖片存儲(chǔ)在工作站中,該款測(cè)試工具主要優(yōu)點(diǎn)在于操作便捷,可對(duì)測(cè)試腳步進(jìn)行錄制,實(shí)現(xiàn)可視化操作;不足之處則在于生成坐標(biāo)的自動(dòng)化操作,移植性偏弱,且功能存在一定局限性。
iTestin是由云測(cè)Testin開(kāi)發(fā)的一款A(yù)ndroid自動(dòng)化測(cè)試腳本錄制工具,可高效實(shí)現(xiàn)對(duì)穩(wěn)定模塊功能的自動(dòng)化測(cè)試,或?qū)崿F(xiàn)對(duì)相關(guān)版本深度兼容性的測(cè)試。iTestin可便捷對(duì)用戶(hù)在真實(shí)移動(dòng)設(shè)備上對(duì)應(yīng)被測(cè)試應(yīng)用軟件的操作的捕獲,同時(shí)高效生成可跨分辨率運(yùn)行的性能測(cè)試腳步。這一腳本可于應(yīng)用的不同版本相互間進(jìn)行復(fù)用。TMTS是淘寶開(kāi)發(fā)的一款A(yù)ndroid瀏覽器應(yīng)用的開(kāi)源自動(dòng)化測(cè)試框架,基于Android軟件開(kāi)發(fā)工具包的Instrumentation機(jī)制用以自動(dòng)化框架,確保測(cè)試工程可于不改寫(xiě)與重編譯被測(cè)試應(yīng)用的前提下,與被測(cè)試應(yīng)用運(yùn)行于同一進(jìn)程中,進(jìn)一步實(shí)現(xiàn)自動(dòng)化測(cè)試的目的。
以IOS平臺(tái)為基礎(chǔ)的自動(dòng)化測(cè)試框架包括有Athrun、instrumentsDriver、Monkey等。其中,Athrun屬于淘寶的開(kāi)源測(cè)試項(xiàng)目,其優(yōu)勢(shì)在于可實(shí)現(xiàn)UIAutomation的java,在用例維護(hù)、代碼提示等環(huán)節(jié)相較UIAutomation實(shí)現(xiàn)一定提高,用戶(hù)可依托Feed4junit完成數(shù)據(jù)驅(qū)動(dòng),尤為適用于生產(chǎn)環(huán)境;不足之處則是不具備UIAutomation的錄制功能。instrumentsDriver是Mobile自動(dòng)化小組實(shí)現(xiàn)的以 instrument為前提,適用于IOS的自動(dòng)化測(cè)試框架,支持Java語(yǔ)言編寫(xiě)測(cè)試用例。
總而言之,伴隨移動(dòng)終端的不斷發(fā)展與推廣,移動(dòng)應(yīng)用軟件性能變得越來(lái)越重要。在引動(dòng)應(yīng)用軟件發(fā)布前,對(duì)其進(jìn)行性能測(cè)試,及時(shí)找出不足,可為應(yīng)用軟件正式運(yùn)行提供可靠質(zhì)量保障。因而,移動(dòng)應(yīng)用軟件開(kāi)發(fā)人員必須要加強(qiáng)對(duì)移動(dòng)應(yīng)用軟件性能測(cè)試對(duì)象及其面臨挑戰(zhàn)的深入分析,推進(jìn)對(duì)移動(dòng)應(yīng)用軟件性能測(cè)試技術(shù)的合理應(yīng)用,進(jìn)而為移動(dòng)應(yīng)用軟件應(yīng)用保駕護(hù)航。