日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

App性能测试以及测试方法技巧

發布時間:2023/12/20 编程问答 14 豆豆
生活随笔 收集整理的這篇文章主要介紹了 App性能测试以及测试方法技巧 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?性能專項我們關注哪些:

? ? ? 1.關注資源消耗(CPU、內存、流量、功耗)

? ? ? 2.啟動耗時(冷啟、熱啟),(這個也是很多云測時用到的一個指標)

? ? ? 3.主要頁面加載時間

? ? ? 4.內存泄漏、抖動、卡頓、頁面渲染(FPS)

今天我也只總結資源消耗這塊,先談談CPU

普遍的apk性能測試,主要是以下七類

1、響應
2、內存
3、cpu
4、FPS (app使用的流暢度)
5、GPU過度渲染
6、耗電
7、耗流
(app除了這些性能測試,還有:手機版本號兼容性,屏幕分辨率兼容性,穩定性測試,安全測試等,后續會持續更新… 流量測試同這些一起更新,這里就不在說明了 )

一、響應
軟件的響應時間和響應速度直接影響到用戶的體驗度,如果一個軟件,遲遲加載不出來,會直接影響到軟件的日活、留存。因此對于一個軟件,對響應速度測試是必不可少的。

主要測試點:
1、冷啟動:首次啟動app的時間間隔(只是啟動時間,不包括頁面加載)
2、熱啟動:非首次啟動app的時間間隔(只是啟動時間,不包括頁面加載)
3、完全啟動:從啟動到首頁完全加載出來的時間間隔
4、有網啟動:從發起跳轉,到頁面完全加載出來的時間間隔
5、無網啟動:從發起跳轉,到頁面完全加載出來的時間間隔
(在項目中,主要測試關注點是冷啟動,熱啟動)

測試方法:
1、使用adb命令
1) 冷啟動
adb shell am start -W packageName/ActivityName(絕對路徑,首個Activity)


含義:
ThisTime: 該Activity的啟動耗時;
TotalTime: 應用自身啟動耗時, ThisTime+應用application等資源啟動時間;
WaitTime: 系統啟動應用耗時, TotalTime+系統資源啟動時間

2)熱啟動:按back按鍵后再啟動adb命令


測試標準:冷啟動時間不超過1.5s, 熱啟動不超過1s.

3)完全啟動,無網啟動,有網啟動都可以通過charles抓包來獲取啟動的時間

charles是一個很強大的抓包工具,除了截取請求還能進行單接口壓測,修改請求參數并發出請求,以及模擬無網,弱網,2G,3G,4G等。能解決app的很多專項測試。


限制網絡情況需要用到charles的一個功能: Throttle Setting

通過設置網速和抓包,可以獲取啟動時間,但是有一定的誤差。在項目中,一般只需要測試冷啟動,熱啟動便可。

2、使用AndroidStudio的Android Monitor,查看手機日志系統輸出
Android Monitor總共有5大模塊:logcat, memory, cpu, network,GPU
我們可以通過logcat獲取應用的響應時間(如何使用,內存中有介紹)

cpu檢測我們要分3種情況:

1.在空閑時間的消耗,基本沒大應用使用cpu

2.在運行一些應用的情況下,cpu已占50%的情況下,觀察應用程序占用cpu的情況 ?

3.在高負荷的情況下看CPU的表現,我定義這個高負荷,cpu占用應是在80%以上

1.1 如何查看CPU的使用值

使用命令:adb shell dumpsys cpuinfo apk包名

從上圖我們可以看出:6.4%是針對這個CPU的占用率是6.4%,標紅的地方5.2%占用率是用戶使用的,1.1是內核的占用率,這個數只是針對1核來說,

問題:現在手機都是多核的了,那這樣的值也不會太準確,那怎么做?

經驗:一般這種取值的,我在測試的時候,會多采集幾次,求平均值

上面數據太多了,我們還可以可以用下面這個命令,和top命令,獲取單個數據

adb shell dumpsys cpuinfo |grep packagename

?

2.內存篇

內存的方式和cpu類似,我們通過多次采集,得出內存值,看內存是否異常,那如何獲取內存值

怎么取內存,用命令

1.adb shell dumpsys meminfo

2.adb shell meminfo PID

?

手機運行速度就和內存有很大關系,我記得以前的同事可以研究這個內存,還專門成立了一個小組,可見這個水還是挺深的,而且自己也是知會一點,著重有幾個指標需要理解:

vss,虛擬內存?,每一個應用時一個java虛擬機,系統會分配一個內存,內存每做一個操作,這樣是控制內存的大小,但是不會大于最大限制,虛擬內存就就消失掉,我們比較關心

Rss 物理內存(包含共享庫的內存),應用實際占用的內存,

pss實際使用的物理內存(比例分配共享占用內存) 如3個進程,那么進程的消耗就應該是除以3,才表示一個

USS 進程中獨自占用內存

USS針對某個進程開始有內存泄漏的情況,是一個程序啟動了會產生的虛擬內存,一旦這個程序進程殺掉就會釋放 ??

這個博主我覺得講的更好,我只是皮毛而已http://blog.csdn.net/bigconvience/article/details/35553983

n內存要多次測試

使用PID的方式查看:

?

?

我們關注的是:Heap size 是實際用到的內存 ? ? ? Heap alloc :是實際分配的值

問題:但是你可以發現alloc<size?為什么會這樣,我現在還是不是很還能懂,他們一句話解釋是說:進程使用的是虛擬內存,虛擬內存使用遠大于物理內存,我現在還不是很懂,

內存我們還可以查看他的單個應用程序最大的內存限制

adb shell getprop |grep heapgrowthlimit

另外一種方式:我們還可以使用procrank工具,就可以查看內存值

?

3.流量

大神說可以使用adb shell cat/proc/“+PID+”/net/dev 的命令來查看流量數

但是我覺得這樣不準確,我獲取流量的方式是通過抓包的方式,在一個操作內,看流量中的消耗,可以借助wireshork這個工具來幫忙

大概以上是他提到的內容和自己的理解

總結:

做性能測試的方式有兩種:1.競品分析 ? 2.版本對比 ?這是現在很多公司使用的一種方式

在說一句:騰訊的GT還是很好用的,網上可以下載,可以試試

總結

以上是生活随笔為你收集整理的App性能测试以及测试方法技巧的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。