天天看點

APP客服端性能測試

今天在testhome上聽到某位厲害的人物講他們專項測試的性能測試,因為自己也做過性能專項測試但是是用戶端PC上的,現在我總結下他提到的一些内容和我自己的一些看法

    性能專項我們關注哪些:

      1.關注資源消耗(CPU、記憶體、流量、功耗)

      2.啟動耗時(冷啟、熱啟),(這個也是很多雲測時用到的一個名額)

      3.主要頁面加載時間

      4.記憶體洩漏、抖動、卡頓、頁面渲染(FPS)

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

1.cpu

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

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

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

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

1.1 如何檢視CPU的使用值

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

APP客服端性能測試

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

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

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

上面資料太多了,我們還可以可以用下面這個指令,和top指令,擷取單個資料

adb shell dumpsys cpuinfo |grep packagename

APP客服端性能測試

2.記憶體篇

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

怎麼取記憶體,用指令

1.adb shell dumpsys meminfo

2.adb shell meminfo PID

手機運作速度就和記憶體有很大關系,我記得以前的同僚可以研究這個記憶體,還專門成立了一個小組,可見這個水還是挺深的,而且自己也是知會一點,着重有幾個名額需要了解:

vss,虛拟記憶體 ,每一個應用時一個java虛拟機,系統會配置設定一個記憶體,記憶體每做一個操作,這樣是控制記憶體的大小,但是不會大于最大限制,虛拟記憶體就就消失掉,我們比較關心

Rss 實體記憶體(包含共享庫的記憶體),應用實際占用的記憶體,

pss實際使用的實體記憶體(比例配置設定共享占用記憶體) 如3個程序,那麼程序的消耗就應該是除以3,才表示一個

USS 程序中獨自占用記憶體

USS針對某個程序開始有記憶體洩漏的情況,是一個程式啟動了會産生的虛拟記憶體,一旦這個程式程序殺掉就會釋放   

這個部落客我覺得講的更好,我隻是皮毛而已

APP客服端性能測試

n記憶體要多次測試

使用PID的方式檢視:

APP客服端性能測試

我們關注的是:Heap size 是實際用到的記憶體       Heap alloc :是實際配置設定的值

問題:但是你可以發現alloc<size 為什麼會這樣,我現在還是不是很還能懂,他們一句話解釋是說:程序使用的是虛拟記憶體,虛拟記憶體使用遠大于實體記憶體,我現在還不是很懂,

記憶體我們還可以檢視他的單個應用程式最大的記憶體限制

adb shell getprop |grep heapgrowthlimit

另外一種方式:我們還可以使用procrank工具,就可以檢視記憶體值

3.流量

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

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

大概以上是他提到的内容和自己的了解

總結:

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