中文字幕一级黄色A级片|免费特级毛片。性欧美日本|偷拍亚洲欧美1级片|成人黄色中文小说网|A级片视频在线观看|老司机网址在线观看|免费一级无码激情黄所|欧美三级片区精品网站999|日韩av超碰日本青青草成人|一区二区亚洲AV婷婷

您當(dāng)前的位置:檢測資訊 > 科研開發(fā)

軟件性能測試?yán)碚摲治鲅芯?/strong>

嘉峪檢測網(wǎng)        2022-07-06 23:31

通過軟件性能測試可以測算出當(dāng)前系統(tǒng)可以承載的負(fù)荷,保證系統(tǒng)在實(shí)際的壓力下正常工作。本文主要闡述了軟件性能測試的分類和衡量指標(biāo),并提出了分析和調(diào)優(yōu)的方法,最后羅列了一些常見的性能瓶頸和產(chǎn)生原因。

 

一、軟件性能測試的分類

 

軟件性能測試是系統(tǒng)測試的一種,在軟件質(zhì)量模型中,軟件性能測試是屬于效率這一類的。對(duì)軟件的性能進(jìn)行衡量,需要考慮軟件效率的時(shí)間特性、資源利用率及效率依從性。

 

時(shí)間特性是指在特定的軟硬件條件下,軟件產(chǎn)品在運(yùn)行功能時(shí)需要滿足的系統(tǒng)響應(yīng)時(shí)間及吞吐率能力。

 

資源利用率是指軟件產(chǎn)品在執(zhí)行功能時(shí)需要滿足合適的數(shù)量和類別的軟硬件資源的能力。

 

效率依從性是指軟件產(chǎn)品遵循與效率相關(guān)的標(biāo)準(zhǔn)或約定的能力。

 

軟件性能測試的目的是驗(yàn)證軟件系統(tǒng)的各種性能指標(biāo)是否滿足用戶需求及根據(jù)測試結(jié)果對(duì)系統(tǒng)中可能存在的性能瓶頸進(jìn)行分析和優(yōu)化。主要包括以下幾個(gè)方面:

 

1、對(duì)系統(tǒng)的負(fù)載能力進(jìn)行評(píng)估。根據(jù)測試數(shù)據(jù),可以對(duì)系統(tǒng)的內(nèi)存、進(jìn)程、磁盤、網(wǎng)絡(luò)等負(fù)載能力進(jìn)行評(píng)估,并根據(jù)評(píng)估結(jié)果分析定位性能瓶頸,為性能的優(yōu)化提供決策依據(jù)。

 

2、識(shí)別系統(tǒng)弱點(diǎn)。大量的負(fù)載可以評(píng)估系統(tǒng)在極端情況下的性能狀況,找到系統(tǒng)的薄弱點(diǎn)并進(jìn)行修復(fù)。

 

3、系統(tǒng)調(diào)優(yōu)。通過反復(fù)運(yùn)行測試,對(duì)系統(tǒng)性能優(yōu)化后的結(jié)果進(jìn)行驗(yàn)證,檢查其是否達(dá)到了預(yù)期的結(jié)果。同時(shí),長時(shí)間運(yùn)行測試,可能會(huì)導(dǎo)致內(nèi)存泄漏、系統(tǒng)崩潰等問題的發(fā)生,揭示程序中隱含的問題或沖突。

 

4、驗(yàn)證系統(tǒng)的可靠性、穩(wěn)定性。在特定的負(fù)載情況下,長時(shí)間運(yùn)行測試可以對(duì)系統(tǒng)的可靠性和穩(wěn)定性進(jìn)行驗(yàn)證。

 

對(duì)一個(gè)軟件系統(tǒng)而言,性能主要包括軟件的資源占用率,系統(tǒng)的穩(wěn)定性、可靠性等。本文中提到的軟件性能測試主要是通過自動(dòng)化測試工具Performance Center模擬測試業(yè)務(wù)時(shí)正常、異常及峰值負(fù)載條件來對(duì)比模塊的各項(xiàng)性能指標(biāo)進(jìn)行測試。

 

