軟件性能測試流程(PPT)_第1頁
軟件性能測試流程(PPT)_第2頁
軟件性能測試流程(PPT)_第3頁
軟件性能測試流程(PPT)_第4頁
軟件性能測試流程(PPT)_第5頁
已閱讀5頁,還剩27頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、n軟件性能測試流程David_sheng更多軟件測試技術(shù)文章請訪問:http:/ 應(yīng)用程序是否能夠很快地響應(yīng)用戶的要求? 應(yīng)用程序是否能處理預(yù)期的用戶負(fù)載并具有盈余能力? 應(yīng)用程序是否能處理業(yè)務(wù)所需的事務(wù)數(shù)量? 在預(yù)期和非預(yù)期的用戶負(fù)載下,應(yīng)用程序是否穩(wěn)定? 是否能確保用戶在真正使用軟件時獲得積極的體驗?n通過回答以上問題,性能測試可以量化改變業(yè)務(wù)指標(biāo)所產(chǎn)生的影響。進(jìn)而可以說明部署的風(fēng)險。有效的性能測試過程將有助于您做出更明智的發(fā)布決策,并防止系統(tǒng)出現(xiàn)故障和解決可用性問題。性能測試流程n性能測試通常由五個階段組成:測試計劃、腳本創(chuàng)建、場景定義、場景運行和結(jié)果分析。n測試計劃:定義性能測試要求,

2、例如并發(fā)用戶的數(shù)量、典型業(yè)務(wù)流程和所需響應(yīng)時間。n腳本創(chuàng)建:將最終用戶活動捕獲到Vuser自動腳本中。n場景定義:使用LoadRunnerController設(shè)置性能測試環(huán)境。n場景運行:通過LoadRunnerController驅(qū)動、管理和監(jiān)控性能測試。n結(jié)果分析:使用LoadRunnerAnalysis創(chuàng)建圖和報告并評估性能。性能測試問題及對應(yīng)人員性能測試需求的來源n性能測試需求的來源有三個方面:n需求文檔n設(shè)計文檔n與客戶溝通確定性能測試需求的解決方法n在沒有需求文檔和設(shè)計文檔的情況下,我們需要對客戶業(yè)務(wù)使用情況進(jìn)行分析,提出我們所關(guān)注的性能測試需求,并告知業(yè)務(wù)人員。讓業(yè)務(wù)人員來判斷我

3、們的性能需求是否能滿足客戶的真實要求。n1、確定當(dāng)前系統(tǒng)的業(yè)務(wù)使用狀況:通過日志記錄客戶端模塊使用情況了解在某個時間段內(nèi),客戶執(zhí)行某個操作的具體情況。n2、了解不同視角的用戶性能:n)用戶視角:n響應(yīng)時間:用戶所能感受到的響應(yīng)時間,也是用戶最重視的性能體驗。n確立響應(yīng)時間的原則:2/5/10原則n2:2秒鐘用戶會覺得是一個很好的體驗。n5:5秒鐘用戶可能會覺得差了一點,還行,比較好。n10:10秒鐘是用戶所能承受的最大極限。n鑒于不同地區(qū)的網(wǎng)絡(luò)環(huán)境,將用戶所能承受的響應(yīng)時間極限定為1215秒。n此部分需與業(yè)務(wù)人員討論。此部分需與業(yè)務(wù)人員討論。n穩(wěn)定性:系統(tǒng)長時間運行不會出現(xiàn)錯誤的能力。n驗證方

4、法:驗證方法:系統(tǒng)在滿負(fù)載的運行8小時,系統(tǒng)是否會出現(xiàn)服務(wù)不可用,ConnectionRefusedn HTTP404,500錯誤。n)系統(tǒng)視角:延遲,系統(tǒng)資源使用狀況n延遲:包括數(shù)據(jù)庫延遲和網(wǎng)絡(luò)延遲n此部分需與此部分需與DBA及系統(tǒng)部人員討論。及系統(tǒng)部人員討論。n 系統(tǒng)資源使用狀況:服務(wù)器的CPU使用率是否長期高于80,達(dá)到90,100的程度,整個磁盤的I/O是否達(dá)到極限。內(nèi)存的使用數(shù)是否只剩下極少的幾兆,幾十兆。n)開發(fā)者視角:從代碼實現(xiàn)和數(shù)據(jù)庫實現(xiàn)來考慮性能??纯催@兩方面得到實現(xiàn)是否足夠好。n3、了解真正的性能測試需求n方法:n)識別項目干系人:指的是和項目相關(guān)的人,開發(fā)人員,設(shè)計人員,

