monkey測試===通過monkey測試檢查app記憶體泄漏和cpu占用

来源:http://www.cnblogs.com/botoo/archive/2017/12/01/7940998.html
-Advertisement-
Play Games

最近一直在研究monkey測試。網上資料很多,但都是一個抄一個的。原創的很少 我把檢查app記憶體泄漏的情況梳理一下: 參考資料: Monkey測試策略:https://testerhome.com/topics/597 Android Monkey測試詳細介紹:http://www.jikexuey ...


最近一直在研究monkey測試。網上資料很多,但都是一個抄一個的。原創的很少

我把檢查app記憶體泄漏的情況梳理一下:

參考資料:

首先基礎的monkey測試,之前講過。參照以前文檔

在monkey測試的同時我們需要關註的一個點。

記憶體檢測

記憶體檢測用批處理腳本記錄,約5秒記錄一次:

腳本如下,保存為bat文件

@echo off &color 0a&setlocal enabledelayedexpansion&title %~n0
::@mode con lines=18 cols=50

set package1=com.xxxx.xxxxx


adb shell dumpsys meminfo %package1% | findstr "Pss" > ./info_1.txt

:start
adb shell dumpsys meminfo %package1% | findstr "TOTAL" >> ./info_1.txt


echo.
echo.
ping -n 5 127.1>nul
goto start

我們先可以看一下基礎的命令,查看應用記憶體的命令:adb shell dumpsys meminfo (進程名)

這裡得到的信息非常多,重點關註如下幾個欄位:

(1) Native/Dalvik 的 Heap 信息

具體在上面的第一行和第二行,它分別給出的是JNI層和Java層的記憶體分配情況,如果發現這個值一直增長,則代表程式可能出現了記憶體泄漏。

(2) Total 的 PSS 信息

這個值就是你的應用真正占據的記憶體大小,通過這個信息,你可以輕鬆判別手機中哪些程式占記憶體比較大了。

所以我們運行上面的bat文件。得到的數據是這樣的:

右邊三列,如果執行了用戶事件流10萬次後,發現數值一直在增長,那麼很有可能是記憶體泄漏了。

左邊第一列,表示app占據記憶體的大小,比如開四個app程式同時,我們可以比較哪個程式最占用記憶體,就是通過這個數據!

 

cpu檢查:

 bat腳本為

@echo off &color 0a&setlocal enabledelayedexpansion&title %~n0
::@mode con lines=18 cols=50

set package1=com.xxxx.xxxxx


adb shell top -n 1 | findstr "PID" > ./cupInfo_1.txt

:start
adb shell top -n 1 | findstr %package1% >> ./cupInfo_1.txt


echo.
echo.
ping -n 5 127.1>nul
goto start

 

 

 

用到的是adb shell top 命令參考文檔:http://blog.csdn.net/kittyboy0001/article/details/38562515

 

 

PID   進程id
PR    優先順序
CPU%  當前瞬時CPU占用率
S     進程狀態:D=不可中斷的睡眠狀態, R=運行, S=睡眠, T=跟蹤/停止, Z=僵屍進程
#THR  程式當前所用的線程數
VSS   Virtual Set Size  虛擬耗用記憶體(包含共用庫占用的記憶體)
RSS   Resident Set Size 實際使用物理記憶體(包含共用庫占用的記憶體)
PCY   調度策略優先順序,SP_BACKGROUND/SP_FOREGROUND
UID   進程所有者的用戶id
Name  進程的名稱

 

 *最好的辦法是做一個Excel圖表,把對比數據列出來

 

 

 

 

 

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 最近在搗鼓小程式,期間遇到的問題,踩過的坑,也是在網上各種搜。這裡也說下我解決的問題,方便大家。 在小程式首頁顯示文本列表的時候,為了美觀,不希望把所有的文本都顯示出來,希望是顯示前幾行(比如前3行,然後加上省略號),網上的大部分做法是從客戶端(client)來考慮的,一開始我也試圖從客戶端來解決問 ...
  • 在做項目的過程中,遇到了一個需求,在Android代碼里可以通過圖片的ID動態載入圖片。要載入Android文件夾裡面的圖片,我們就要知道它的ID,要動態獲取,那麼就得動態獲取圖片的ID。 那麼應該怎麼做呢? 我們可以用 接下來我們講講動態獲取其他資源ID的方法 1、 獲取佈局資源ID int la ...
  • Base64是網路上最常見的用於傳輸8Bit位元組碼的編碼方式之一,Base64就是一種基於64個可列印字元來表示二進位數據的方法。 Base64編碼是從二進位到字元的過程,可用於在HTTP環境下傳遞較長的標識信息。例如,在Java Persistence系統Hibernate中,就採用了Base64 ...
  • 眾所周知,日誌的管理是軟體系統很重要的一部分,千萬不可忽略其重要性。完整的日誌將會在系統維護中起著異常重要的作用,就好像磨刀不誤砍柴工一樣,日誌就像對系統進行分析的工具,工具便捷了,對系統分析起來就能達到事半功倍的效果。開發者必須要明白日誌的價值和意義,萬萬不可忽略和輕視。 LogCook是一款非常... ...
  • 用TabbarController進行模塊分類和管理,這裡推薦一個CYLTabBarController,只需兩個數組就可以使用和管理; 1.導入CYLTabBarController 使用cocoapods導入即可 pod 'CYLTabBarController', '~> 1.14.1',終端 ...
  • 傳統app加固技術經歷了四代變更,保護級別每一代都有所提升,但其固有的安全缺陷和相容性問題始終未能得到解決。下一代加固技術"虛機源碼保護"適用代碼類型更廣泛,保護級別更高,相容性更強,堪稱未來級別的保護方案。 ...
  • (註:反編譯不是讓各位開發者去對一個應用破解搞重裝什麼的,主要目的是為了促進開發者學習,借鑒好的代碼,提升自我開發水平。) 2017年12月1日新版本apktool用法: 把要解壓的apk文件放在自己任意一個盤的目錄下,在apk的目錄下,按住shift+滑鼠右鍵打開cmd黑視窗 如下圖:接下來輸入官 ...
  • Android SDK版本號 與 API Level 對應關係如下表: Code name Version API level (no code name) 1.0 API level 1 (no code name) 1.1 API level 2 2008 年9月發佈的Android第一版 Cu ...