軟件性能測試的方法很多,本文主要介紹以下4種類別的測試。

 

1、負(fù)載測試(Load Testing)。指在不同的軟硬件及網(wǎng)絡(luò)環(huán)境下,運(yùn)行一種或多種業(yè)務(wù),通過對(duì)系統(tǒng)逐步增加負(fù)載的方式,對(duì)系統(tǒng)性能的變化進(jìn)行測試,并確定系統(tǒng)在滿足各項(xiàng)性能指標(biāo)的情況下,所能承受的各項(xiàng)閥值。

 

2、基準(zhǔn)測試(Benchmark Testing)。指模擬一定數(shù)量的虛擬用戶行為,在系統(tǒng)測評(píng)或調(diào)優(yōu)過程中,根據(jù)測試出的基準(zhǔn)數(shù)據(jù)運(yùn)行相同的業(yè)務(wù)場景并對(duì)測試結(jié)果進(jìn)行分析比較,以確定測試結(jié)果是否能對(duì)系統(tǒng)調(diào)優(yōu)提供決策數(shù)據(jù)或?qū)ο到y(tǒng)性能的改善提供幫助。

 

3、壓力測試(Stress Testing)。指通過逐漸增加系統(tǒng)負(fù)載,確定在什么負(fù)載條件下系統(tǒng)性能處于失效狀態(tài),從而獲得系統(tǒng)所能承受的最大壓力數(shù)據(jù),并根據(jù)測試數(shù)據(jù)對(duì)系統(tǒng)的壓力瓶頸進(jìn)行定位及調(diào)優(yōu)。壓力測試更強(qiáng)調(diào)在極端情況下系統(tǒng)的可靠性及健壯性。

 

 4 、并發(fā)測試(Concurrency Testing)。主要用來測試系統(tǒng)是否存在死鎖、數(shù)據(jù)錯(cuò)誤及在并發(fā)用戶量大的情況下系統(tǒng)是否會(huì)出現(xiàn)頁面滯后、系統(tǒng)崩潰等故障。并發(fā)測試是軟件性能測試中最常用的測試方法,為了避免函數(shù)方法或數(shù)據(jù)庫等在并發(fā)下的錯(cuò)誤,需要專門針對(duì)每個(gè)模塊進(jìn)行并發(fā)測試。

 

二、軟件性能的衡量指標(biāo)

 

對(duì)于一個(gè)應(yīng)用系統(tǒng)來說,還需要對(duì)性能指標(biāo)進(jìn)行監(jiān)控。衡量一個(gè)軟件系統(tǒng)性能的常見指標(biāo)有: 

 

1、響應(yīng)時(shí)間(Response time)。對(duì)于網(wǎng)站系統(tǒng)來說,響應(yīng)時(shí)間就是從點(diǎn)擊了一個(gè)頁面計(jì)時(shí)開始,到這個(gè)頁面完全在瀏覽器里展現(xiàn)計(jì)時(shí)結(jié)束的這一段時(shí)間間隔,響應(yīng)時(shí)間越短越好。可以細(xì)分為服務(wù)器端響應(yīng)時(shí)間、網(wǎng)絡(luò)響應(yīng)時(shí)間、客戶端響應(yīng)時(shí)間。響應(yīng)時(shí)間描述如下圖所示。

 

軟件性能測試?yán)碚摲治鲅芯? src=

 

 

在軟件性能測試中一般是通過事務(wù)函數(shù)Transaction Response Time來統(tǒng)計(jì)響應(yīng)時(shí)間。 

 

2、吞吐量(Throughput)。吞吐量反映的是系統(tǒng)的處理能力,具體來說,就是指軟件系統(tǒng)在每單位時(shí)間內(nèi)能處理多少個(gè)事務(wù)/請求/單位數(shù)據(jù)等。吞吐量的大小由負(fù)載或行為方式來決定。在Performance Center中,吞吐量反映單位時(shí)間內(nèi)系統(tǒng)處理的事務(wù)數(shù)目。一般以TPS(Transaction Per Second)即每秒事務(wù)數(shù)表示。 

 