5、需求人員,業(yè)務(wù)人員,上層領(lǐng)導(dǎo),了解他們對性能測試的考慮。)隱藏在“性能測試”之后的實際想法,比如:是因為開發(fā)人員對所完成的代碼沒有信心,又不愿意做修改,要求我們對其所作的程序進(jìn)行性能測試,還是設(shè)計人員使用了一項新技術(shù),心里沒低,所要求作的性能測試,等等。確立性能測試目標(biāo)n1、以、以“需求需求”為本為本n考慮系統(tǒng)需不需要作性能測試,性能測試的內(nèi)容和范圍。n2、測試目標(biāo)確定的經(jīng)濟(jì)性考慮、測試目標(biāo)確定的經(jīng)濟(jì)性考慮n)投入到性能測試的人員是多少?n)具備可以確定性能測試需求,制定性能測試方案的人員是多少?可以執(zhí)行性能測試的人員是多少?n)這些人員需要投入多長時間?n)所要開發(fā)系統(tǒng)的運行環(huán)境和設(shè)備,這些

6、設(shè)備的配置對于性能測試的影響,比如說:tomcat4.1的應(yīng)用服務(wù)器,它的配置文件缺省的jvm的使用空間是64M,一個機(jī)器的內(nèi)存為1G,我們將jvm的使用空間設(shè)置為512M對性能測試的影響。n)內(nèi)部的人員無法滿足性能測試的要求,通過外聘,采用外聘的方式,公司所能承受的成本是多高。n3、基于風(fēng)險的測試目標(biāo)確定、基于風(fēng)險的測試目標(biāo)確定n)系統(tǒng)如果不做性能測試,會有多大的風(fēng)險,如果在性能指標(biāo)上達(dá)不到用戶的要求會有多大的風(fēng)險。需要進(jìn)行評估。n)如果做性能測試會有多大的風(fēng)險,性能測試的投入會有多大,會有多大的風(fēng)險需要進(jìn)行評估。確定性能測試目標(biāo)的方法n我們要確定系統(tǒng)的吞吐量和并發(fā)用戶數(shù)的設(shè)計目標(biāo)可以采用以

7、下三種方式:n確定在某個特定時間端內(nèi),估計系統(tǒng)會有多少用戶同時訪問n在某個特定的時間端內(nèi),正在訪問系統(tǒng)的用戶的典型操作是什么?哪個頁面的訪問量最大?n在某個特定的時間端內(nèi),系統(tǒng)需要處理多少種用戶場景n這些數(shù)據(jù)可以在系統(tǒng)服務(wù)器的日志文件、TSP監(jiān)視數(shù)據(jù)種找到,也可以通過監(jiān)視數(shù)據(jù)庫的活動情況來獲得。不同階段的性能測試目標(biāo)n設(shè)計階段的性能測試目標(biāo)n設(shè)計階段的性能測試目標(biāo)為考察系統(tǒng)是否滿足預(yù)期的性能要求。n開發(fā)階段的性能測試目標(biāo)n)將開發(fā)階段的性能測試目標(biāo)作為對系統(tǒng)進(jìn)行調(diào)優(yōu)的參考:考慮在每個開發(fā)階段,性能是否能夠達(dá)到標(biāo)準(zhǔn),考慮當(dāng)前階段的性能瓶頸,及其性能瓶頸出現(xiàn)的原因是在于數(shù)據(jù)庫訪問(SQL語句或者存

8、儲過程寫的不夠好)還是其他的原因。n)用性能測試手段發(fā)現(xiàn)系統(tǒng)存在的問題:通過模擬真實場景,發(fā)現(xiàn)在現(xiàn)場測試中可能存在的問題,比如說:用戶數(shù)的突然增加,導(dǎo)致的應(yīng)用程序崩潰,服務(wù)器崩潰的問題。n產(chǎn)品部署階段的性能測試目標(biāo)n提供部署方案的參考,確定合適的硬件設(shè)備,雖然更高的設(shè)備可以獲取商業(yè)上的利益,但應(yīng)考慮客戶的具體情況。n系統(tǒng)維護(hù)階段的性能測試目標(biāo)n考察系統(tǒng)的可擴(kuò)展性:從系統(tǒng)的視角考慮,在用戶數(shù)擴(kuò)大,在業(yè)務(wù)量增大的情況下,是一個怎樣的表現(xiàn)。性能測試方案的確立n在確立性能測試方案之前,需要作的工作n1、確定測試目標(biāo)和需求n這里的靈活性比較大,與性能測試成敗有很大的關(guān)系。n2、了解現(xiàn)狀n)業(yè)務(wù)使用狀況n

