• 軟件測試技術
  • 軟件測試博客
  • 軟件測試視頻
  • 開源軟件測試技術
  • 軟件測試論壇
  • 軟件測試沙龍
  • 軟件測試資料下載
  • 軟件測試雜志
  • 軟件測試人才招聘
    暫時沒有公告

字號: | 推薦給好友 上一篇 | 下一篇

軟件測試中性能測試過程概述

發布: 2010-12-27 09:09 | 作者: 網絡轉載 | 來源: 領測軟件測試網采編 | 查看: 61次 | 進入軟件測試論壇討論

領測軟件測試網

MILY: 宋體; mso-ascii-theme-font: minor-fareast; mso-fareast-font-family: 宋體; mso-fareast-theme-font: minor-fareast; mso-hansi-theme-font: minor-fareast">軟件測試中性能測試過程概述

性能測試是通過自動化的測試工具模擬多種正常、峰值以及異常負載條件來對系統的各項性能指標進行測試。負載測試壓力測試都屬于性能測試,兩者可以結合進行。通過負載測試,確定在各種工作負載下系統的性能,目標是測試當負載逐漸增加時,系統各項性能指標的變化情況。壓力測試是通過確定一個系統的瓶頸或者不能接收的性能點,來獲得系統能提供的最大服務級別的測試。

每個系統都肯定會對性能有要求,這些要求大致被分為3類:

1.   可接受的響應時間

2.   吞吐量和并發用戶

3.   未來對性能增長要求

首先,我們先看一下性能測試的周期是怎樣的:

性能測試過程概述  - tester - 測試藝術

一階段、規劃

規劃這部分最核心的,我覺得是對用戶行為的分析和剖析。因為這是為第二個環節建立可依據的標準。對用戶行為的分析和剖析,大致分為以下3類。

1.1、吞吐量和并發用戶數設計目標

    獲取這些數據的途徑可以是:網站服務器的日志文件、系統監視數據、數據庫活動監視數據、市場調研等等。調研出來的數據,可以按照功能點來進行劃分,以便清楚的知道各個功能點的使用比率、使用次數/小時,由此來確定并發數和吞吐量的分布。

2.2、性能增長分析

    這部分的數據可以是通過市場調研來預測的,也可以是通過之前的經驗來下的定論,也可以通過系統運行一段時間以來,用戶的增長速度來確定。通過對增長趨勢的分析,同時考慮到特殊情況(如:特定節日,特定事件)對系統的沖擊,可以適當增加用戶的增長趨勢。至于增長趨勢持續的時間,可以按照實際情況而定,由此來定出系統最終的吞吐量和并發用戶數。

2.3、用戶活動剖析

    分析用戶活動,我常用的是以下的幾種方法:

1)   通過在程序中寫代碼,把登錄用戶的相關信息(登錄名、IP地址、訪問頁面、功能操作、停留時間。。。等等)記錄在數據庫中

2)   通過IIS日志來記錄用戶活動記錄,然后再對IIS日志進行分析。這個過程當然少不了必備的工具,當前市面上的工具很多。諸如AWStats、Analog、Summary、Webalizer、WebTrends等。這些工具雖然都是現成的,但是有的配置復雜,有的功能不夠強大和靈活。所以更多的是把IIS日志導入到SQL SERVER中,自行寫查詢語句進行分析,這樣靈活簡單。但是如果日志文件過大,或者數量眾多的時候,這個方法稍微有點麻煩,所以我推薦使用另外一個工具Log Parser。對于這個工具的使用說明,我會在后面進行介紹。

二階段、創建腳本、運行腳本

這個階段,根據第一階段的分析結果,對需要進行性能測試的場景錄制腳本,再根據環境分析結果對腳本進行微調(例如:加入虛擬IP、創建多用戶登錄等,各類情況根據實際決定,這里不多說)。腳本調試好,在運行之前,打開各性能指標的計數器,SQL Server開啟跟蹤,然后運行腳本,并實時監控,以及手工N+1測試。