3、資源使用率(Resource utilization)。指系統(tǒng)在負(fù)載情況下軟硬件上各種資源的占用情況。例如,CPU占用率、內(nèi)存使用率、磁盤I/O等。 

 

4、并發(fā)用戶數(shù)(Concurrent users)。并發(fā)用戶數(shù)用來度量多個(gè)用戶同時(shí)訪問同一個(gè)應(yīng)用、同一個(gè)模塊或者數(shù)據(jù)記錄時(shí)是否存在死鎖或者其他性能問題,反映了系統(tǒng)的并發(fā)處理能力。

 

5、點(diǎn)擊數(shù)(Hits per second)。點(diǎn)擊數(shù)是按照客戶端向Web Server 發(fā)起了多少次 HTTP請求計(jì)算的。 

 

三、性能分析及調(diào)優(yōu)原理

 

軟件性能測試的目的是評(píng)估當(dāng)前系統(tǒng)性能指標(biāo),根據(jù)測試結(jié)果對(duì)性能瓶頸進(jìn)行定位及優(yōu)化,以預(yù)防規(guī)避性能風(fēng)險(xiǎn)。在進(jìn)行系統(tǒng)的調(diào)優(yōu)過程中,好的策略是按照由易到難的順序?qū)ο到y(tǒng)性能進(jìn)行調(diào)優(yōu)。

 

性能分析主要是根據(jù)測試結(jié)果對(duì)可能導(dǎo)致性能瓶頸的原因進(jìn)行定位,而調(diào)優(yōu)則是解決發(fā)現(xiàn)的性能瓶頸??梢酝ㄟ^以下兩種方法來對(duì)性能進(jìn)行調(diào)優(yōu): 

 

(一)性能分析法 

 

1、指標(biāo)達(dá)成法。指根據(jù)用戶需求,將得出的測試結(jié)果與之進(jìn)行比較,如果能夠滿足用戶需求則測試通過。如果不滿足,則對(duì)測試數(shù)據(jù)進(jìn)行分析定位,并解決查找出的性能問題,直到系統(tǒng)性能在用戶可接受的范圍內(nèi)。 

 

2、最優(yōu)化分析法。指根據(jù)測試數(shù)據(jù),對(duì)性能瓶頸進(jìn)行分析及優(yōu)化,以使系統(tǒng)資源得到充分利用,使系統(tǒng)的處理能力最大化。

 

性能調(diào)優(yōu)方向如下圖所示:

 

軟件性能測試?yán)碚摲治鲅芯? src=

 

 

1)應(yīng)用程序診斷。通過模擬大量用戶的操作對(duì)系統(tǒng)形成負(fù)載,根據(jù)測試結(jié)果對(duì)應(yīng)用程序進(jìn)行檢驗(yàn),看其是否能夠滿足用戶的性能需求。如果滿足需求則測試通過。反之,則對(duì)測試數(shù)據(jù)進(jìn)行分析定位并找出解決瓶頸的方案,以保證系統(tǒng)的可靠性、穩(wěn)定性。 

 

2)系統(tǒng)調(diào)優(yōu)。主要包括對(duì)獨(dú)立的瓶頸進(jìn)行調(diào)優(yōu)及對(duì)軟硬件迭代調(diào)優(yōu)。在測試過程中,模擬大量用戶形成負(fù)載,并且對(duì)系統(tǒng)的軟硬件環(huán)境進(jìn)行迭代測試,根據(jù)測試結(jié)果找出影響性能的要素,對(duì)其進(jìn)行優(yōu)化后最終提升系統(tǒng)的性能。對(duì)系統(tǒng)軟硬件進(jìn)行迭代調(diào)優(yōu)是一個(gè)循序漸進(jìn)的過程。

 