9、通過日志記錄,在某個時間段內(nèi),用戶的操作。n)了解環(huán)境:包括網(wǎng)絡(luò)條件,服務(wù)器條件,軟硬件條件,應(yīng)用服務(wù)器環(huán)境及各種配置信息。n3、確定需要監(jiān)控的指標(biāo):n)CPU使用率n)內(nèi)存使用情況n在此應(yīng)優(yōu)先監(jiān)控應(yīng)用服務(wù)器的性能指標(biāo)。對于Tomcat或者Weblogic來說,監(jiān)控他的JVM使用狀況,連接池的連接數(shù)量,內(nèi)存使用狀況等信息。對于數(shù)據(jù)庫來說監(jiān)控cache的命中率,索引的使用狀況,數(shù)據(jù)庫的連接數(shù)。用例和場景設(shè)計n用例和場景設(shè)計的步驟:n1、對業(yè)務(wù)的分析和分解n2、根據(jù)業(yè)務(wù)確定用例n3、不同用例按照不同的發(fā)生比例組成場景n4、了解每個場景的實際意義(對場景執(zhí)行測試,收集結(jié)果)n5、了解業(yè)務(wù)的分布情況,

10、根據(jù)業(yè)務(wù)確定用例,在設(shè)計用例的時候,根據(jù)前期收集的數(shù)據(jù),設(shè)計不同的場景來組成用例,并了解每個場景的實際意義,執(zhí)行場景,收集結(jié)果數(shù)據(jù)。設(shè)定需要監(jiān)控的資源n設(shè)定需要監(jiān)控的資源主要有一下幾個方面:n1、CPU利用率n2、內(nèi)存使用情況n3、數(shù)據(jù)庫監(jiān)控n4、JVM使用狀況監(jiān)控n應(yīng)優(yōu)先監(jiān)控應(yīng)用服務(wù)器的性能指標(biāo)。對于Tomcat或者Weblogic來說,監(jiān)控他的JVM使用狀況,連接池的連接數(shù)量,內(nèi)存使用狀況等信息。對于數(shù)據(jù)庫來說,cache的命中率,索引的使用狀況,數(shù)據(jù)庫的連接數(shù),具體的監(jiān)控指標(biāo)請性能測試工程師,根據(jù)性能需求確定。性能測試的應(yīng)用領(lǐng)域n系統(tǒng)性能測試的主要應(yīng)用領(lǐng)域是驗證能力、性能調(diào)優(yōu)。n1、驗證

11、能力包括n)驗證新的系統(tǒng),新的架構(gòu)能否滿足用戶的需求。n)向用戶提供性能測試報告,說明系統(tǒng)的性能達(dá)到了預(yù)期設(shè)計的標(biāo)準(zhǔn)。n)確定新平臺的產(chǎn)品架構(gòu),假設(shè)以前用ASP,現(xiàn)在用.net,或者換到j(luò)2ee平臺上,驗證新系統(tǒng)架構(gòu)是否滿足性能要求,這個要求不是用戶提出來的,也不是直接用戶體驗的,而是在架構(gòu)設(shè)計過程中要確定的指標(biāo)。n2、性能調(diào)優(yōu)n在系統(tǒng)開發(fā)過程中,通過性能測試,了解當(dāng)前系統(tǒng)瓶頸(比如說在于數(shù)據(jù)庫訪問,SQL語句或者存儲過程寫的不夠好,或者說數(shù)據(jù)庫設(shè)計的問題,索引做的不夠好),所選擇的應(yīng)用服務(wù)器有問題,或者說代碼這一層,業(yè)務(wù)邏輯實現(xiàn)的不夠好,導(dǎo)致它性能的缺陷。以確定問題出現(xiàn)在應(yīng)用層,數(shù)據(jù)庫層,代

12、碼層。實施階段n將影響性能的因素按照以下順序進(jìn)行判斷:n1、網(wǎng)絡(luò)狀況n2、硬件設(shè)備n3、系統(tǒng)/應(yīng)用服務(wù)器/數(shù)據(jù)庫配置n4、數(shù)據(jù)庫設(shè)計和數(shù)據(jù)庫訪問實現(xiàn)(SQL)n5、業(yè)務(wù)的程序?qū)崿F(xiàn)n但是在開發(fā)階段做性能調(diào)優(yōu)時關(guān)注的順序:請更多的關(guān)注SQL一級和代碼一級。n若是對于一個實際在線上運行的系統(tǒng),請直接按照以上5點的順序。n注:很多的性能問題,是由于應(yīng)用服務(wù)器的配置完全不合理,比如:注:很多的性能問題,是由于應(yīng)用服務(wù)器的配置完全不合理,比如:tomcat4.1的應(yīng)用服務(wù)器,沒有修改它的配置文件中缺省的的應(yīng)用服務(wù)器,沒有修改它的配置文件中缺省的jvm的使的使用空間。用空間。各階段所要進(jìn)行的性能測試n設(shè)計階

