版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、目目 錄錄 基礎(chǔ)理論基礎(chǔ)理論 測(cè)試流程 常用工具 LoadRunner使用 實(shí)例 前前 言言 隨著軟件行業(yè)的快速發(fā)展,現(xiàn)代的軟件系統(tǒng)越來越復(fù)雜,功能 越來越多,測(cè)試人員除了需要保證基本的功能測(cè)試質(zhì)量,性能也隨越 來越受到人們的關(guān)注。但是一提到性能測(cè)試,很多人就直接連想到 Loadrunner。認(rèn)為L(zhǎng)R就等于性能測(cè)試,其實(shí)這是不對(duì)的。LR只是性 能測(cè)試的一個(gè)工具,但性能測(cè)試不僅僅是LR。本文會(huì)從以下幾個(gè)方 面介紹基礎(chǔ)的性能測(cè)試?yán)碚摚罄m(xù)也會(huì)持續(xù)更新相關(guān)文章,盡量理論 結(jié)合實(shí)踐,讓性能測(cè)試學(xué)習(xí)不在是工具的學(xué)習(xí)。 基礎(chǔ)理論基礎(chǔ)理論 什么是軟件性能. 不同人眼里的性能. 性能測(cè)試類型. 性能測(cè)試應(yīng)用場(chǎng)
2、景. 性能測(cè)試基本概念. 做好性能測(cè)試需要掌握的知識(shí). v 定義定義:軟件的性能是軟件的一種非功能特性非功能特性,它關(guān)注的不是軟件是 否能夠完成特定的功能,而是在完成該功能時(shí)展示出來的及時(shí)性及時(shí)性。 由定義可知性能關(guān)注的是軟件的非功能特性,所以一般來說性能 測(cè)試介入的時(shí)機(jī)是在功能測(cè)試完成之后。另外,由定義中的及時(shí)性可 知性能也是一種指標(biāo),可以用時(shí)間或其它指標(biāo)來衡量,通常我們會(huì)使 用某些工具或手段來檢測(cè)軟件的某些指標(biāo)是否達(dá)到了要求,這就是性 能測(cè)試。 v 性能性能測(cè)試定義測(cè)試定義:指通過自動(dòng)化的測(cè)試工具模擬多種正常、峰值以及 異常負(fù)載條件來對(duì)系統(tǒng)的各項(xiàng)性能指標(biāo)進(jìn)行測(cè)試。 什么是軟件性能 不同的人
3、由于人生觀、世界觀、價(jià)值觀以及教育背景、知識(shí)體系、 人生閱歷的不同,對(duì)于同一事物或問題的看法可能不同。對(duì)于軟件性 能也是如此,不同的人由于視角的不同,所關(guān)注的點(diǎn)也可能不同。下 面來看看在不同的人群眼中性能分別是什么樣的。 不同用戶群眼中的性能 上帝 視角 測(cè)試眼中的性能是什么樣的呢?測(cè)試眼中的性能是什么樣的呢? 測(cè)試人員通常是做為軟件質(zhì)量控制的 一個(gè)角色,不僅僅是找bug,需要對(duì)整個(gè) 軟件的質(zhì)量負(fù)責(zé),性能也屬于質(zhì)量的一部 分,因此測(cè)試人員眼中的性能應(yīng)該是全面 的,考慮的東西也需要全面: v測(cè)試人員需要考慮全面的性能,包括 用戶、開發(fā)、管理員等各個(gè)視角的性 能。 v測(cè)試人員在做性能測(cè)試時(shí)除開要關(guān)
4、注 表面的現(xiàn)象如響應(yīng)時(shí)間,也需要關(guān)注 本質(zhì),比如用戶看不到的服務(wù)器資料 利用率,架構(gòu)設(shè)計(jì)是否合理?代碼是 否合理等言方方面面。 在給系統(tǒng)施加較低壓力時(shí),查看系統(tǒng)的運(yùn) 行狀況并記錄相關(guān)數(shù)做為基礎(chǔ)參考. 是指對(duì)系統(tǒng)不斷地增加壓力或增加一定壓 力下的持續(xù)時(shí)間,直到系統(tǒng)的某項(xiàng)或多項(xiàng) 性能指標(biāo)達(dá)到安全臨界值,例如某種資源 已經(jīng)達(dá)到飽和狀態(tài)等 . 壓力測(cè)試是評(píng)估系統(tǒng)處于或超過預(yù)期負(fù)載 時(shí)系統(tǒng)的運(yùn)行情況,關(guān)注點(diǎn)在于系統(tǒng)在峰 值負(fù)載或超出最大載荷情況下的處理能力. 性能測(cè)試性能測(cè)試 類型類型 基準(zhǔn)測(cè)試 負(fù)載測(cè)試 壓力測(cè)試 在給系統(tǒng)加載一定業(yè)務(wù)壓力的情況下,使 系統(tǒng)運(yùn)行一段時(shí)間,以此檢測(cè)系統(tǒng)是否穩(wěn) 定. 性能測(cè)
5、試性能測(cè)試 類型類型 穩(wěn)定性測(cè) 試 測(cè)試多個(gè)用戶同時(shí)訪問同一個(gè)應(yīng)用、同一 個(gè)模塊或者數(shù)據(jù)記錄時(shí)是否存在死鎖或者 其他性能問題. 并發(fā)測(cè)試 1、性能測(cè)試應(yīng)用場(chǎng)景(領(lǐng)域)主要有:能力驗(yàn)證、規(guī)劃能力、性能調(diào)優(yōu)、 缺陷發(fā)現(xiàn)、性能基準(zhǔn)比較,下表簡(jiǎn)單介紹和對(duì)比了這幾個(gè)場(chǎng)景的各自用 途和特點(diǎn): 性能性能測(cè)試應(yīng)用場(chǎng)景(領(lǐng)域)測(cè)試應(yīng)用場(chǎng)景(領(lǐng)域) 性能性能測(cè)試應(yīng)用場(chǎng)景(領(lǐng)域)測(cè)試應(yīng)用場(chǎng)景(領(lǐng)域) 主要用途主要用途典型場(chǎng)景典型場(chǎng)景 特點(diǎn)特點(diǎn) 常用性能常用性能 測(cè)試方法測(cè)試方法 能力驗(yàn)證關(guān)注在給定的軟硬件 條件下,系統(tǒng)能否具 有預(yù)期的能力表現(xiàn) 在要求平均響應(yīng)時(shí)間 小于2秒的前提下,如 何判斷系統(tǒng)是否能夠 支持50萬
6、用戶/天的訪 問量? a)要求在已確定的環(huán) 境下運(yùn)行 b)需要根據(jù)典型場(chǎng)景 設(shè)計(jì)測(cè)試方案和用例, 包括操作序列和并發(fā) 用戶量,需要明確的 性能目標(biāo)。 a)負(fù)載測(cè)試 b)壓力測(cè)試 c)穩(wěn)定性能測(cè)試 規(guī)劃能力關(guān)注如何使系統(tǒng)具有 我們要求的性能能力 某某系統(tǒng)計(jì)劃在一年 內(nèi)獲客量在到xxx萬, 系統(tǒng)到時(shí)候是否能支 持這么多用戶量?如 果不能需要如何調(diào)整 系統(tǒng)的配置? a) 它是一種探索性的 測(cè)試 b) 常用于了解系統(tǒng)性 能和獲得擴(kuò)展性能的 方法 a) 負(fù)載測(cè)試 b) 壓力測(cè)試 c) 配置測(cè)試 性能調(diào)優(yōu) 主要用于對(duì)系統(tǒng)性能 進(jìn)行調(diào)優(yōu) 某某系統(tǒng)上線運(yùn)行一 段時(shí)間后響應(yīng)速度越 來越慢,此時(shí)應(yīng)該如 何辦? 每
7、次只改變一個(gè)配置, 切忌無 休止的調(diào)優(yōu) a) 并發(fā)測(cè)試 b) 壓力測(cè)試 c) 配置測(cè)試 缺陷發(fā)現(xiàn) 發(fā)現(xiàn)缺陷或問題重現(xiàn)、 定位手段 某些缺陷只有在高負(fù) 載的情況下才能暴露 出來,如線程鎖、資 源競(jìng)爭(zhēng)或內(nèi)存泄露。 做為系統(tǒng)測(cè)試的補(bǔ)充, 用來發(fā)現(xiàn)并發(fā)問題, 或是對(duì)系統(tǒng)已經(jīng)出現(xiàn) 的問題進(jìn)行重現(xiàn)和定 位 a) 并發(fā)測(cè)試 b) 壓力測(cè)試 性能基準(zhǔn)比較常用于敏捷開發(fā)過程中,敏捷開發(fā)流程的特點(diǎn)是小步快走,快速試錯(cuò),迭代周期短,需求變化頻繁。 很難定義完善的性能測(cè)試目標(biāo),也沒有時(shí)間在每個(gè)迭代開展詳細(xì)的性能測(cè)試,可以通過建立性能基 線,通過比較每次迭代中的性能表現(xiàn)變化,判斷迭代是否達(dá)到了目標(biāo)。 2、通常在某個(gè)性能
8、場(chǎng)景(領(lǐng)域)中需要聯(lián)合使用多種性能測(cè)試方法一起 進(jìn)行性能測(cè)試,下表為性能測(cè)試應(yīng)用領(lǐng)域與測(cè)試方法關(guān)聯(lián): 性能性能測(cè)試應(yīng)用場(chǎng)景(領(lǐng)域)測(cè)試應(yīng)用場(chǎng)景(領(lǐng)域) 能力驗(yàn)證規(guī)劃能力性能調(diào)優(yōu)缺陷發(fā)現(xiàn)性能基準(zhǔn)比較 基準(zhǔn)測(cè)試 負(fù)載測(cè)試 壓力測(cè)試 并發(fā)測(cè)試 穩(wěn)定性測(cè)試 1、響應(yīng)時(shí)間、響應(yīng)時(shí)間 v 定義:從用戶發(fā)送一個(gè)請(qǐng)求到用戶接收到服務(wù)器返回的響應(yīng)數(shù)據(jù)這段 時(shí)間就是響應(yīng)時(shí)間 v 關(guān)鍵路徑:下圖為一次http請(qǐng)求經(jīng)過的路徑,請(qǐng)求會(huì)經(jīng)過網(wǎng)絡(luò)發(fā)送到 web服務(wù)器進(jìn)行處理,如果需要操作DB,再由網(wǎng)絡(luò)轉(zhuǎn)發(fā)到數(shù)據(jù)庫進(jìn) 行處理,然后返回值給web服務(wù)器,web服務(wù)器最后把結(jié)果數(shù)據(jù)通過 網(wǎng)絡(luò)返回給客戶端。 性能測(cè)試基本概念性能測(cè)
9、試基本概念 v 計(jì)算方法:Response time = (N1+N2+N3+N4)+ (A1+A2+a3),即: (網(wǎng)絡(luò)時(shí)間 + 應(yīng)用程序處理時(shí)間) v 響應(yīng)時(shí)間-負(fù)載對(duì)應(yīng)關(guān)系: 圖中拐點(diǎn)說明: v 響應(yīng)時(shí)間突然增加 v 意味著系統(tǒng)的一種或多種資源利用達(dá)到的極限 v 通??梢岳霉拯c(diǎn)來進(jìn)行性能測(cè)試分析與定位 性能測(cè)試基本概念性能測(cè)試基本概念 2、吞吐量、吞吐量 v定義:?jiǎn)挝粫r(shí)間內(nèi)系統(tǒng)處理的客戶端請(qǐng)求的數(shù)量 v計(jì)算單位:一般使用請(qǐng)求數(shù)秒做為吞吐量的單位,出可以使用 頁面數(shù)秒表表示。 另外,從業(yè)務(wù)角度來說也可以使用 訪問人數(shù) /天 或 頁面訪問量天 做為單位。 v計(jì)算方法:Throughput
10、= (number of requests) / (total time). v吞吐量-負(fù)載對(duì)應(yīng)關(guān)系: 圖圖中拐點(diǎn)說明:中拐點(diǎn)說明: v吞吐量逐漸達(dá)到飽和 v意味著系統(tǒng)的一種或多種資源利用達(dá)到的極限 v通??梢岳霉拯c(diǎn)來進(jìn)行性能測(cè)試分析與定位 性能測(cè)試基本概念性能測(cè)試基本概念 3、并發(fā)數(shù)、并發(fā)數(shù): v 并發(fā)并發(fā)用戶數(shù)用戶數(shù):某一物理時(shí)刻同時(shí)向系統(tǒng)提交請(qǐng)求的用戶數(shù),提交的請(qǐng) 求可能是同一個(gè)場(chǎng)景或功能,也可以是不同場(chǎng)景或功能。 v 在線在線用戶數(shù)用戶數(shù):某段時(shí)間內(nèi)訪問系統(tǒng)的用戶數(shù),這些用戶并不一定同時(shí) 向系統(tǒng)提交請(qǐng)求 v 系統(tǒng)系統(tǒng)用戶數(shù)用戶數(shù):系統(tǒng)注冊(cè)的總用戶數(shù)據(jù) 三三者之間的關(guān)系:者之間的關(guān)系:
11、系統(tǒng)用戶數(shù) = 在線用戶數(shù) = 并發(fā)用戶數(shù) 性能測(cè)試基本概念性能測(cè)試基本概念 4、資源利用率、資源利用率 v定義:指的是對(duì)不同系統(tǒng)資源的使用程度,通常以占用最大值的百分比來衡量 v通常需要關(guān)注的服務(wù)器資源如下: n CPU:就像人的大腦,主要負(fù)責(zé)相關(guān)事情的判斷以及實(shí)際處理的機(jī)制 n 內(nèi)存:大腦中的記憶塊區(qū),將眼睛,皮膚等收集到的信息記錄起來的地方,以供cpu 進(jìn)行判斷,但是是臨時(shí)的,訪問速度快,如果關(guān)機(jī)或斷電這里的數(shù)據(jù)會(huì)消失。 n 磁盤IO:大腦中的記憶區(qū)塊,將重要的數(shù)據(jù)保存起來(永久保存,關(guān)機(jī)或斷電不會(huì) 丟失,速度慢),以便將來再次使用這些數(shù)據(jù)。 n 網(wǎng)絡(luò): v資源利用-負(fù)載對(duì)應(yīng)關(guān)系: v圖
12、中拐點(diǎn)說明: n 服務(wù)器某薦資源使用逐漸達(dá)到飽和 n 通??梢岳霉拯c(diǎn)來進(jìn)行性能測(cè)試分析與定位 性能測(cè)試基本概念性能測(cè)試基本概念 5、其它常用概念:、其它常用概念: vTPS:Transactions Per Second,每秒事務(wù)數(shù) v思考思考時(shí)間:時(shí)間:用戶每個(gè)操作后的暫停時(shí)間,或者叫操作之間的間隔時(shí)間,此時(shí)間內(nèi)是不對(duì)服務(wù)器產(chǎn)生 壓力的 v點(diǎn)擊點(diǎn)擊數(shù)數(shù):每秒鐘用戶向WEB服務(wù)器提交的HTTP請(qǐng)求數(shù)。這個(gè)指標(biāo)是WEB應(yīng)用特有的一個(gè)指標(biāo):WEB 應(yīng)用是請(qǐng)求-響應(yīng)模式,用戶發(fā)出一次申請(qǐng),服務(wù)器就要處理一次,所以點(diǎn)擊是WEB應(yīng)用能夠處理的 交易的最小單位。如果把每次點(diǎn)擊定義為一個(gè)交易,點(diǎn)擊率和TP
13、S就是一個(gè)概念。容易看出,點(diǎn)擊 率越大,對(duì)服務(wù)器的壓力越大。點(diǎn)擊率只是一個(gè)性能參考指標(biāo),重要的是分析點(diǎn)擊時(shí)產(chǎn)生的影響。 需要注意的是,這里的點(diǎn)擊并非指鼠標(biāo)的一次單擊操作,因?yàn)樵谝淮螁螕舨僮髦?,客戶端可能向?務(wù)器發(fā)出多個(gè)HTTP請(qǐng)求. vPV:訪問一個(gè)URL,產(chǎn)生一個(gè)PV(Page View,頁面訪問量),每日每個(gè)網(wǎng)站的總PV量是形容一個(gè) 網(wǎng)站規(guī)模的重要指標(biāo)。 vUV:作為一個(gè)獨(dú)立的用戶,訪問站點(diǎn)的所有頁面均算作一個(gè)UV(Unique Visitor,用戶訪問) 性能測(cè)試基本概念性能測(cè)試基本概念 v 掌握一門編程語言 v 掌握計(jì)算機(jī)原理和操作系統(tǒng)知識(shí) v 良好的網(wǎng)絡(luò)基礎(chǔ) v 掌握數(shù)據(jù)庫知識(shí) v
14、 中間件(apache,tomcat) v 常用抓包工具 v 性能測(cè)試工具 做好性能做好性能測(cè)試需要測(cè)試需要掌握的知識(shí)掌握的知識(shí) 基礎(chǔ)理論 測(cè)試流程測(cè)試流程 工具選型 LoadRunner使用 實(shí)例 測(cè)試測(cè)試流程流程 需求分析需求分析 報(bào)告報(bào)告 與總結(jié)與總結(jié) 結(jié)果分析結(jié)果分析 與與 調(diào)優(yōu)調(diào)優(yōu) 測(cè)試執(zhí)行測(cè)試執(zhí)行 測(cè)試準(zhǔn)備測(cè)試準(zhǔn)備 項(xiàng)目項(xiàng)目 性能需求分析是整個(gè)性能測(cè)試工作開展的基礎(chǔ),如果連性能的需求都沒弄清楚,后面的 性能測(cè)試執(zhí)行其實(shí)是沒有任何意義的,而且性能需求分析做的好不好直接影響到性能測(cè)試的 結(jié)果。 一些性能測(cè)試人員常犯的錯(cuò)誤就是測(cè)試一開始就直接用工具對(duì)系統(tǒng)進(jìn)行加壓,沒有弄清 楚性能測(cè)試的目
15、的,稀里糊涂做完了以后也不知道結(jié)果是否滿足性能需求。市面上的書籍也 大都是直接講性能測(cè)試工具如LR,jmeter如何使用,導(dǎo)致很多新手一提到性能測(cè)試就直接 拿工具來進(jìn)行錄制回放,使得很多人認(rèn)為會(huì)使用性能測(cè)試工具就等于會(huì)性能測(cè)試了,殊不知 工具其實(shí)只是性能測(cè)試過程中很小的一部分。 在需求分析階段,測(cè)試人員需要與項(xiàng)目相關(guān)的人員進(jìn)行溝通,收集各種項(xiàng)目資料,對(duì) 系統(tǒng)進(jìn)行分析,建立性能測(cè)試數(shù)據(jù)模型,并將其轉(zhuǎn)化為可衡量的具體性能指標(biāo),確認(rèn)測(cè)試的 目標(biāo)。所以性能測(cè)試需求分析過程是繁雜的,需要測(cè)試人員有深厚的性能理論知識(shí),除此之 外還需要懂一些數(shù)學(xué)建模的知識(shí)來幫助我們建立性能測(cè)試模型。 一、性能需求一、性能需
16、求分析分析 v明確倒底要不要做性能測(cè)試?性能測(cè)試的目的是什么? v明確被測(cè)系統(tǒng)是什么?被測(cè)試系統(tǒng)的相關(guān)技術(shù)信息如:架構(gòu)、平臺(tái)、協(xié)議等 v明確被測(cè)系統(tǒng)的基本業(yè)務(wù)、關(guān)鍵業(yè)務(wù),用戶行為 v明確性能測(cè)試點(diǎn)是什么?哪些需要測(cè),為什么?哪些不需要測(cè),又是為什么? v明確被測(cè)系統(tǒng)未來的業(yè)務(wù)拓展規(guī)劃以及性能需求? v明確性能測(cè)試策略,即應(yīng)該怎么測(cè)試? v明確性能測(cè)試的指標(biāo),知道測(cè)試出來的結(jié)果怎么算通過? 性能需求分析需要得出的結(jié)論或目標(biāo)性能需求分析需要得出的結(jié)論或目標(biāo) 1、系統(tǒng)信息調(diào)研、系統(tǒng)信息調(diào)研 指對(duì)被測(cè)試系統(tǒng)進(jìn)行分析,需要 對(duì)其有全面的了解和認(rèn)識(shí),這是我們 做好性能測(cè)試的前提,而且在后續(xù)進(jìn) 行性能分析和
17、調(diào)優(yōu)時(shí)將會(huì)大有用處, 試想如果連系統(tǒng)的架構(gòu)、協(xié)議都不了 解,我們?nèi)绾芜M(jìn)行準(zhǔn)確的性能測(cè)試? 如果進(jìn)行性能分析與調(diào)優(yōu)? 需要分析的系統(tǒng)信息如下(包括但不 僅限于如下這些): 性能需求分析的切入點(diǎn)性能需求分析的切入點(diǎn) 2、業(yè)務(wù)信息、業(yè)務(wù)信息調(diào)研調(diào)研 指對(duì)被測(cè)試的業(yè)務(wù)進(jìn)行分析,通過對(duì)業(yè)務(wù)的分析和了解,方便我們后續(xù)進(jìn)行性能測(cè)試場(chǎng) 景的確定以及性能測(cè)試指標(biāo)的確定。 需要分析的業(yè)務(wù)信息如下(包括但不僅限于如下這些): 性能需求分析的切入點(diǎn)性能需求分析的切入點(diǎn) 3、性能需求性能需求評(píng)估評(píng)估 在實(shí)施性能測(cè)試之前,我們需要對(duì)被測(cè)系統(tǒng)做相應(yīng)的評(píng)估,主要目的是明確是否需要做 性能測(cè)試。如果確定需要做性能測(cè)試,需要進(jìn)一
18、步確立性能測(cè)試點(diǎn)和指標(biāo),明確該測(cè)什么、 性能指標(biāo)是多少,測(cè)試通過or不通過的標(biāo)準(zhǔn)?性能指標(biāo)也會(huì)根據(jù)情況評(píng)估,要求被測(cè)系統(tǒng)能 滿足將來一定時(shí)間段的業(yè)務(wù)壓力。 判斷是否進(jìn)行性能測(cè)試主要從下面兩個(gè)方面進(jìn)行思考: v業(yè)務(wù)角度業(yè)務(wù)角度 系統(tǒng)是公司內(nèi)部 or 對(duì)外?系統(tǒng)使用的人數(shù)的多少?如果一個(gè)系統(tǒng)上線后基本沒幾個(gè)人使 用,無論系統(tǒng)多大,設(shè)計(jì)多么復(fù)雜,并發(fā)性的性能測(cè)試都是沒必要的,前期可以否決。當(dāng)然, 除非在功能測(cè)試階段發(fā)現(xiàn)非常明顯的性能問題,使得用戶體驗(yàn)較差的,此時(shí)可進(jìn)行性能測(cè)試 來排查問題。 性能需求分析的切入點(diǎn)性能需求分析的切入點(diǎn) v系統(tǒng)角度:系統(tǒng)角度:系統(tǒng)又可以從以下3個(gè)方面進(jìn)行分析 n系統(tǒng)架構(gòu):
19、 如果一個(gè)系統(tǒng)采用的框架是老的系統(tǒng)框架(通常大公司都有自己的統(tǒng)一框架),只是在此框架上增 加一些應(yīng)用,其實(shí)是沒有必要做性能測(cè)試,因?yàn)槔峡蚣艿氖褂每隙ㄊ墙?jīng)過了驗(yàn)證的。如果一個(gè)系統(tǒng)采用的 是一種新的框架,可以考慮做性能測(cè)試。 n數(shù)據(jù)庫要求 很多情況下,性能測(cè)試是大數(shù)據(jù)量的并發(fā)訪問、修改數(shù)據(jù)庫,而瓶頸在于連接數(shù)據(jù)庫池的數(shù)量,而非 數(shù)據(jù)庫本身的負(fù)載、吞吐能力。這時(shí),可以結(jié)合DBA的建議,來決定是否來做性能測(cè)試。 n系統(tǒng)特殊要求 p 從實(shí)時(shí)性角度來分析,某些系統(tǒng)對(duì)響應(yīng)時(shí)間要求比較高,比如證券系統(tǒng),系統(tǒng)的快慢直接影響客戶 的收益,這種情況就有作并發(fā)測(cè)試的必要,在大并發(fā)量的場(chǎng)景下,查看這個(gè)功能的響應(yīng)時(shí)間。
20、p 從大數(shù)據(jù)量上傳下載角度分析,某些系統(tǒng)經(jīng)常需要進(jìn)行較大數(shù)據(jù)量的上傳和下載操作,雖然此種操 作使用的人數(shù)不會(huì)太多,但是也有必要進(jìn)行性能測(cè)試,確定系統(tǒng)能處理的最大容量,如果超過這個(gè)容 量時(shí)系統(tǒng)需要進(jìn)行相關(guān)控制,避免由于不人工誤操作導(dǎo)致系統(tǒng)內(nèi)存溢出或崩潰。 性能需求分析的切入點(diǎn)性能需求分析的切入點(diǎn) 4、確定性能測(cè)試確定性能測(cè)試點(diǎn)點(diǎn) 在上面第3點(diǎn)中,我們簡(jiǎn)單分析了如何確定一個(gè)系統(tǒng)是否需要做性能測(cè)試。下 面簡(jiǎn)單總結(jié)下如果一個(gè)系統(tǒng)確定要做性能測(cè)試,我們?nèi)绾未_定被測(cè)系統(tǒng)的性能測(cè) 試點(diǎn)? 我們可以從下面幾個(gè)方面進(jìn)行分析: 性能需求分析的切入點(diǎn)性能需求分析的切入點(diǎn) v關(guān)鍵業(yè)務(wù)關(guān)鍵業(yè)務(wù):確定被測(cè)項(xiàng)目是否屬于關(guān)鍵
21、業(yè)務(wù),有哪些主要的業(yè)務(wù)邏輯點(diǎn),特別是跟交易相關(guān)的功能點(diǎn)。 例如轉(zhuǎn)賬,扣款等接口。如果項(xiàng)目(或功能點(diǎn))不屬于關(guān)鍵業(yè)務(wù)(或關(guān)鍵業(yè)務(wù)點(diǎn)),則可轉(zhuǎn)入下面。 v日請(qǐng)求量日請(qǐng)求量:確定被測(cè)項(xiàng)目各功能點(diǎn)的日請(qǐng)求量(可以統(tǒng)計(jì)不同時(shí)間粒度下的請(qǐng)求量如:小時(shí),日,周, 月)。如果日請(qǐng)求量很高,系統(tǒng)壓力很大,而且又是關(guān)鍵業(yè)務(wù),該項(xiàng)目需要做性能測(cè)試,而且關(guān)鍵業(yè) 務(wù)點(diǎn),可以被確定為性能點(diǎn)。 v邏輯復(fù)雜度邏輯復(fù)雜度:判定被測(cè)項(xiàng)目各功能點(diǎn)的邏輯復(fù)雜度。如果一個(gè)主要業(yè)務(wù)的日請(qǐng)求量不高,但是邏輯很 復(fù)雜,則也需要通過性能測(cè)試。原因是,在分布式方式的調(diào)用中,當(dāng)某一個(gè)環(huán)節(jié)響應(yīng)較慢,就會(huì)影響 到其它環(huán)節(jié),造成雪崩效應(yīng)。 v運(yùn)營(yíng)推廣活
22、動(dòng)運(yùn)營(yíng)推廣活動(dòng):根據(jù)運(yùn)營(yíng)的推廣計(jì)劃來判定待測(cè)系統(tǒng)未來的壓力。未雨綢繆、防患于未然、降低運(yùn)營(yíng) 風(fēng)險(xiǎn)是性能測(cè)試的主要目標(biāo)。被測(cè)系統(tǒng)的性能不僅能滿足當(dāng)前壓力,更需要滿足未來一定時(shí)間段內(nèi)的 壓力。因此,事先了解運(yùn)營(yíng)推廣計(jì)劃,對(duì)性能點(diǎn)的制定有很大的作用。例如,運(yùn)營(yíng)計(jì)劃做活動(dòng),要求 系統(tǒng)每天能支撐多少 PV、多少 UV,或者一個(gè)季度后,需要能支撐多大的訪問量等等數(shù)據(jù)。當(dāng)新項(xiàng) 目(或功能點(diǎn))屬于運(yùn)營(yíng)重點(diǎn)推廣計(jì)劃范疇之內(nèi),則該項(xiàng)目(或功能點(diǎn))也需要做性能測(cè)試。 以上 4 點(diǎn),是相輔相成、環(huán)環(huán)相扣的。在實(shí)際工作中應(yīng)該具體問題具體分析。例如,當(dāng)一個(gè)功能點(diǎn)不 滿足以上 4 點(diǎn),但又屬于資源高消耗(內(nèi)存、CPU),也
23、可列入性能測(cè)試點(diǎn)行列。 性能需求分析的切入點(diǎn)性能需求分析的切入點(diǎn) 5、確定確定性能指標(biāo)性能指標(biāo) 性能需求分析一個(gè)很重要的目標(biāo)就是需要確定后期性能分析用的性能指標(biāo),性 能指標(biāo)有很多,可以根據(jù)具體項(xiàng)目選取和設(shè)定,而具體的指標(biāo)值則需要根據(jù)業(yè)務(wù) 特點(diǎn)進(jìn)行設(shè)定,比如響應(yīng)時(shí)間、TPS、吞吐量、系統(tǒng)資源消耗等。 性能需求分析的切入點(diǎn)性能需求分析的切入點(diǎn) 1、測(cè)試環(huán)境準(zhǔn)備:、測(cè)試環(huán)境準(zhǔn)備: n 系統(tǒng)運(yùn)行環(huán)境:這個(gè)通常就是我們的測(cè)試環(huán)境,有些時(shí)候需求比較多,做性能測(cè)試擔(dān)心 把環(huán)境搞跨了影響其它的功能測(cè)試,可能需要重新搭建一套專門用來做性能測(cè)試的環(huán)境。 n 執(zhí)行機(jī)環(huán)境:這個(gè)就是用來生成負(fù)載的執(zhí)行機(jī),通常需要在物理
24、機(jī)上運(yùn)行,而物理機(jī)又 是稀缺資源,所以我們每次做性能測(cè)試都需要提前準(zhǔn)備好執(zhí)行機(jī)環(huán)境。 二、性能測(cè)試準(zhǔn)備二、性能測(cè)試準(zhǔn)備 2、測(cè)試場(chǎng)景設(shè)計(jì)、測(cè)試場(chǎng)景設(shè)計(jì): 根據(jù)性能需求分析來設(shè)計(jì)符合用戶使用習(xí)慣的場(chǎng)景,場(chǎng)景設(shè)計(jì)的好不好直接影響到性能 測(cè)試的效果。 二、性能測(cè)試準(zhǔn)備二、性能測(cè)試準(zhǔn)備 3、性能工具準(zhǔn)備:、性能工具準(zhǔn)備: n負(fù)載工具:根據(jù)需求分析和系統(tǒng)特點(diǎn)選擇合適的負(fù)載工具,比如LR、Jmeter等 n監(jiān)控工具:準(zhǔn)備性能測(cè)試時(shí)的服務(wù)器資源、JVM、數(shù)據(jù)庫監(jiān)控工具,以便進(jìn)行后續(xù)的性 能測(cè)試分析與調(diào)優(yōu)。 二、性能測(cè)試準(zhǔn)備二、性能測(cè)試準(zhǔn)備 4、測(cè)試腳本準(zhǔn)備、測(cè)試腳本準(zhǔn)備: 如果性能測(cè)試工具不能滿足被測(cè)系統(tǒng)的
25、要求或只能滿足部分要求時(shí),需要我們自己開發(fā) 腳本配合工具進(jìn)行性能測(cè)試。 二、性能測(cè)試準(zhǔn)備二、性能測(cè)試準(zhǔn)備 5、測(cè)試數(shù)據(jù)準(zhǔn)備:、測(cè)試數(shù)據(jù)準(zhǔn)備: n負(fù)載測(cè)試數(shù)據(jù):并發(fā)測(cè)試時(shí)需要多少數(shù)據(jù)?比如登錄場(chǎng)景? nDB數(shù)據(jù)量大?。簽榱吮M量符合生產(chǎn)場(chǎng)景,需要模擬線上大量數(shù)據(jù)情況,那么要往數(shù)據(jù) 庫里提前插入一定的數(shù)據(jù)量。這可能需要花費(fèi)一些時(shí)間,特點(diǎn)是關(guān)聯(lián)系統(tǒng)較多,邏輯復(fù) 雜的業(yè)務(wù)可能同時(shí)涉及多張表。 6、其它、其它: 如果需要其它其它關(guān)聯(lián)系統(tǒng)或?qū)I(yè)人士如DBA配合的,也需要提前進(jìn)行溝通。 二、性能測(cè)試準(zhǔn)備二、性能測(cè)試準(zhǔn)備 1、人工邊執(zhí)行邊分析: 通常我們做性能測(cè)試都是人工執(zhí)行并隨時(shí)觀察系統(tǒng)運(yùn)行的情況、資源的使用
26、率等指標(biāo)。 性能測(cè)試的吸引力之一就在于它的不可預(yù)知性。當(dāng)我們?cè)谧鲂阅軠y(cè)試的時(shí)候遇到跟預(yù)期不符 的情況很正常,這個(gè)時(shí)候需要冷靜的分析。但這個(gè)過程可能會(huì)很慢長(zhǎng),需要不斷的調(diào)整系統(tǒng) 配置或程序代碼來定位問題,耗時(shí)耗人力。特別是在當(dāng)前敏捷開發(fā)模式比較流行的大環(huán)境下, 版本發(fā)布非常頻繁且版本周期短(通常12周一個(gè)版本),沒有那么長(zhǎng)的時(shí)間來做性能測(cè)試。 2、無人值守執(zhí)行性能測(cè)試 無人值守是最理想化的目標(biāo),目前我們也朝著這個(gè)方向努力。無人值守不是說沒有人力 介入,而是把人為的分析和執(zhí)行過程分離,執(zhí)行過程只是機(jī)器服從指令的運(yùn)行而已。通常測(cè) 試環(huán)境在白天比較繁忙,出現(xiàn)性能問題及定位難度較大且會(huì)影響功能測(cè)試。所以
27、一般性能測(cè) 試最好在晚上或周末進(jìn)行,在相對(duì)較安靜的條件有利于測(cè)試結(jié)果的穩(wěn)定性。這種方法也相對(duì) 比較適合敏捷的模式,不需要人工一直守著。只需要在拿到結(jié)果后進(jìn)行分析就好了。同進(jìn), 這種方式對(duì)測(cè)試人員能力的要求比較高,需要我們能進(jìn)行自動(dòng)化的收集各種監(jiān)控?cái)?shù)據(jù)、生成 報(bào)表便于后續(xù)分析。 三三、性能測(cè)試執(zhí)行、性能測(cè)試執(zhí)行 關(guān)于性能分析與調(diào)優(yōu)是一個(gè)比較大的話題,后續(xù)會(huì)單獨(dú)進(jìn)行總結(jié)和分析。 三三、結(jié)果分析和調(diào)優(yōu)、結(jié)果分析和調(diào)優(yōu) 性能測(cè)試報(bào)告是性能測(cè)試的里程碑,通過報(bào)告能展示出性能測(cè)試的最終成果,展示系統(tǒng) 性能是否符合需求,是否有性能隱患。性能測(cè)試報(bào)告中需要闡明性能測(cè)試目標(biāo)、性能測(cè)試環(huán) 境、性能測(cè)試數(shù)據(jù)構(gòu)造規(guī)則
28、、性能測(cè)試策略、性能測(cè)試結(jié)果、性能測(cè)試調(diào)優(yōu)說明、性能測(cè)試 過程中遇到的問題和解決辦法等。 性能測(cè)試工程師完成該次性能測(cè)試后,需要將測(cè)試結(jié)果進(jìn)行備案,并做為下次性能測(cè)試 的基線標(biāo)準(zhǔn),具體包括性能測(cè)試結(jié)果數(shù)據(jù)、性能測(cè)試瓶頸和調(diào)優(yōu)方案等。同時(shí)需要將測(cè)試過 程中遇到的問題,包括代碼瓶頸、配置項(xiàng)問題、數(shù)據(jù)問題和溝通問題,以及解決辦法或解決 方案,進(jìn)行知識(shí)沉淀。 五五、測(cè)試報(bào)告與總結(jié)、測(cè)試報(bào)告與總結(jié) 常用性能測(cè)試工具常用性能測(cè)試工具 LoadRunnerLoadRunner使用使用 實(shí)例實(shí)例 接下來以積分商城抽獎(jiǎng)、全積分兌換操作實(shí)例進(jìn)行講解。 性能性能測(cè)試應(yīng)用場(chǎng)景(領(lǐng)域)測(cè)試應(yīng)用場(chǎng)景(領(lǐng)域) 主要用途主要
29、用途典型場(chǎng)景典型場(chǎng)景 特點(diǎn)特點(diǎn) 常用性能常用性能 測(cè)試方法測(cè)試方法 能力驗(yàn)證關(guān)注在給定的軟硬件 條件下,系統(tǒng)能否具 有預(yù)期的能力表現(xiàn) 在要求平均響應(yīng)時(shí)間 小于2秒的前提下,如 何判斷系統(tǒng)是否能夠 支持50萬用戶/天的訪 問量? a)要求在已確定的環(huán) 境下運(yùn)行 b)需要根據(jù)典型場(chǎng)景 設(shè)計(jì)測(cè)試方案和用例, 包括操作序列和并發(fā) 用戶量,需要明確的 性能目標(biāo)。 a)負(fù)載測(cè)試 b)壓力測(cè)試 c)穩(wěn)定性能測(cè)試 規(guī)劃能力關(guān)注如何使系統(tǒng)具有 我們要求的性能能力 某某系統(tǒng)計(jì)劃在一年 內(nèi)獲客量在到xxx萬, 系統(tǒng)到時(shí)候是否能支 持這么多用戶量?如 果不能需要如何調(diào)整 系統(tǒng)的配置? a) 它是一種探索性的 測(cè)試 b
30、) 常用于了解系統(tǒng)性 能和獲得擴(kuò)展性能的 方法 a) 負(fù)載測(cè)試 b) 壓力測(cè)試 c) 配置測(cè)試 性能調(diào)優(yōu) 主要用于對(duì)系統(tǒng)性能 進(jìn)行調(diào)優(yōu) 某某系統(tǒng)上線運(yùn)行一 段時(shí)間后響應(yīng)速度越 來越慢,此時(shí)應(yīng)該如 何辦? 每次只改變一個(gè)配置, 切忌無 休止的調(diào)優(yōu) a) 并發(fā)測(cè)試 b) 壓力測(cè)試 c) 配置測(cè)試 缺陷發(fā)現(xiàn) 發(fā)現(xiàn)缺陷或問題重現(xiàn)、 定位手段 某些缺陷只有在高負(fù) 載的情況下才能暴露 出來,如線程鎖、資 源競(jìng)爭(zhēng)或內(nèi)存泄露。 做為系統(tǒng)測(cè)試的補(bǔ)充, 用來發(fā)現(xiàn)并發(fā)問題, 或是對(duì)系統(tǒng)已經(jīng)出現(xiàn) 的問題進(jìn)行重現(xiàn)和定 位 a) 并發(fā)測(cè)試 b) 壓力測(cè)試 性能基準(zhǔn)比較常用于敏捷開發(fā)過程中,敏捷開發(fā)流程的特點(diǎn)是小步快走,快速試錯(cuò),迭代周期短,需求變化頻繁。 很難定義完善的性能測(cè)試目標(biāo),也沒有時(shí)間在每個(gè)迭代開展詳細(xì)的性能測(cè)試,可以通過
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- GB/T 30137-2024電能質(zhì)量電壓暫升、電壓暫降與短時(shí)中斷
- 2024版泥水作業(yè)班組承包協(xié)議書
- 二零二五年度股權(quán)收益權(quán)轉(zhuǎn)讓合同范本與收益分配3篇
- 二零二五年航空航天零部件制造合同協(xié)議模板2025版3篇
- 二零二五年金融產(chǎn)品居間服務(wù)協(xié)議范本3篇
- 二零二五年度智能化設(shè)備技術(shù)入股合作協(xié)議范本3篇
- GRC材質(zhì)2024裝飾構(gòu)件定制合作協(xié)議版B版
- 二零二五版汽車租賃轉(zhuǎn)讓與保險(xiǎn)責(zé)任合同2篇
- 2024混凝土施工勞務(wù)分包合同
- 2024年跨區(qū)域生態(tài)環(huán)境保護(hù)合作協(xié)議
- HG-T+21527-2014回轉(zhuǎn)拱蓋快開人孔
- JTS-167-2-2009重力式碼頭設(shè)計(jì)與施工規(guī)范
- DBJ-T15-81-2022 建筑混凝土結(jié)構(gòu)耐火設(shè)計(jì)技術(shù)規(guī)程
- GB/T 22849-2024針織T恤衫
- 山東省淄博市2023-2024學(xué)年高二上學(xué)期教學(xué)質(zhì)量檢測(cè)化學(xué)試題
- 人工智能在電影與影視制作中的創(chuàng)新與效果提升
- 新生兒腸絞痛的課件
- 酒店民宿自媒體營(yíng)銷策劃
- 消除母嬰傳播培訓(xùn)課件
- 包裝過程質(zhì)量控制
- 通用電子嘉賓禮薄
評(píng)論
0/150
提交評(píng)論