一般來說榕莺,衡量軟件性能的三個(gè)最常用的指標(biāo)是:并發(fā)用戶數(shù)盗尸、響應(yīng)時(shí)間,以及系統(tǒng)吞吐量帽撑。
一、并發(fā)用戶數(shù)鞍时、響應(yīng)時(shí)間亏拉、系統(tǒng)吞吐量之間的關(guān)系和約束:
(1)當(dāng)系統(tǒng)并發(fā)用戶數(shù)較少時(shí),系統(tǒng)吞吐量也低逆巍,系統(tǒng)處于空閑狀態(tài)及塘,這個(gè)階段稱為:空閑區(qū)間
(2)當(dāng)系統(tǒng)的負(fù)載不是很大時(shí),隨著系統(tǒng)的并發(fā)用戶數(shù)量的增長锐极,系統(tǒng)的吞吐量也會(huì)隨之呈線性增長笙僚,這個(gè)階段稱為:線性增長區(qū)間
(3)當(dāng)系統(tǒng)的并發(fā)用戶數(shù)進(jìn)一步增長,系統(tǒng)的處理能力逐漸趨于飽和灵再,因此每個(gè)用戶的響應(yīng)時(shí)間變長肋层。但是系統(tǒng)整體的吞吐量并不會(huì)隨著并發(fā)用戶數(shù)量的增長而繼續(xù)呈線性增長,這個(gè)階段稱為:拐點(diǎn)
(4)當(dāng)系統(tǒng)并發(fā)用戶數(shù)繼續(xù)增長翎迁,系統(tǒng)處理能力達(dá)到過飽和狀態(tài)栋猖。此時(shí)如果繼續(xù)增加并發(fā)用戶數(shù),最終所有的用戶的響應(yīng)時(shí)間會(huì)變得無限長汪榔。系統(tǒng)的整體吞吐量會(huì)降為零蒲拉,系統(tǒng)處于被壓垮的狀態(tài)。這個(gè)階段稱為:過飽和區(qū)間
二、常用的性能測試方法
(1)后端性能測試:是通過性能測試工具模擬大量的并發(fā)用戶請求雌团,然后獲取系統(tǒng)性能的各項(xiàng)指標(biāo)燃领,并且驗(yàn)證各項(xiàng)指標(biāo)是否符合預(yù)期的性能需求。
這里的性能指標(biāo)锦援,除了包括并發(fā)用戶數(shù)猛蔽、響應(yīng)時(shí)間和系統(tǒng)吞吐量外,還應(yīng)該包括各類資源的使用率雨涛,比如系統(tǒng)級別的 CPU 占用率枢舶、內(nèi)存使用率、磁盤 I/O 和網(wǎng)絡(luò) I/O 等替久,再比如應(yīng)用級別以及 JVM 級別的各類資源使用率指標(biāo)等凉泄。
我們一般只會(huì)把它設(shè)計(jì)在“線性增長區(qū)間”內(nèi)。
場景設(shè)計(jì)主要包括以下兩種方式:1、基于性能需求目標(biāo)的測試驗(yàn)證;2嘹悼、探索系統(tǒng)的容量狞换,并驗(yàn)證系統(tǒng)容量的可擴(kuò)展性
(2)壓力測試:一般采用后端性能測試的方法,不斷對系統(tǒng)施加壓力圆丹,并驗(yàn)證系統(tǒng)化處于或長期處于臨界飽和階段的穩(wěn)定性以及性能指標(biāo),并試圖找到系統(tǒng)處于臨界狀態(tài)時(shí)的主要瓶頸點(diǎn)。所以右锨,壓力測試往往被用于系統(tǒng)容量規(guī)劃的測試。
在執(zhí)行壓力測試時(shí)碌秸,我們還會(huì)故意在臨界飽和狀態(tài)的基礎(chǔ)上繼續(xù)施加壓力绍移,直至系統(tǒng)完全癱瘓,觀察這個(gè)期間系統(tǒng)的行為讥电;然后蹂窖,逐漸減小壓力,觀察癱瘓的系統(tǒng)是否可以自愈恩敌。
因此瞬测,我們將它設(shè)計(jì)在系統(tǒng)“拐點(diǎn)”上下,甚至是“過飽和區(qū)間”纠炮。
(3)可靠性測試:是驗(yàn)證系統(tǒng)在常規(guī)負(fù)載模式下長期運(yùn)行的穩(wěn)定性月趟。是通過長時(shí)間模擬真實(shí)的系統(tǒng)負(fù)載來發(fā)現(xiàn)系統(tǒng)潛在的內(nèi)存泄漏、鏈接池回收等問題恢口。
三狮斗、性能測試的目的
(1)能力驗(yàn)證:驗(yàn)證“某系統(tǒng)能否在 A 條件下具有 B 能力”,通常要求在明確的軟硬件環(huán)境下弧蝇,根據(jù)明確的系統(tǒng)性能需求設(shè)計(jì)測試方案和用例碳褒。
(2)能力規(guī)劃:如何才能使系統(tǒng)達(dá)到要求的性能和容量折砸。
(3)性能調(diào)優(yōu):主要解決性能測試過程中發(fā)現(xiàn)的性能瓶頸的問題,通常會(huì)涉及多個(gè)層面的調(diào)整沙峻,包括硬件設(shè)備選型睦授、操作系統(tǒng)配置、應(yīng)用系統(tǒng)配置摔寨、數(shù)據(jù)庫配置和應(yīng)用代碼實(shí)現(xiàn)的優(yōu)化等等
(4)缺陷發(fā)現(xiàn)