<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          移動(dòng)App專項(xiàng)性能測(cè)試(Android and iOS)

          共 3868字,需瀏覽 8分鐘

           ·

          2021-07-18 18:34


          一直以來,性能測(cè)試是被一部分人遺忘,又讓另一部分人無可奈何的東西。在絕大部分的創(chuàng)業(yè)公司,性能測(cè)試基本上都是被遺忘的,他們認(rèn)為功能測(cè)試和穩(wěn)定性測(cè)試才是重點(diǎn),而在中等規(guī)模的公司中一部分測(cè)試人員考慮進(jìn)行性能測(cè)試,卻無從下手。

          從測(cè)試工程師的工作實(shí)踐出發(fā),介紹移動(dòng)端性能測(cè)試的通用方法和結(jié)合產(chǎn)品特點(diǎn)的不同側(cè)重。

          隨著流量費(fèi)用的降低,越來越多的人開始在公交地鐵等移動(dòng)場(chǎng)景使用視頻應(yīng)用。視頻類的應(yīng)用會(huì)更多關(guān)注播放流暢度、下載等性能指標(biāo),下面介紹的是百度視頻的性能測(cè)試方法

          視頻app是第三方視頻資源聚合類產(chǎn)品,主要提供用戶在線播放、離線下載各種視頻服務(wù),提供PC、Android、iOS三端入口,用戶體驗(yàn)、流暢度、下載速度、檢索視頻資源等是目前產(chǎn)品線最關(guān)注的層面。

          一款優(yōu)秀的娛樂類應(yīng)用,必須具有卓越的性能,超越同類競(jìng)品,同時(shí)兼具良好的用戶體驗(yàn)。

          1. App性能分析維度

          App類型眾多,根據(jù)具體類型劃分,性能指標(biāo)的維度和優(yōu)先級(jí)各不相同。視頻類App歸屬于娛樂游戲型的App,因此性能測(cè)試維度優(yōu)先級(jí)排序?yàn)椋毫鲿扯?、crash、內(nèi)存、流量、響應(yīng)時(shí)長(zhǎng)、功耗、CPU。

          表征不同維度指標(biāo)的量化單位如圖21所示。比如流暢度是FPS(幀率),內(nèi)存是兆比等等。

          因?yàn)锳ndroid平臺(tái)底層是由linux系統(tǒng)改良而來,不同維度的指標(biāo)絕大部分都可以通過命令來取不同的指標(biāo)(具體方法可以參加后面工具)

          在iOS平臺(tái)上,性能的獲取,必須使用Xcode里面instruments下的相應(yīng)組件,不像開源的Android那樣靈活,但技術(shù)上是可以做到各平臺(tái)的性能指標(biāo)獲取測(cè)試。

          2. App性能指標(biāo)獲取手段

          2.1 Android系統(tǒng)指標(biāo)獲取

          • CPU

          CPU的測(cè)試方法分為幾類

          a.使用Android提供的方法

          adbshell dumpsyscpuinfo |grep packagename >/xxx/cpu.txt來獲取

          b.使用top命令

          adbshell top |greppackagename>/xxx/cpu.txt來獲取

          • 內(nèi)存

          內(nèi)存消耗,這個(gè)測(cè)試的設(shè)計(jì)目標(biāo)是為了讓應(yīng)用不占用過多的系統(tǒng)資源,且及時(shí)釋放內(nèi)存,保障整個(gè)系統(tǒng)的穩(wěn)定性,當(dāng)然關(guān)于內(nèi)存測(cè)試,在這里我們需要引入幾個(gè)概念:空閑狀態(tài)、中等規(guī)格、滿規(guī)格。

          空閑狀態(tài):指打開應(yīng)用后,點(diǎn)擊home鍵讓應(yīng)用后臺(tái)運(yùn)行,此時(shí)應(yīng)用處于的狀態(tài)叫做空閑。中等規(guī)格和滿規(guī)格指的是對(duì)應(yīng)用的操作時(shí)間的間隔長(zhǎng)短不一,中等規(guī)格時(shí)間較長(zhǎng),滿規(guī)格時(shí)間較短。

          接下來我們說說在內(nèi)存測(cè)試中,存在很多測(cè)試子項(xiàng),如下清單所示:

          1. 空閑狀態(tài)下的應(yīng)用內(nèi)存消耗情況

          2. 中等規(guī)格狀態(tài)下的應(yīng)用內(nèi)存消耗情況

          3. 滿規(guī)格狀態(tài)下的應(yīng)用內(nèi)存消耗情況

          4. 應(yīng)用內(nèi)存峰值情況

          5. 應(yīng)用內(nèi)存泄露情況

          6. 應(yīng)用是否常駐內(nèi)存

          7. 壓力測(cè)試后的內(nèi)存使用情況

          • 電量

          功耗測(cè)試主要從以下幾個(gè)方面入手進(jìn)行測(cè)試:

          a、測(cè)試手機(jī)安裝目標(biāo)APK前后待機(jī)功耗無明顯差異。

          b、常見使用場(chǎng)景中能夠正常進(jìn)入待機(jī),待機(jī)電流在正常范圍內(nèi)。

          c、長(zhǎng)時(shí)間連續(xù)使用應(yīng)用無異常耗電現(xiàn)象。

          功耗測(cè)試的方法分為兩類,一類為軟件測(cè)試,一類為硬件測(cè)試。

          一般分為2類:

          第一種采用市場(chǎng)上提供的第三方工具,如金山電池管家之類的。第二種就是自寫工具進(jìn)行,這里一般會(huì)使用3種方法:

          方法一、基于android提供的PowerManager.WakeLock來進(jìn)行;

          方法二、稍復(fù)雜一點(diǎn),功耗的計(jì)算=CPU消耗+Wakelock消耗+數(shù)據(jù)傳輸消耗+GPS消耗+Wi-Fi連接消耗;

          方法三、通過adbshell dumpsys battery來獲取。

          接著說下硬件測(cè)試,在這里我們一般使用萬用表或者功耗儀進(jìn)行測(cè)試,使用功耗儀測(cè)試的時(shí)候,需要制作假電池來進(jìn)行的,有些不能拔插電池的手機(jī)還需要焊接才能進(jìn)行對(duì)了測(cè)試。

          • 啟動(dòng)時(shí)長(zhǎng)

          首先我們來說說啟動(dòng)時(shí)間。關(guān)于應(yīng)用的啟動(dòng)時(shí)間的測(cè)試,分為三類:

          1. 首次啟動(dòng) --應(yīng)用首次啟動(dòng)所花費(fèi)的時(shí)間
          2. 非首次啟動(dòng) --應(yīng)用非首次啟動(dòng)所花費(fèi)的時(shí)間
          3. 應(yīng)用界面切換--應(yīng)用界面內(nèi)切換所花費(fèi)的時(shí)間

          那么如何來做啟動(dòng)時(shí)間的測(cè)試呢,一般我們分為2類,一類為使用軟件來測(cè)試,一類為使用硬件來測(cè)試。對(duì)于軟件測(cè)試的方法,大部分人都比較通曉使用Android 提供的 DisplayManager 來獲取 activity 的啟動(dòng)時(shí)間。通過日志過濾關(guān)鍵字 Displayed 來過濾所有 activity 所打印的,記錄日志通過。

          • 幀率

          GPU這個(gè)詞對(duì)于PC性能測(cè)試者來說并不陌生,而今3Dmax,安兔兔之類的第三方軟件讓GPU 在移動(dòng)端性能測(cè)試領(lǐng)域家喻戶曉,但對(duì)于App內(nèi)的GPU該如何來測(cè)試呢?首先我們引入幾個(gè)名詞:過度繪制、幀率、幀方差。

          過度繪制是指界面顯示的activity套接了多層導(dǎo)致的結(jié)果。幀率是指屏幕刷新率。幀方差是指屏幕刷新幀間隔方差。

          對(duì)于 GPU 的測(cè)試主要包括以下幾個(gè)測(cè)試子項(xiàng):界面過度繪制、屏幕滑動(dòng)幀速率、屏幕滑動(dòng)平滑度。

          對(duì)于過度繪制的測(cè)試主要通過人工進(jìn)行測(cè)試,通過打開開發(fā)者選項(xiàng)中的顯示GPU過度繪制來進(jìn)行測(cè)試(PS:只有Android4.2及以上的版本才具備此功能),驗(yàn)收的標(biāo)準(zhǔn)為:

          a、不允許出現(xiàn)黑色像素

          b、不允許存在4x過度繪制

          c、不允許存在面積超過屏幕1/4區(qū)域的3x過度繪制(淡紅色區(qū)域)

          對(duì)于屏幕滑動(dòng)幀速率,常用手段包括軟件測(cè)試或硬件輔助測(cè)試。軟件測(cè)試的方法如下:

          1.手機(jī)端需打開開發(fā)者選項(xiàng)中的啟用跟蹤后,勾選Graphics 和 View;

          2.啟動(dòng)SDK工具Systrace插件,勾選被測(cè)應(yīng)用,點(diǎn)擊Systrace插件,在彈出的對(duì)話框中設(shè)置持續(xù)抓取時(shí)間,在tracetaps下面勾選gfx及view選項(xiàng);

          3.人滑動(dòng)界面可以通過節(jié)拍來進(jìn)行滑動(dòng)或者掃動(dòng),幀率數(shù)據(jù)會(huì)保存到默認(rèn)路徑下,默認(rèn)名稱為 trace.html;

          4.將trace.html文件拷貝到linux系統(tǒng)下通過命令進(jìn)行轉(zhuǎn)換,生成trace.csv文件。

          • 網(wǎng)絡(luò)流量

          性能測(cè)試的——流量,當(dāng)然我所指的性能測(cè)試是針對(duì)大部分應(yīng)用而言的,可能還有部分應(yīng)用會(huì)關(guān)注網(wǎng)速、弱網(wǎng)之類的測(cè)試。流量測(cè)試,同樣需要引入幾個(gè)名詞:

          中等負(fù)荷:應(yīng)用正常操作

          高負(fù)荷:應(yīng)用極限操作

          流量測(cè)試包括以下測(cè)試項(xiàng):

          a、應(yīng)用首次啟動(dòng)流量提示

          b、應(yīng)用后臺(tái)連續(xù)運(yùn)行2小時(shí)的流量值

          c、應(yīng)用高負(fù)荷運(yùn)行的流量峰值

          d、應(yīng)用中等負(fù)荷運(yùn)行時(shí)的流量均值流量測(cè)試

          流量測(cè)試一般都是用軟件來進(jìn)行的,這里我們一般分為2類:

          a、采用市場(chǎng)提供的第三方工具來進(jìn)行測(cè)試,如流量寶

          b、自研工具進(jìn)行測(cè)試

          自研工具進(jìn)行測(cè)試一般包含 2 類方法:

          a、通過tcpdump抓包,再通過wireshake直接讀取包信息來獲得流量

          b、首先獲得被測(cè)應(yīng)用的uid信息(可以通過adbshelldumpsys package來獲?。缓笤谖床僮鲬?yīng)用之前,我們可以通過查看

          adbshell cat/proc/uid_stat/uid/tcp_rcv
          adbshell cat/proc/uid_stat/uid/tcp_snd

          獲取到應(yīng)用的起始的接收及發(fā)送的流量,然后我們?cè)俨僮鲬?yīng)用,再次通過上述 2 條命令可以獲取到應(yīng)用的結(jié)束的接收及發(fā)送的流量,通過相減及得到應(yīng)用的整體流量消耗。

          2.2 iOS系統(tǒng)指標(biāo)獲取

          對(duì)于iOS系統(tǒng),只需要一個(gè)裝了xcode的mac電腦,取以上指標(biāo)相對(duì)容易。

          性能測(cè)試工具,推薦用下面三個(gè):

          工具一、Instruments,這個(gè)是mac蘋果自帶的工具,里面有很多模板,選擇不同的系能模板就可以監(jiān)聽手機(jī)App性能了,但是要注意,沒越獄的機(jī)器必須注冊(cè)開發(fā)者證書,或者拿到App企業(yè)證書,這樣xcode才能啟動(dòng)App進(jìn)行性能監(jiān)控,也就是說你被測(cè)App必須有源代碼才行,當(dāng)然你想規(guī)避這個(gè)問題,得走百度smallApple破解簽名機(jī)制

          工具二、GT,是騰訊開發(fā)的一款A(yù)pp,但是也得在源碼層面嵌入GT的SDK

          工具三、SmallApple

          https://github.com/hyxbiao/smallapple

          Smallapple是一個(gè)開源的IOS自動(dòng)化測(cè)試工具,旨在提供一套完整的iOS自動(dòng)化測(cè)試解決方案,提供針對(duì)iOS App的功能和性能測(cè)試,同時(shí)提供類似Android adb、重簽名、instruments結(jié)果解析、錄制回放等工具集。

          Smallapple通過一鍵式的執(zhí)行方式,自動(dòng)完成App重簽名、安裝、測(cè)試、性能采集(包括CPU、內(nèi)存、流量等)、Crash檢測(cè)和結(jié)果報(bào)告等工作。

          Smallapple特性:

          1. Smallapple致力于以最簡(jiǎn)單的方式,最小的代價(jià)提供給用戶使用。
          2. 支持非越獄設(shè)備
          3. 不需要依賴源碼
          4. 支持Appstore或者第三方下載的App安裝測(cè)試
          5. 完全的命令行模式


          PS:  由狂師老師親自授課主講的「全棧測(cè)試開發(fā)技能訓(xùn)練營」正在招生,課程非常值得推薦,課程大綱:重磅消息 | 2021年最新全棧測(cè)試開發(fā)技能實(shí)戰(zhàn)指南(第2期)


          推薦閱讀
          重磅消息 | 2021年最新全棧測(cè)試開發(fā)技能實(shí)戰(zhàn)指南(第2期)

          測(cè)試開發(fā):推薦一款阿里最新 Python 自動(dòng)化開源工具!

          測(cè)試開發(fā)進(jìn)階:一文教你從0到1搞懂大數(shù)據(jù)測(cè)試!

          推薦一款自動(dòng)化測(cè)試神器,不會(huì)寫代碼也能做!


          END

          所有原創(chuàng)文章
          第一時(shí)間發(fā)布至此公眾號(hào)「測(cè)試開發(fā)技術(shù)」

          長(zhǎng)按二維碼/微信掃碼  添加作者



          瀏覽 113
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  日韩 欧美中文字幕第一页在线 | 久久视频午夜视频久久 | 大鸡巴久久久久久久久久 | 996re热精品视频 | 欧美日屄 |