13、段的性能測試n在設(shè)計階段的性能測試主要的目的是驗證你的架構(gòu)。驗證的方式有兩種:n1、在對于系統(tǒng)架構(gòu)有一個預(yù)期的性能目標(biāo)的情況下,去驗證當(dāng)前架構(gòu)能否滿足預(yù)期的性能目標(biāo)。n2、系統(tǒng)架構(gòu)是基于以前的架構(gòu)修改過來的,對于兩者進(jìn)行一個對比測試,了解兩種架構(gòu)各有什么優(yōu)勢。n實施階段的性能測試n在實施階段進(jìn)行性能測試的目的是為了階段性的驗證系統(tǒng)性能,進(jìn)行性能調(diào)優(yōu),并通過系統(tǒng)調(diào)優(yōu)發(fā)現(xiàn)系統(tǒng)缺陷。n產(chǎn)品部署階段的性能測試n在產(chǎn)品部署階段,將性能測試作為驗收測試的一部分。n維護(hù)階段的性能測試n在維護(hù)階段考察系統(tǒng)的可擴(kuò)充性/定位系統(tǒng)缺陷,考察系統(tǒng)的可擴(kuò)充性用來定位系統(tǒng)的缺陷。系統(tǒng)穩(wěn)定性的度量n為了驗證系統(tǒng)的穩(wěn)定性,我

14、們需要對系統(tǒng)進(jìn)行一個可靠性度量,在目前沒有一個行業(yè)或者國際標(biāo)準(zhǔn)進(jìn)行可靠性度量的前提下,我們又無法獲得確切的用戶需求(用戶提不出系統(tǒng)穩(wěn)定性的量化標(biāo)準(zhǔn)),我們可以采用如下方式來驗證系統(tǒng)的穩(wěn)定性。n通過在做性能測試的過程中得到系統(tǒng)穩(wěn)定性數(shù)據(jù)的通過在做性能測試的過程中得到系統(tǒng)穩(wěn)定性數(shù)據(jù)的方式來驗證系統(tǒng)的穩(wěn)定性方式來驗證系統(tǒng)的穩(wěn)定性n手段手段:對一個系統(tǒng)進(jìn)行一個長時間的運行,觀察它的可用內(nèi)存,cpu使用率有無顯著的變化,如果在長時間使用的情況下,cpu,內(nèi)存無顯著變化,則可以認(rèn)為系統(tǒng)具有穩(wěn)定性。性能測試的基本概念n1、響應(yīng)時間、響應(yīng)時間:客戶端從發(fā)送請求的那一刻起到收到應(yīng)用程序響應(yīng)的最后一個字節(jié)時止而不

15、得不等待的時間長度。n2、點擊數(shù):、點擊數(shù): 對每一個對象的請求,比如說:一個頁面有五個部分組成,一個框架,四張圖片,這樣算做5個點擊數(shù)。n3、頁面請求:、頁面請求: 請求了一個頁面,不管這個頁面包括了多少對象。n4、吞吐量:、吞吐量:ni)按照流量來計算的吞吐量,用來衡量網(wǎng)絡(luò)狀況或者應(yīng)用服務(wù)器的處理能力,在指定的時間內(nèi),每秒鐘字節(jié)的出入.ii)用點擊數(shù)來衡量吞吐量,每個固定的時間段內(nèi)有多少點擊數(shù),用于銀行系統(tǒng)。n5、并發(fā)用戶、并發(fā)用戶:從業(yè)務(wù)上的并發(fā):200人同時在線。從服務(wù)器上的并發(fā):200人同時向服務(wù)器發(fā)出請求。200人同時做一個提交的操作,服務(wù)器接受到多少請求。n6、資源利用率、資源利

