如何高效的開展app的性能測試


APP性能測試是什么

從網上查了一下,貌似也沒什么特別的定義,我這邊根據自己的經驗給出一個自己的定義,如有巧合純屬雷同。

客戶端性能測試就是,從業務和用戶的角度出發,設計合理且有效的性能測試場景,制定各性能場景下的客戶端性能指標(內存、CPU、卡頓數、幀率、電量、加載時長等),並制定規范化的執行流程,按照執行標准執行性能場景同時使用性能測試具收集性能數據,並對數據進行分析,如果有性能問題並對問題進行定位,配合開發進行修復驗證發布,最后輸出完整的性能報告。

從上面的定義中,我們可以得出,在APP的性能測試需要關注以下幾方面,性能測試的場景的設計、性能指標的定義、規范化的執行流程、性能數據數據收集、性能數據分析、性能問題定位、性能測試報告。

性能測試並不是說我們上來找個工具,隨便跑個場景,拿到數據,輸出個報告,就可以了。每一步都應該做到有的放矢,從而體現出測試人員的專業性。

image-20210817201225068

APP性能測試怎么做

下面我們分別來看一下:

性能測試場景的設計

​ 場景可能是一個操作的不斷重復,也可能是幾個操作的組合再重復,對於性能測試的場景來說,他一定有重復的操作或者持續的操作,目的是通過重復或者持續的操作,把性能問題放大到一定程度,能夠讓我們發現問題。

​ 舉個栗子:以B站推薦tab為例,想測試feed滑動情況下的性能表現,那性能場景可以設計成,feed滑動50次,每次滑動間隔2s。

性能指標的定義

​ 常見的移動端性能指標有:內存、cpu、幀率、卡頓數、wakp up數、展示時長等,關注什么性能指標是依托於我們的性能測試場景。

舉個栗子:以B站推薦tab為例,當我們冷啟APP進入推薦tab的時候,更關注數據展示時長,滑動場景更關注卡頓數,為不同場景設計合理的性能指標也是我們需要認真考慮的。

規范化執行流程

​ 場景和指標都定義好了以后,就要開始執行了,這里要求要規范化執行,規范化執行不是簡單的按照場景的定義去執行就好,而是要有很多關注的點。

可以定義的規范有哪些:

- 場景開始執行前需要等待多少s
- 執行后需要等待多少s
- 每次測試需不需要冷啟或是必須重新安裝
- 安裝好需要等待多久才可以開始測試
- 測試賬號、測試數據、設備、網絡需不需要固定

​ 每一個點都可能影響的性能數據的准確性,必須要定義規范,每次都要按着規范去執行,而且這個規范是動態,隨着我們不斷的測試,會發現很多影響性能數據的問題,都必須定制規范,加以規避。同時好的規范能夠未我們后面進行性能數據分析打下基礎。

image-20210817203621029

性能數據數據收集

性能數據收集可能是整個客戶端性能測試中最簡單的部分了,有成熟的工具perfdog可以使用,方便簡單,也可以使用商業化的perfdog service實現自動化的性能數據收集,就是需要花錢。

性能數據分析

在收集到性能數據之后,就要去分析數據,如何分析,下面我簡單說一下,后面會出文章專門說如何對性能數據進行分析

  • 走勢圖,從走勢圖上我們大致可以看出該場景在當前版本的性能表現,可以得出以下結論:
    • 和之前版本的走勢圖進行對比,性能指標的波動情況
    • 性能指標峰值、場景的均值以及漲幅的變化
  • 場景的起始值與之前版本的變化
  • 場景結束后的值與之前版本的變化

性能問題定位

在進行完性能數據分析以后,如果有問題,就需要去定位問題是那一塊業務的問題或者是哪一個mr引起的問題,就需要回溯。

  • 先找開發,和開發溝通一下,看能否根據問題表象確定問題,如果確認不了,就需要測試定位是哪個mr合入引起的
  • 列出本次版本合入所有mr,篩選出那些mr是性能問題所在的業務
  • 找mr合入前后的包重新跑,確認每個mr是否有影響
  • 當確定是哪個mr合入引起的性能問題后,再次和開發溝通

性能測試報告

性能測試報告的目的是給出當前版本的性能表現情況,需要包含一些核心的模塊

  • 測試結論
  • 性能問題歸因
  • 各個場景的性能指標數據
  • 測試環境以及方案
  • 各個場景的性能指標走勢圖

以上我對app性能測試的一些粗淺理解和經驗,有問題可以留言,一起探討。。

歡迎大家訪問我的博客,有更多關於客戶端性能測試、自動化測試的內容, 博客地址


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM