隨著移動(dòng)設(shè)備的普及和使用范圍越來(lái)越廣刀脏,APP的性能測(cè)試變的越來(lái)越重要。比起之前的APP測(cè)試搁廓,APP性能測(cè)試有著自己的特色和KPI甸饱,難度也隨之增加。
APP的自動(dòng)化測(cè)試工具發(fā)展跟不上設(shè)備的發(fā)展速度撑碴,雖然有不少工具提供了設(shè)備模擬器來(lái)運(yùn)行程序撑教,但是和真機(jī)測(cè)試有較大差異,基本只能作為功能性測(cè)試使用醉拓。好消息就是伟姐,有些廠商提供了在線的真機(jī)自動(dòng)化測(cè)試方案。
和傳統(tǒng)測(cè)試的差異
1. 移動(dòng)站點(diǎn):和傳統(tǒng)的只是一個(gè)普通的手機(jī)站不同(WAP站)亿卤,隨著HTML5的興起和智能設(shè)備開(kāi)放的傳感器接口愤兵,移動(dòng)站點(diǎn)很多時(shí)候很像一個(gè)APP,但依然使用的是HTTP或者HTTPS協(xié)議排吴,從協(xié)議來(lái)說(shuō)秆乳,很多測(cè)試和之前的WEB測(cè)試差異并不大。
2. 本地化APP:APP的測(cè)試最為復(fù)雜,雖然開(kāi)發(fā)環(huán)境如DDMS XCODE都自帶有一定性能測(cè)試測(cè)試功能屹堰,但主要是單APP運(yùn)行時(shí)的性能測(cè)試肛冶,是在并發(fā)、壓力等方面薄弱扯键,且因?yàn)橐苿?dòng)測(cè)試遠(yuǎn)不如傳統(tǒng)測(cè)試發(fā)展的時(shí)間長(zhǎng)睦袖,因此很多專(zhuān)項(xiàng)工具很匱乏,需要自動(dòng)開(kāi)發(fā)或者借助傳統(tǒng)性能測(cè)試工具實(shí)現(xiàn)荣刑。
3. 混合型:APP加移動(dòng)站的形式實(shí)現(xiàn)馅笙,很多移動(dòng)端并不是單獨(dú)的APP或者移動(dòng)站點(diǎn),而是混合使用厉亏,比如LINKEDIN的APP董习,本地化APP用來(lái)做UI,大量的內(nèi)容是以移動(dòng)站的形式放到云端爱只, APP向網(wǎng)站請(qǐng)求網(wǎng)頁(yè)數(shù)據(jù)阱飘,然后在APP端展現(xiàn)給客戶。測(cè)試這類(lèi)APP的時(shí)候虱颗,更為復(fù)雜,因?yàn)樾枰瑫r(shí)測(cè)試移動(dòng)站和APP的蔗喂。
移動(dòng)端性能測(cè)試準(zhǔn)備:
測(cè)試移動(dòng)端性能之前忘渔,我們要先將要測(cè)試的內(nèi)容進(jìn)行抽象,抽象出兩大類(lèi)
1. 設(shè)備相關(guān)測(cè)試:雖然IT行業(yè)很重視跨平臺(tái)缰儿、跨瀏覽器畦粮,但有些功能是需要強(qiáng)設(shè)備相關(guān)的,比如指紋乖阵、支付等宣赔。設(shè)備品牌不同、型號(hào)不同瞪浸、OS版本不同儒将、瀏覽器不同,其結(jié)果就可能不同对蒲。這對(duì)于性能測(cè)試是個(gè)很大挑戰(zhàn)钩蚊。
2. API測(cè)試(設(shè)備無(wú)關(guān),抽象成API測(cè)試):APP使用API相互之間蹈矮、和服務(wù)器之間進(jìn)行交互砰逻,性能測(cè)試時(shí),對(duì)這些API提取出來(lái)泛鸟,并根據(jù)測(cè)試場(chǎng)景蝠咆,分析其使用方法和壓力情況,設(shè)計(jì)出合理的性能測(cè)試方法。API的性能測(cè)試和傳統(tǒng)的API性能測(cè)試較為雷同刚操。
測(cè)試設(shè)計(jì)
依據(jù)是否關(guān)注在移動(dòng)端在真機(jī)的性能表現(xiàn)分為:監(jiān)測(cè)APP在真機(jī)性能和不監(jiān)測(cè)APP在真機(jī)性能闸翅。
不監(jiān)測(cè)APP在真機(jī)性能:一般來(lái)說(shuō)是需要監(jiān)測(cè)APP在真機(jī)性能,但并不是全部的赡茸,上面我們有說(shuō)過(guò)缎脾,有些是網(wǎng)頁(yè)形式的,這時(shí)主要是測(cè)試移動(dòng)WEB網(wǎng)頁(yè)的性能占卧, 而不是APP真機(jī)性能遗菠。
移動(dòng)站點(diǎn):測(cè)試移動(dòng)站點(diǎn)的時(shí)候需要使用瀏覽器,但是瀏覽器和電腦的瀏覽器不同华蜒,需要使用移動(dòng)瀏覽器來(lái)測(cè)試辙纬,中國(guó)市場(chǎng)的移動(dòng)瀏覽器主要為:UC QQ 百度 360 谷歌瀏覽器, 海外市場(chǎng)的占有率請(qǐng)自行查資料叭喜。
測(cè)試移動(dòng)站時(shí),需要模擬移動(dòng)瀏覽器,服務(wù)器是依靠HTTP請(qǐng)求頭的”User-Agent”字段值來(lái)區(qū)分瀏覽器類(lèi)型, 不同的瀏覽器其User-Agent是不同的, 有的測(cè)試工具可以自定義此字段值, 可以通過(guò)自定義此字段值來(lái)模擬各個(gè)瀏覽器.
移動(dòng)APP: APP的各項(xiàng)功能都是一個(gè)個(gè)函數(shù)組成的, 將APP的功能抽象到API中, 通過(guò)腳本調(diào)用API來(lái)實(shí)現(xiàn)性能測(cè)試.
監(jiān)測(cè)真機(jī)性能: 測(cè)試并發(fā)和負(fù)載的真機(jī)性能時(shí),不可能使用大量的真機(jī)進(jìn)行測(cè)試, 我們可以使用少量真機(jī)并配合自動(dòng)化腳本. 用自動(dòng)化測(cè)試腳本調(diào)用API或HTTP請(qǐng)求,形成大規(guī)模測(cè)試, 再使用少量真機(jī)訪問(wèn)服務(wù), 記錄KPI數(shù)據(jù),并觀測(cè)其反應(yīng). 各IDE和OS都提供了基本的一些性能檢測(cè)功能, 能夠滿足一般的性能需求.