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