關于計數器,我常用的如下,不含特殊情況下需要用到的一些指標:

操作系統

性能對象

計數器對象

計數器

瓶頸條件

建議的效能調整方法

備注

內存

Memory

Pages/Sec

0 - 20(如果大于 80,表示有問題)。

增加內存大小

 

Available Mbytes

<100M

增加內存大小

 

Pool Nonpaged Bytes

緩慢的增長表示存在內存泄漏,應該保持穩定

處理器

Processor

% Processor Time

<75%

升級處理器速度或增加處理器個數

如果有多個處理器,除了統計Total之外,最好每個處理器都要再單獨統計一次

% Interrupt Time

 

 

監視該計數器,來分析判斷磁盤驅動器、網絡適配器和其他能夠產生中斷的驅動器的活動情況

系統

System

Processor Queue Length

<2

升級處理器速度或增加處理器個數

 

硬盤

PhysicalDisk

Avg. Disk Read Queue Length

<2

1、換更快速的磁盤驅動器
2
、數據庫檔案的檔案群組重新規劃分散于不同的磁盤陣列

 

Avg. Disk Write Queue Length

<2

同上

 

IIS

Internet Information Services Global

File Cache Flushes

File Cache Hits

File Cache Hits %

Web Service

Bytes Total/sec

Current Connections

Not Found Errors/sec

 

SQL Server

性能對象

計數器對象

計數器

瓶頸條件

建議的效能調整方法

備注

內存

SQLServer:Buffer Manager

Buffer cache hit ratio

< 90

增加內存大小

 

SQLServer:Memory Manager

Target Server Memory (KB)

超過物理內存大小

同上

 

Total Server Memory (KB)

> 70~80%

同上

 

數據庫Tempdb

SQLServer:Database

Data File(s) Size (KB)

可以得知是否持續增加

見后面的解釋

 

事務歷史記錄檔

Log File(s) Size (KB)

10~25%  Date File Size

備份或清除事務歷史記錄檔,然后壓縮文件案

 

 

ASP.NET

性能對象

計數器對象

計數器

系統性能計數器

ASP.NET (+版本號)

Application Restarts

Request Wait Time

Requests Queued

Requests Rejected

應用程序性能計數器

ASP.NET Applications

Cache Total Turnover Rate

Errors Total

Request Execution Time

Requests Failed

Requests Not Authorizedd

Requests Not Found

Requests Timed Out

Requests/Sec

三階段、分析優化

    運行完腳本,關閉跟蹤。接下來就是分析日志,分析跟蹤結果了。這部分很復雜,涉及很多方面的知識。以B/S結構為例,整個網絡的體系架構大致如下:

    性能測試過程概述  - tester - 測試藝術

參照上圖,我大致把整個過程的時間簡單的分為以下的幾部分:

性能測試過程概述  - tester - 測試藝術

客戶端與服務器間的網絡傳輸時間:T1+T7

服務器執行時間:T2+T4+T6

服務器間網絡傳輸時間:T3+T5

客戶端運行呈現時間:T8

當然并不是每次訪問都是由這些時間相加,例如WEBDB在同一臺服務器,或者此次訪問根本就沒有對數據庫進行訪問。

對每個部分的時間都需要用不同的方法進行確認,初步分析出最耗時的環節進行優化。優化所需的技能和知識就多了,例如:你發現在內存不斷減少,懷疑有內存泄漏,那么怎么判斷是什么導致內存泄漏?某次訪問的時候耗時很久,那么到底是哪部分耗時最久?當前系統所采用的技術是否是制約性能瓶頸?硬件是否是瓶頸,哪部分造成瓶頸?

優化需要大量的技能,是個需要不斷的、長期的積累的過程。

路,還長的很啊。

延伸閱讀

文章來源于領測軟件測試網 http://www.anti-gravitydesign.com/

TAG: 軟件測試


關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備10010545號-5
技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97