• Windows軟體效能測試工具與方法

    這篇文章主要說明企業內部使用的Windows軟體,

    進行效能測試時應該考慮的效能指標、測試方法與工具。

    我們在安裝軟體的時候,希望可以使用該軟體功能,

    另一方面我們又不希望該軟體造成電腦的效能負擔。

    所以針對使用者常見的使用情境、上網、檔案複製、安裝軟體、網路、CPU、記憶體使用等效能做觀察,

    看看是否因為該軟體的安裝,造成額外太多系統負擔,我們會討論幾個效能測試指標與測試工具。

     

    效能測試報告範例

     

    EXECUTIVE SUMMARY
    TABLE OF CONTENTS 
    REVISION HISTORY 
    PRODUCTS AND VERSIONS 
    PERFORMANCE METRICS SUMMARY 
    TEST RESULTS 
    	BENCHMARK 1 – INSTALLATION TIME (SECONDS) 
    	BENCHMARK 2 – USER INTERFACE LAUNCH TIME (MILLISECONDS) 
    	BENCHMARK 3 – WORD DOCUMENT LAUNCH TIME (MILLISECONDS) 
    	BENCHMARK 4 – INTERNET EXPLORER LAUNCH TIME (SECONDS) 
    	BENCHMARK 5 – BOOT TIME (SECONDS) 
    	BENCHMARK 6 – SCAN TIME ON DEMAND (SECONDS) 
    	BENCHMARK 7 – SCAN TIME ON SCHEDULE (SECONDS) 
    	BENCHMARK 8 – CPU USAGE DURING SCAN (PERCENT) 
    	BENCHMARK 9 – BROWSE TIME (SECONDS) 
    	BENCHMARK 10 – NETWORK THROUGHPUT (SECONDS) 
    	BENCHMARK 11 – FILE COPY, MOVE AND DELETE (SECONDS) 
    	BENCHMARK 12 – FILE COMPRESS AND DECOMPRESS (SECONDS) 
    	BENCHMARK 13 – MEMORY USAGE DURING SYSTEM IDLE (MEGABYTES) 
    	BENCHMARK 14 – CPU USAGE DURING IDLE (PERCENT) 
    DISCLAIMER AND DISCLOSURE 
    CONTACT DETAILS 
    APPENDIX 1 – TEST ENVIRONMENT 
    APPENDIX 2 – METHODOLOGY DESCRIPTION 

     

    效能測試指標與測試情境

    衡量軟體效能的相關指標可以包含如下:

    如果是防毒軟體會額外有所謂的”掃描”動作的測試。

    指標 說明
    Installation Time  整個軟體安裝完畢到使用者可以正常使用所需的時間。
     User Interface Launch Time  啟動該防毒軟體所需要的時間。由於可能會受到快取的影響,所以執行兩次取平均。
    Word Document Open Time
    •  WORD開啟時間。測試WORD開啟一個 10MB的文件檔所需要的時間。
    • 為避免受到記憶體快取的影響,每次測試必須重新開機。
    • 測試工具AppTimer
    Chrome Launch Time
    •  瀏覽器啟動所需花的時間。
    • 測試方式與WORD相同。
     Boot Time 開機時間。
     Scan Time on Demand  整個硬碟掃描 5G檔案所需花的時間
    Scan Time on Schedule  整個硬碟掃描 5G檔案所需花的時間
     Average CPU Usage during Scan  當執行掃描時,CPU的使用狀況
    Browse Time 瀏覽網站所需花的時間
    Network Throughput 瀏覽網站下載檔案時的網路流量
    File Copy, Move and Delete 執行檔案操作時所需花的時間。檔案的樣本包含:

    • Office (e.g. Microsoft Office documents, Adobe PDF, Zip files, etc)
    • 媒體檔案 (e.g. images, movies and music)
    • 系統檔案(e.g. executables, libraries, etc).
    File Compress and Decompress 檔案壓縮與解壓說的時間
    Memory Usage during System Idle 當系統不忙碌時,防毒軟體占用記憶體的比例
    Average CPU Usage during Idle 當系統不忙碌時,防毒軟體占用CPU的比例

    Windows測試環境準備

    為了讓測試結果一致,我們會準備測試機器,網站或是檔案伺服器等固定的環境與 Image.

    為減少其他干擾,Windows 設定上須注意下列事項:

    1. Disabled Automatic Updates.
    2. Changed User Account Control settings to “Never Notify”.
    3. Disable Windows Defender automatic scans to avoid unexpected background activity.
    4. Disable the Windows firewall to avoid interference with security software.
    5. Disabled Superfetch to ensure consistent results.
    6. Disabled updates, accelerators and compatibility view updates in Internet Explorer 8.

    另外,也會統一安裝相關測試與衡量工具。

    如何測試安裝時間?

    一般來說,軟體的安裝可以分為四大部分

    • 安裝過程中的使用者輸入與操作 (不計入安裝時間)
    • 安裝前的掃描動作 (計入安裝時間)
    • 軟體安裝   (計入安裝時間)
    • 安裝完後的病毒碼更新  (計入安裝時間)

    如何測試應用程式開啟時間?

    http://www.passmark.com/products/apptimer.htm

    AppTimer Main Screen

    如何測試開機時間?

    可以使用這個工具 xbootmgr https://technet.microsoft.com/en-us/windows/jj663181.aspx

    “xbootmgr.exe -trace boot –prepSystem”
    “xbootmgr.exe -trace boot -numruns 5”.

    衡量開機時間BootTimer

    另外筆者也推薦這個工具, http://www.planetsoft.org/utils/BootTimer.exe

    Boot Time Utility

    紀錄開機過程的活動資訊

    另外可以使用 Process Monitor 紀錄整個開機過程會執行的相關活動。

    https://www.sophos.com/en-us/support/knowledgebase/119038.aspx

    https://support.symantec.com/en_US/article.TECH92496.html

    如何測試掃描時間?

    通常我們會準備一定檔案數量的樣本。為了讓結果更模擬使用者一般的狀況,檔案的型態會包含各式類型。

    avi 247 1024MB
    .dll 773 25MB
    .exe 730 198MB
    .gif 681 63MB
    .doc 160 60MB
    .docx 267 81MB
    .jpg 2904 318MB
    .mp3 333 2048MB
    .png 451 27MB
    .ppt 97 148MB
    .sys 501 80MB
    .wav 430 260MB
    .wma 585 925MB
    .xls 329 126MB
    .zip 14 177MB


    Process Explorer – TechNet – Microsoft
    如何測試 CPU與記憶體使用?

    記憶體的使用要觀察的是 “Prviate Byte History”

     

    如何測試瀏覽時間?

    一般瀏覽器都會有類似的功能。例如 Chrome Developer tool > Timeline

    如何測量指令間所需的時間?

    我們會用BAT 或是程式將大量的檔案壓縮、拷貝、複製等操作,

    如何衡量這個指令過程所需的時間呢?可以用下列工具

    ptime

    https://www.raymond.cc/blog/wp-content/plugins/download-monitor/download.php?id=3286

    ptime

    TimeThis

    https://www.raymond.cc/blog/wp-content/plugins/download-monitor/download.php?id=3287

    timethis

    TimeMem

    https://www.raymond.cc/blog/wp-content/plugins/download-monitor/download.php?id=3289

    timemem

    PowerShell

    powershell measure command

    善用系統環境變數 %time%

    ECHO Start Measure %Time% >> timer.txt
    user COMMAND here
    ECHO Stop Measure %Time% >> timer.txt

    dos time variable

     

    測試工具列表

    工具 用途
    AppTimer : http://www.passmark.com/products/apptimer.htm 用來測試應用程式啟動所需花的時間
    Process Explorer https://technet.microsoft.com/en-us/sysinternals/processexplorer.aspx 觀察記憶體與CPU使用量
    ptime https://www.raymond.cc/blog/wp-content/plugins/download-monitor/download.php?id=3286 衡量指令執行所花的時間
    BootTimer http://www.planetsoft.org/utils/BootTimer.exe 衡量開機時間

     

     

     

  • 如何驗證該檔案為Windows 32 or 64 bit Binary?

     

    這篇文章主要介紹一個簡單的方是判別Windows執行檔案為 32 or native 64 bit?

    工具主角: SignCheck

    sigcheck.exe  C:\Windows\Notepad.exe
    
    
    Sigcheck v2.1 - File version and signature viewer
    Copyright (C) 2004-2014 Mark Russinovich
    Sysinternals - www.sysinternals.com
    
    c:\windows\notepad.exe:
        Verified:       Signed
        Signing date:   8:59 AM 8/22/2013
        Publisher:      Microsoft Windows
        Description:    Notepad
        Product:        Microsoft« Windows« Operating System
        Prod version:   6.3.9600.16384
        File version:   6.3.9600.16384 (winblue_rtm.130821-1623)
        MachineType:    64-bit

    如何下載 SigCheck

    https://technet.microsoft.com/en-us/sysinternals/bb897441.aspx

     

  • 如何擷取 Kernel Memory Dump?

    這篇文章主要說明如何取得 Windows Kernel Dump的步驟與技巧。

    常用的方式是刻意製造一次 Blue Screen 讓系統產生 Dump,但是這樣會造成系統當機中斷,

    使用Windbg進行Live Debugging 也很容易操作不慎而造成藍色畫面,有沒有其他方式可以產生呢?

    使用 LiveKD 工具

    1. 安裝 WinDBG

    http://www.microsoft.com/whdc/DevTools/Debugging/default.mspx

    on the computer from which you require a kernel memory dump.

    2. 下載 LiveKD

    https://technet.microsoft.com/en-us/sysinternals/bb897415.aspx

    解壓縮至 Windbg目錄, C:\Program Files\Debugging Tools for Windows (X86)\

    3. 拷貝系統檔案

    將下列檔案從 C:\windows\system32拷貝至 .c:\debugsymbols\system32

    • ntoskrnl.exe
    • ntkrnlpa.exe
    • kernel32.dll
    • ntdll.dll

    4. 下載 Symbols

    C:\Program Files\Debugging Tools for Windows (x86)>Symchk.exe /if c:\debugsymbols\system32\*.* /s srv*c:\debugsymbols*http://msdl.microsoft.com/download/symbols

     

    5. 設定 WinDBG Symbol Path

    開啟 WinDBG > File  > Search Symbol Path > 輸入 ” SRV*c:\debugsymbols*”

     

    6. 執行 LiveKD.exe

    用系統管理者權限開啟 command,

    C:\Program Files\Debugging Tools for Windows (X86)\livekd.exe

    輸入  “.dump  -f  c:\memory.dmp”

     

    使用 NotMyFault藍色畫面

    http://download.sysinternals.com/files/NotMyFault.zip

    輸入 “NotMyFault.exe /crash”

    Complete Memory Dump 設定

    “Complete Memory Dump”預設沒有,必須要再註冊碼設定。

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CrashControl

    CrashDumpEnabled=1

    或是可以利用這個工具設定  DumpConfigurator.hta