16、用率:cpu利用率,內(nèi)存利用率,磁盤I/O狀況等在性能測試中需要注意的問題n1、環(huán)境設(shè)計的問題n2、其他需要注意的地方環(huán)境設(shè)計的問題n1、網(wǎng)絡(luò)環(huán)境n2、軟硬件環(huán)境n3、環(huán)境的維護(hù)方案n4、時間同步問題n5、“鏡像”環(huán)境n時間同步問題:各種服務(wù)器部署在不同的機(jī)器上,在進(jìn)行性能測試分析響應(yīng)時間的時候就需要進(jìn)行時間同步,通過日志來對比時間,但日志上記錄的是本地時間,讓日志記錄的時間有可比性,需要做時間同步。n同步的方法:在UNIX操作系統(tǒng)上用NTP協(xié)議可以做時間同步,在windows系統(tǒng)上可以通過加入域來時間同步,n“鏡像”環(huán)境的問題:做能力驗證的測試的時候,一般要求在現(xiàn)場做,因為這種測試結(jié)果和應(yīng)用

17、服務(wù)器網(wǎng)絡(luò)環(huán)境本身會有很大的關(guān)系,如果不能做現(xiàn)場測試,n采用的兩個解決辦法:ni)盡可能的模擬出用戶環(huán)境:包括網(wǎng)絡(luò)狀況,服務(wù)器狀況,nii)和用戶去協(xié)商:去做現(xiàn)場測試。其他需要注意的地方n1、應(yīng)用服務(wù)器的、應(yīng)用服務(wù)器的Warm up問題問題nJ2ee應(yīng)用或者.net應(yīng)用現(xiàn)在都會涉及本地編譯的過程,在第一次做運行的時候,在第一次訪問的時候速度會很慢,第二次訪問才會快起來,因為從本地Cache中讀取信息,所以在應(yīng)用服務(wù)器重啟了以后,都必須多測幾次,等服務(wù)器Warmup后再測試,否則的話,前面的結(jié)果沒有有效性。整個的結(jié)果還會有誤差。n2、應(yīng)用服務(wù)器的、應(yīng)用服務(wù)器的Cachen在多次測試的過程中,把C

18、ache功能給去掉,或者把cache給清空。n3、瀏覽器或客戶端應(yīng)用的、瀏覽器或客戶端應(yīng)用的Cachen客戶端和瀏覽器的cache在錄制腳本的時候都應(yīng)該去掉。確定最小用戶負(fù)載n確定最小用戶負(fù)載的目的n為了全面掌握應(yīng)用程序的性能不僅是重壓條件下,而且是在更為理想的條件下。這是很重要的,因為應(yīng)用程序通常將大部分的時間花費在這些低負(fù)載條件下。峰值操作通常很少發(fā)生。n確定最小用戶負(fù)載的方法n從需求上解決,了解業(yè)務(wù)分布情況,將業(yè)務(wù)分布情況劃分成不同的場景,確定一個負(fù)載使用狀況最小的場景。執(zhí)行此場景,觀察系統(tǒng)在此場景下的運行狀況。性能測試的兩個基本類別 n預(yù)備測試n預(yù)備測試:最初的試探性測試,讓我們能夠感

19、受一下應(yīng)用程序的性能并優(yōu)化測試環(huán)境。n正式測試n有四個正式的性能測度,我們的分析就建立在這些測度上??梢詫⑦@些正式測試按照類型分成如下幾個子類:單實例壓力測試、持久測試、體系結(jié)構(gòu)測試一旦按照初步測試結(jié)果設(shè)置好了環(huán)境和測試參數(shù)(測試腳本、思考時間、采樣方法等等),這些因素就必須對任何特定的性能測試都保持不變。如果在某個特定的性能測試中修改任何參數(shù),那么我們就破壞了結(jié)果的可比較性,將不得不重新執(zhí)行測試。性能測試生存周期n規(guī)劃性能分析n創(chuàng)建有效的壓力腳本n執(zhí)行壓力測試n分析性能測試數(shù)據(jù)來確定和解決性能瓶頸n規(guī)劃性能分析規(guī)劃性能分析階段的工作包括收集重要的原始數(shù)據(jù),然后根據(jù)這些信息制訂測試方案。規(guī)劃階段收集到的信息至少應(yīng)該描述兩個方面的內(nèi)容:用來復(fù)制一個接近生產(chǎn)環(huán)境的測試環(huán)境的細(xì)節(jié)。對該應(yīng)用程序的使用方式的理解,以及臨界性能表現(xiàn)的跡象等。這些信息可以來源于市場預(yù)測報告、站點的WEB日志、站點的性能日志和站點功能說明等。n創(chuàng)建高效的壓力測試腳本創(chuàng)建高效的壓力測試腳本 在收集了所需信息并搭建了測試環(huán)境后,下一步就是創(chuàng)建測試腳本,它應(yīng)該能夠準(zhǔn)確地模擬站點期望地流量。最有效地方式是根據(jù)實況網(wǎng)站中的歷

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論