(二)調(diào)優(yōu)的基本步驟

 

對(duì)系統(tǒng)進(jìn)行分析及調(diào)優(yōu)的步驟主要包括: 

 

1、確定詳細(xì)的軟件性能測試計(jì)劃、方案和目標(biāo),并按優(yōu)先級(jí)排列; 

 

2、利用合適的軟件性能測試工具執(zhí)行測試,并對(duì)測試結(jié)果進(jìn)行分析和整合;

 

3、拆分分布式系統(tǒng)的各個(gè)組件,如Web層、業(yè)務(wù)層、集成層、網(wǎng)絡(luò)層等,分別進(jìn)行調(diào)優(yōu);

 

4、按照軟件性能測試-> 定位瓶頸 -> 性能調(diào)優(yōu) -> 再次執(zhí)行測試的方法對(duì)系統(tǒng)進(jìn)行逐步調(diào)優(yōu); 

 

5、確定影響系統(tǒng)性能的主要因素:CPU、Memory、Process還是I/O;

 

6、找出主要的性能瓶頸,首先處理最容易的瓶頸問題,再重復(fù)測試;

 

7、提高 CPU的性能:例如更優(yōu)化的算法、更高效率的代碼、優(yōu)化的SQL 等,以減少短期生存的對(duì)象; 

 

8、提高內(nèi)存性能:主要是減少長期生存的對(duì)象; 

 

9、提高I/O性能:重新對(duì)應(yīng)用進(jìn)行設(shè)計(jì),減少輸入輸出的交互;

 

10、性能優(yōu)化完成之后,進(jìn)行 QA 測試;

 

11、在代碼中對(duì)優(yōu)化的地方進(jìn)行記錄,并對(duì)舊代碼進(jìn)行注釋。

 

四、常見的性能瓶頸

 

(一)硬件上的性能瓶頸

 

主要指RAM、CPU方面的瓶頸。分為服務(wù)器操作系統(tǒng)瓶頸;Web服務(wù)器、數(shù)據(jù)庫等中間件瓶頸;服務(wù)器硬件瓶頸;數(shù)據(jù)庫設(shè)計(jì)、算法、業(yè)務(wù)邏輯、SQL語句等的應(yīng)用瓶頸及網(wǎng)絡(luò)瓶頸。例如,在測試過程中發(fā)現(xiàn)數(shù)據(jù)庫服務(wù)器CPU的持續(xù)利用率超過90%以上,此數(shù)據(jù)庫服務(wù)器需要5個(gè)CPU、10GB 內(nèi)存,這時(shí)可以認(rèn)為系統(tǒng)出現(xiàn)了硬件上的性能瓶頸。 

 

(二)應(yīng)用軟件上的性能瓶頸

 

一般指的是應(yīng)用服務(wù)器、Web服務(wù)器等應(yīng)用軟件,還包括數(shù)據(jù)庫系統(tǒng)。例如,在Weblogic平臺(tái)上配置了JDBC連接池的參數(shù),最大連接數(shù)為50,最小連接數(shù)為5,增加量為10。在測試時(shí)發(fā)現(xiàn),當(dāng)負(fù)載增加時(shí),現(xiàn)有的連接數(shù)不足,系統(tǒng)會(huì)動(dòng)態(tài)生成10個(gè)新的連接,導(dǎo)致交易處理的響應(yīng)時(shí)間大大增加。這時(shí)可以認(rèn)為在應(yīng)用軟件上出現(xiàn)了性能瓶頸。

 

除此之外,還包括應(yīng)用程序上的性能瓶頸、操作系統(tǒng)上的性能瓶頸、網(wǎng)絡(luò)設(shè)備上的性能瓶頸等。

 

五、常見性能問題及成因 

 

(一)常見的性能問題有以下幾個(gè)特征  

 

