Web性能測試的部分概況一般來說,一個Web請求的處理包括以下步驟:
(1)客戶發(fā)送請求
(2)web server 接受到請求,進行處理;
(3)web server 向DB獲取數(shù)據(jù);
(4)web server生成用戶的object(頁面),返回給用戶。給客戶發(fā)送請求開始到最后一個字節(jié)的時間稱為響應(yīng)時間(第三步不包括在每次請求處理中)。
1.事務(wù)(Transaction)
在web性能測試中,一個事務(wù)表示一個“從用戶發(fā)送請求->web server接受到請求,進行處理-> web server向DB獲取數(shù)據(jù)->生成用戶的object(頁面),返回給用戶”的過程,一般的響應(yīng)時間都是針對事務(wù)而言的。
2.請求響應(yīng)時間
請求響應(yīng)時間指的是從客戶端發(fā)起的一個請求開始,到客戶端接收到從服務(wù)器端返回的響應(yīng)結(jié)束,這個過程所耗費的時間,在某些工具中,響應(yīng)通常會稱為“TTLB”,即"time to
last byte",意思是從發(fā)起一個請求開始,到客戶端接收到最后一個字節(jié)的響應(yīng)所耗費的時間,響應(yīng)時間的單位一般為“秒”或者“毫秒”。一個公式可以表示:響應(yīng)時間=網(wǎng)絡(luò)響應(yīng)時間+應(yīng)用程序響應(yīng)時間。標準可參考國外的3/5/10原則:
(1)在3秒鐘之內(nèi),頁面給予用戶響應(yīng)并有所顯示,可認為是“很不錯的”;
(2)在3~5秒鐘內(nèi),頁面給予用戶響應(yīng)并有所顯示,可認為是“好的”;
(3)在5~10秒鐘內(nèi),頁面給予用戶響應(yīng)并有所顯示,可認為是“勉強接受的”;
(4)超過10秒就讓人有點不耐煩了,用戶很可能不會繼續(xù)等待下去;
3、事務(wù)響應(yīng)時間
? 事務(wù)可能由一系列請求組成,事務(wù)的響應(yīng)時間主要是針對用戶而言,屬于宏觀上的概念,是為了向用戶說明業(yè)務(wù)響應(yīng)時間而提出的.例如:跨行取款事務(wù)的響應(yīng)時間就是由一系列的請求組成的.事務(wù)響應(yīng)時間是直接衡量系統(tǒng)性能的參數(shù).
4.并發(fā)用戶數(shù)
并發(fā)一般分為2種情況。一種是嚴格意義上的并發(fā),即所有的用戶在同一時刻做同一件事情或者操作,這種操作一般指做同一類型的業(yè)務(wù)。比如在信用卡審批業(yè)務(wù)中,一定數(shù)目的擁護在同一時刻對已經(jīng)完成的審批業(yè)務(wù)進行提交;還有一種特例,即所有用戶進行完全一樣的操作,例如在信用卡審批業(yè)務(wù)中,所有的用戶可以一起申請業(yè)務(wù),或者修改同一條記錄。
另外一種并發(fā)是廣義范圍的并發(fā)。這種并發(fā)與前一種并發(fā)的區(qū)別是,盡管多個用戶對系統(tǒng)發(fā)出了請求或者進行了操作,但是這些請求或者操作可以是相同的,也可以是不同的。對整個系統(tǒng)而言,仍然是有很多用戶同時對系統(tǒng)進行操作,因此也屬于并發(fā)的范疇。
可以看出,后一種并發(fā)是包含前一種并發(fā)的。而且后一種并發(fā)更接近用戶的實際使用情況,因此對于大多數(shù)的系統(tǒng),只有數(shù)量很少的用戶進行“嚴格意義上的并發(fā)”。對于WEB性能測試而言,這2種并發(fā)情況一般都需要進行測試,通常做法是先進行嚴格意義上的并發(fā)測試。嚴格意義上的用戶并發(fā)一般發(fā)生在使用比較頻繁的模塊中,盡管發(fā)生的概率不是很大,但是一旦發(fā)生性能問題,后果很可能是致命的。嚴格意義上的并發(fā)測試往往和功能測試關(guān)聯(lián)起來,因為并發(fā)功能遇到異常通常都是程序問題,這種測試也是健壯性和穩(wěn)定性測試的一部分。
用戶并發(fā)數(shù)量:關(guān)于用戶并發(fā)的數(shù)量,有2種常見的錯誤觀點。一種錯誤觀點是把并發(fā)用戶數(shù)量理解為使用系統(tǒng)的全部用戶的數(shù)量,理由是這些用戶可能同時使用系統(tǒng);還有一種比較接近正確的觀點是把在線用戶數(shù)量理解為并發(fā)用戶數(shù)量。實際上在線用戶也不一定會和其他用戶發(fā)生并發(fā),例如正在瀏覽網(wǎng)頁的用戶,對服務(wù)器沒有任何影響,但是,在線用戶數(shù)量是計算并發(fā)用戶數(shù)量的主要依據(jù)之一。
5.吞吐量
指的是在一次性能測試過程中網(wǎng)絡(luò)上傳輸?shù)臄?shù)據(jù)量的總和.吞吐量/傳輸時間,就是吞吐率.
6、 TPS(transaction per second)
每秒鐘系統(tǒng)能夠處理的交易或者事務(wù)的數(shù)量.它是衡量系統(tǒng)處理能力的重要指標.
7、點擊率
每秒鐘用戶向WEB服務(wù)器提交的HTTP請求數(shù).這個指標是WEB應(yīng)用特有的一個指標:WEB應(yīng)用是"請求-響應(yīng)"模式,用戶發(fā)出一次申請,服務(wù)器就要處理一次,所以點擊是WEB應(yīng)用能夠處理的交易的最小單位.如果把每次點擊定義為一個交易,點擊率和TPS就是一個概念.容易看出,點擊率越大,對服務(wù)器的壓力越大.點擊率只是一個性能參考指標,重要的是分析點擊時產(chǎn)生的影響。需要注意的是,這里的點擊并非指鼠標的一次單擊操作,因為在一次單擊操作中,客戶端可能向服務(wù)器發(fā)出多個HTTP請求.
8.資源利用率
指的是對不同的系統(tǒng)資源的使用程度,例如服務(wù)器的CPU利用率,磁盤利用率等.資源利用率是分析系統(tǒng)性能指標進而改善性能的主要依據(jù),因此是WEB性能測試工作的重點.
資源利用率主要針對WEB服務(wù)器,操作系統(tǒng),數(shù)據(jù)庫服務(wù)器,網(wǎng)絡(luò)等,是測試和分析瓶頸的主要參考.在WEB性能測試中,更根據(jù)需要采集相應(yīng)的參數(shù)進行分析。
通用指標(指Web應(yīng)用服務(wù)器、數(shù)據(jù)庫服務(wù)器必需測試項)