如果是研發(fā)的測(cè)試,一般在項(xiàng)目之初,開發(fā)人員是提不出很明確的性能指標(biāo)的,那么我們?cè)趺匆龑?dǎo)開發(fā)人員給出量化的性能指標(biāo)呢?
做性能測(cè)試之前,相關(guān)功能測(cè)試必須完成,架構(gòu)、部署已基本穩(wěn)定,把描述性的性能指標(biāo)轉(zhuǎn)換成量化的指標(biāo),才具備可測(cè)試性
立項(xiàng)之初性能需求一般是模糊:系統(tǒng)性能好、反應(yīng)速度快,那么如何轉(zhuǎn)成量化指標(biāo)呢?一般從最終用戶、業(yè)務(wù)、技術(shù)和標(biāo)準(zhǔn)等某個(gè)方面獲得足夠的信息和數(shù)據(jù)
□ 最終用戶的體驗(yàn):2-5-10原則,頁面響應(yīng)時(shí)間
□ 商業(yè)需求:競(jìng)品分析(對(duì)手產(chǎn)品的處理能力、等待時(shí)間、響應(yīng)速度、容量)
□ 技術(shù)需求:技術(shù)指標(biāo)一般都差別不大,服務(wù)器CPU不能超過80%,IO不能超過100,網(wǎng)絡(luò)吞吐不超過網(wǎng)卡帶寬
□ 標(biāo)準(zhǔn):國家或行業(yè)標(biāo)準(zhǔn)中的性能指標(biāo)
常見量化性能指標(biāo)
時(shí)間:一般是用戶的關(guān)注
○ 頁面下載時(shí)間
○ 處理時(shí)間
○ 發(fā)送時(shí)間
○ 連接時(shí)間
○ 系統(tǒng)/事務(wù)的響應(yīng)時(shí)間
容量/數(shù)據(jù)吞吐量:產(chǎn)品關(guān)注點(diǎn)
○? 最大用戶數(shù)
○? 最佳用戶數(shù)
○? 頁面瀏覽量
○? 吞吐率:每秒服務(wù)器處理的HTTP請(qǐng)求
○? 每秒點(diǎn)擊率
○ 每秒連接數(shù)
系統(tǒng)資源占用率:開發(fā)關(guān)注點(diǎn)
○ CPU
○ 內(nèi)存
○ IO
○ 網(wǎng)口
【性能需求分析】業(yè)務(wù)要求支持2億用戶,每天支持2000萬次交易量,交易響應(yīng)時(shí)間要求在1s之內(nèi)
? 2億用戶:說明數(shù)據(jù)庫中要有2億的用戶,按1%(需根據(jù)實(shí)際情況而定)用戶會(huì)在線,意味著2億用戶需要有200萬用戶同時(shí)在線
? 每天2000萬次交易:按交易時(shí)間18h計(jì)算(早上8點(diǎn)-凌晨2點(diǎn)),平均每秒309次
? 若高峰期間處理能力要求是平均值的3倍,則最大吞吐量要到927次/秒
? 交易響應(yīng)時(shí)間不超過1s,峰值不超過3s
? 正常交易成功率100%,峰值不低于99.9%
? 服務(wù)器cpu不能持續(xù)超過70%,內(nèi)存不能持續(xù)超過XXXG(需根據(jù)實(shí)際配置確定),IO為xxx,網(wǎng)絡(luò)帶寬不超過100M/S
從上述分析中有一些潛在的經(jīng)驗(yàn)值(監(jiān)控指標(biāo)),有些是需要對(duì)實(shí)際業(yè)務(wù)進(jìn)行摸底(1%用戶在線,高峰是平均值的3倍)
后續(xù)性能測(cè)試的大體流程:
第一步:摸底測(cè)試
在沒有量化指標(biāo)的情況下,第一個(gè)版本的性能測(cè)試主要是摸底,
一般會(huì)拍腦瓜定個(gè)并發(fā)數(shù),場(chǎng)景設(shè)置成系統(tǒng)主要的功能監(jiān)控收集該狀態(tài)下,系統(tǒng)的各種指標(biāo):
? 哪個(gè)服務(wù)和組件占用資源(CPU、內(nèi)存、吞吐量)過多
? 哪個(gè)環(huán)節(jié)(頁面、操作、接口)費(fèi)時(shí)多
? 算法消耗資源
? 有沒有內(nèi)存泄漏
? 加大壓力,看系統(tǒng)是否會(huì)崩潰
第二步:把第一次的測(cè)試結(jié)果展現(xiàn)給開發(fā),讓開發(fā)對(duì)這些關(guān)鍵的指標(biāo)有認(rèn)識(shí),并共同分析產(chǎn)生這些結(jié)果的原因并指定要達(dá)到的量化指標(biāo)。
第三步:一般開發(fā)會(huì)提出優(yōu)化方案(可能是更換組件),達(dá)到量化目標(biāo)后,做長時(shí)間的壓力測(cè)試