一周排行
    -Advertisement-
    Play Games
  • 示例項目結構 在 Visual Studio 中創建一個 WinForms 應用程式後,項目結構如下所示: MyWinFormsApp/ │ ├───Properties/ │ └───Settings.settings │ ├───bin/ │ ├───Debug/ │ └───Release/ ...
  • [STAThread] 特性用於需要與 COM 組件交互的應用程式,尤其是依賴單線程模型(如 Windows Forms 應用程式)的組件。在 STA 模式下,線程擁有自己的消息迴圈,這對於處理用戶界面和某些 COM 組件是必要的。 [STAThread] static void Main(stri ...
  • 在WinForm中使用全局異常捕獲處理 在WinForm應用程式中,全局異常捕獲是確保程式穩定性的關鍵。通過在Program類的Main方法中設置全局異常處理,可以有效地捕獲並處理未預見的異常,從而避免程式崩潰。 註冊全局異常事件 [STAThread] static void Main() { / ...
  • 前言 給大家推薦一款開源的 Winform 控制項庫,可以幫助我們開發更加美觀、漂亮的 WinForm 界面。 項目介紹 SunnyUI.NET 是一個基於 .NET Framework 4.0+、.NET 6、.NET 7 和 .NET 8 的 WinForm 開源控制項庫,同時也提供了工具類庫、擴展 ...
  • 說明 該文章是屬於OverallAuth2.0系列文章,每周更新一篇該系列文章(從0到1完成系統開發)。 該系統文章,我會儘量說的非常詳細,做到不管新手、老手都能看懂。 說明:OverallAuth2.0 是一個簡單、易懂、功能強大的許可權+可視化流程管理系統。 有興趣的朋友,請關註我吧(*^▽^*) ...
  • 一、下載安裝 1.下載git 必須先下載並安裝git,再TortoiseGit下載安裝 git安裝參考教程:https://blog.csdn.net/mukes/article/details/115693833 2.TortoiseGit下載與安裝 TortoiseGit,Git客戶端,32/6 ...
  • 前言 在項目開發過程中,理解數據結構和演算法如同掌握蓋房子的秘訣。演算法不僅能幫助我們編寫高效、優質的代碼,還能解決項目中遇到的各種難題。 給大家推薦一個支持C#的開源免費、新手友好的數據結構與演算法入門教程:Hello演算法。 項目介紹 《Hello Algo》是一本開源免費、新手友好的數據結構與演算法入門 ...
  • 1.生成單個Proto.bat內容 @rem Copyright 2016, Google Inc. @rem All rights reserved. @rem @rem Redistribution and use in source and binary forms, with or with ...
  • 一:背景 1. 講故事 前段時間有位朋友找到我,說他的窗體程式在客戶這邊出現了卡死,讓我幫忙看下怎麼回事?dump也生成了,既然有dump了那就上 windbg 分析吧。 二:WinDbg 分析 1. 為什麼會卡死 窗體程式的卡死,入口門檻很低,後續往下分析就不一定了,不管怎麼說先用 !clrsta ...
  • 前言 人工智慧時代,人臉識別技術已成為安全驗證、身份識別和用戶交互的關鍵工具。 給大家推薦一款.NET 開源提供了強大的人臉識別 API,工具不僅易於集成,還具備高效處理能力。 本文將介紹一款如何利用這些API,為我們的項目添加智能識別的亮點。 項目介紹 GitHub 上擁有 1.2k 星標的 C# ...