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
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...