1、隨著時(shí)間推移越來越慢。在負(fù)載不變的情況下,隨著時(shí)間的推移,系統(tǒng)可能由于緩存中數(shù)據(jù)量大或者達(dá)到某個(gè)閾值,導(dǎo)致頁面滯后,系統(tǒng)被鎖定或出現(xiàn)大量錯(cuò)誤而崩潰。 

 

2、隨著負(fù)載增加越來越慢。在負(fù)載增加的情況下,每增加若干用戶,系統(tǒng)響應(yīng)時(shí)間慢,在用戶較少的情況下,系統(tǒng)響應(yīng)時(shí)間相對(duì)較快。 

 

3、鎖定。在系統(tǒng)出現(xiàn)掛起或錯(cuò)誤的情況下加速出現(xiàn)鎖定,直到系統(tǒng)完全鎖定。通常需要重啟系統(tǒng)才能解決。 

 

4、突然混亂。系統(tǒng)運(yùn)行一直都較為正常,在持續(xù)運(yùn)行或者負(fù)載量較大的情況下,系統(tǒng)突然出現(xiàn)大量錯(cuò)誤或鎖定。

 

(二)常見性能問題及成因 

 

1、資源泄漏。主要是CICS 事務(wù)網(wǎng)關(guān)連接、JDBC語句等泄露導(dǎo)致了橋接層及對(duì)后端系統(tǒng)產(chǎn)生了影響。并隨著時(shí)間的推移,出現(xiàn)鎖定或系統(tǒng)崩潰等問題。

 

成因:遺漏了finally塊,沒有用close()關(guān)閉外部資源的對(duì)象。 

 

2、內(nèi)存泄露。分為線性內(nèi)存泄漏和指數(shù)方式內(nèi)存泄漏。內(nèi)存泄露會(huì)隨著時(shí)間推移及負(fù)載增多而增加系統(tǒng)內(nèi)存消耗降低系統(tǒng)性能。

 

成因:原因較多,主要與資源泄露及向集合(Vector、HashMap)中加入不刪除的元素有關(guān)。

 

3、外部瓶頸問題。隨著負(fù)載的增加,后端運(yùn)行持續(xù)緩慢,減緩了應(yīng)用服務(wù)器及應(yīng)用程序的響應(yīng)時(shí)間,或者應(yīng)用程序通過大量請求濫用后端系統(tǒng)。

 

成因:后端系統(tǒng)不合理或者冗余的工作請求??梢酝ㄟ^咨詢專家、分解工作請求等方法解決。 

 

4、線程阻塞、死鎖/活動(dòng)鎖。“獲得順序”的問題或線程遇到同步阻塞,隨著負(fù)載量的增加,系統(tǒng)會(huì)出現(xiàn)掛起、鎖定或異常錯(cuò)誤。

 

成因:鎖定策略及“獲得順序”的算法不合理。 

 

5、中間層問題。數(shù)據(jù)庫連接池管理及JDBC驅(qū)動(dòng)程序橋接層不合理,隨著負(fù)載的增加系統(tǒng)持續(xù)緩慢。在早期階段很容易與外部瓶頸混淆。

 

成因:有可能是橋接層和外部系統(tǒng)的版本不兼容造成的。 

 

6、內(nèi)部資源瓶頸。對(duì)象池、線程池等內(nèi)部資源稀缺,隨著負(fù)載的增加系統(tǒng)持續(xù)緩慢并且出現(xiàn)掛起或異常錯(cuò)誤。

 

成因:分配不足或過度使用??梢愿鶕?jù)預(yù)期的最大負(fù)載量,通過提高對(duì)象池、線程池的最大尺寸等方法解決。 

 

軟件性能測試對(duì)于確保系統(tǒng)的正常運(yùn)行有著重要的意義。因此,分析和研究產(chǎn)生性能瓶頸的成因,有助于與我們更好的理解軟件性能測試,解決性能瓶頸問題,確保系統(tǒng)健康有序的運(yùn)行。

 

分享到:

來源:Internet

相關(guān)新聞: