負載測試
1火鼻、定義:
負載測試是通過逐步增加系統(tǒng)負載,測試系統(tǒng)性能的變化,并最終確定在滿足性能指標的情況下魁索,系統(tǒng)所能承受的最大負載量的測試融撞。
2、目的:
不把系統(tǒng)搞掛的測試粗蔚,使系統(tǒng)能夠在最大的壓力下可以正常運行尝偎。從而獲取系統(tǒng)指標。
3鹏控、方法:
不斷增加請求壓力致扯,直到服務器某個資源項達到飽和(比如CPU使用率達到90%+)或某個指標達到安全臨界值(比如運維的監(jiān)控告警閾值or拐點)。系統(tǒng)負載壓力包含并發(fā)用戶數(shù)当辐、持續(xù)運行時間抖僵、數(shù)據(jù)量等。其中并發(fā)用戶數(shù)是負載壓力的重要指標缘揪。
并發(fā)測試
1耍群、定義:
1、目的:檢查系統(tǒng)是否有并發(fā)問題找筝,例如內(nèi)存泄漏蹈垢、線程鎖、資源爭用等問題呻征。
2耘婚、方法:確定用戶并發(fā)數(shù)罢浇,必須知道系統(tǒng)所承載的在線用戶數(shù)陆赋。然后在單位時間內(nèi)(S)同時發(fā)起一定量的請求。
3嚷闭、確定并發(fā)用戶數(shù)的方法:
例如:公司OA系統(tǒng)賬號或者總用戶有2000人攒岛;最高峰在線500人;但是這500人并不是作為并發(fā)用戶存在的概念胞锰。即并不表示服務器實際承載的壓力灾锯;有可能40%關注的是首頁新聞公告板之類(注意看新聞這個階段是不能造成服務器的壓力);20%用戶在查詢資料或者操作表格嗅榕;20%用戶在發(fā)呆顺饮;20%在頁面之間跳轉(zhuǎn);在這種情況下凌那,只有真正20%用戶在對服務器造成實質(zhì)的影響兼雄。
我們將這個查詢、操作表格作為一個業(yè)務范疇來說帽蝶;直接將這部分業(yè)務并發(fā)用戶稱為并發(fā)用戶數(shù):
1.計算平均并發(fā)用戶數(shù):C=NL/T
2.并發(fā)用戶峰值數(shù):C’ ≈ C+3根號C
公式(1)中赦肋,C是平均的并發(fā)用戶數(shù);n是login session的數(shù)量;L是login session的平均長度佃乘;T指考察的時間段長度囱井。
公式(2)則給出了并發(fā)用戶數(shù)峰值的計算方式中,其中趣避,C’指并發(fā)用戶數(shù)的峰值庞呕,C就是公式(1)中得到的平均的并發(fā)用戶數(shù)。該公式的得出是假設用戶的login session產(chǎn)生符合泊松分布而估算得到的鹅巍。
假設有一個OA系統(tǒng)千扶,該系統(tǒng)有3000個用戶,(可以看注冊信息)平均每天大約有400個用戶要訪問該系統(tǒng)骆捧,(日志文件查看)對一個典型用戶來說澎羞,一天之內(nèi)用戶從登錄到退出該系統(tǒng)的平均時間為4小時,在一天的時間內(nèi)敛苇,用戶只在8小時內(nèi)使用該系統(tǒng)妆绞。
則根據(jù)公式(1)和公式(2),可以得到:
C = 4004/8 = 200
C’≈200+3根號200 = 242
但是一般的做法是把每天訪問系統(tǒng)用戶數(shù)的10%作為平均的并發(fā)用戶數(shù)枫攀。最大的并發(fā)用戶數(shù)乘上一個值括饶,2或者3.
假如說用戶要求系統(tǒng)每秒最大可以處理100個登陸請求,10/25/50/75/100 個并發(fā)用戶來執(zhí)行登陸操作来涨,然后觀察系統(tǒng)在不同負載下的響應時間和每秒事務數(shù)图焰。如果用戶數(shù)在100的時候,響應時間還在允許范圍呢蹦掐,就要加大用戶數(shù)技羔,例如120 等 。個人理解這個用戶數(shù)就是我們經(jīng)常說的等價類和邊界值法來設定卧抗。
壓力測試
1藤滥、定義:
是給軟件不斷加壓,強制其在極限的情況下運行社裆,觀察它可以運行到何種程度拙绊,從而發(fā)現(xiàn)性能缺陷。
2泳秀、目的:
把系統(tǒng)搞掛的測試标沪。
3、方法:以負載測試或者并發(fā)測試為依據(jù)嗜傅,給軟件不斷加壓金句,強制其在極限的情況下運行,觀察它可以運行到何種程度磺陡,從而發(fā)現(xiàn)性能缺陷趴梢。