版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、n軟件性能測試流程David_sheng更多軟件測試技術(shù)文章請訪問:http:/ 應用程序是否能夠很快地響應用戶的要求? 應用程序是否能處理預期的用戶負載并具有盈余能力? 應用程序是否能處理業(yè)務所需的事務數(shù)量? 在預期和非預期的用戶負載下,應用程序是否穩(wěn)定? 是否能確保用戶在真正使用軟件時獲得積極的體驗?n通過回答以上問題,性能測試可以量化改變業(yè)務指標所產(chǎn)生的影響。進而可以說明部署的風險。有效的性能測試過程將有助于您做出更明智的發(fā)布決策,并防止系統(tǒng)出現(xiàn)故障和解決可用性問題。性能測試流程n性能測試通常由五個階段組成:測試計劃、腳本創(chuàng)建、場景定義、場景運行和結(jié)果分析。n測試計劃:定義性能測試要求,
2、例如并發(fā)用戶的數(shù)量、典型業(yè)務流程和所需響應時間。n腳本創(chuàng)建:將最終用戶活動捕獲到Vuser自動腳本中。n場景定義:使用LoadRunnerController設置性能測試環(huán)境。n場景運行:通過LoadRunnerController驅(qū)動、管理和監(jiān)控性能測試。n結(jié)果分析:使用LoadRunnerAnalysis創(chuàng)建圖和報告并評估性能。性能測試問題及對應人員性能測試需求的來源n性能測試需求的來源有三個方面:n需求文檔n設計文檔n與客戶溝通確定性能測試需求的解決方法n在沒有需求文檔和設計文檔的情況下,我們需要對客戶業(yè)務使用情況進行分析,提出我們所關(guān)注的性能測試需求,并告知業(yè)務人員。讓業(yè)務人員來判斷我
3、們的性能需求是否能滿足客戶的真實要求。n1、確定當前系統(tǒng)的業(yè)務使用狀況:通過日志記錄客戶端模塊使用情況了解在某個時間段內(nèi),客戶執(zhí)行某個操作的具體情況。n2、了解不同視角的用戶性能:n)用戶視角:n響應時間:用戶所能感受到的響應時間,也是用戶最重視的性能體驗。n確立響應時間的原則:2/5/10原則n2:2秒鐘用戶會覺得是一個很好的體驗。n5:5秒鐘用戶可能會覺得差了一點,還行,比較好。n10:10秒鐘是用戶所能承受的最大極限。n鑒于不同地區(qū)的網(wǎng)絡環(huán)境,將用戶所能承受的響應時間極限定為1215秒。n此部分需與業(yè)務人員討論。此部分需與業(yè)務人員討論。n穩(wěn)定性:系統(tǒng)長時間運行不會出現(xiàn)錯誤的能力。n驗證方
4、法:驗證方法:系統(tǒng)在滿負載的運行8小時,系統(tǒng)是否會出現(xiàn)服務不可用,ConnectionRefusedn HTTP404,500錯誤。n)系統(tǒng)視角:延遲,系統(tǒng)資源使用狀況n延遲:包括數(shù)據(jù)庫延遲和網(wǎng)絡延遲n此部分需與此部分需與DBA及系統(tǒng)部人員討論。及系統(tǒng)部人員討論。n 系統(tǒng)資源使用狀況:服務器的CPU使用率是否長期高于80,達到90,100的程度,整個磁盤的I/O是否達到極限。內(nèi)存的使用數(shù)是否只剩下極少的幾兆,幾十兆。n)開發(fā)者視角:從代碼實現(xiàn)和數(shù)據(jù)庫實現(xiàn)來考慮性能??纯催@兩方面得到實現(xiàn)是否足夠好。n3、了解真正的性能測試需求n方法:n)識別項目干系人:指的是和項目相關(guān)的人,開發(fā)人員,設計人員,
5、需求人員,業(yè)務人員,上層領(lǐng)導,了解他們對性能測試的考慮。)隱藏在“性能測試”之后的實際想法,比如:是因為開發(fā)人員對所完成的代碼沒有信心,又不愿意做修改,要求我們對其所作的程序進行性能測試,還是設計人員使用了一項新技術(shù),心里沒低,所要求作的性能測試,等等。確立性能測試目標n1、以、以“需求需求”為本為本n考慮系統(tǒng)需不需要作性能測試,性能測試的內(nèi)容和范圍。n2、測試目標確定的經(jīng)濟性考慮、測試目標確定的經(jīng)濟性考慮n)投入到性能測試的人員是多少?n)具備可以確定性能測試需求,制定性能測試方案的人員是多少?可以執(zhí)行性能測試的人員是多少?n)這些人員需要投入多長時間?n)所要開發(fā)系統(tǒng)的運行環(huán)境和設備,這些
6、設備的配置對于性能測試的影響,比如說:tomcat4.1的應用服務器,它的配置文件缺省的jvm的使用空間是64M,一個機器的內(nèi)存為1G,我們將jvm的使用空間設置為512M對性能測試的影響。n)內(nèi)部的人員無法滿足性能測試的要求,通過外聘,采用外聘的方式,公司所能承受的成本是多高。n3、基于風險的測試目標確定、基于風險的測試目標確定n)系統(tǒng)如果不做性能測試,會有多大的風險,如果在性能指標上達不到用戶的要求會有多大的風險。需要進行評估。n)如果做性能測試會有多大的風險,性能測試的投入會有多大,會有多大的風險需要進行評估。確定性能測試目標的方法n我們要確定系統(tǒng)的吞吐量和并發(fā)用戶數(shù)的設計目標可以采用以
7、下三種方式:n確定在某個特定時間端內(nèi),估計系統(tǒng)會有多少用戶同時訪問n在某個特定的時間端內(nèi),正在訪問系統(tǒng)的用戶的典型操作是什么?哪個頁面的訪問量最大?n在某個特定的時間端內(nèi),系統(tǒng)需要處理多少種用戶場景n這些數(shù)據(jù)可以在系統(tǒng)服務器的日志文件、TSP監(jiān)視數(shù)據(jù)種找到,也可以通過監(jiān)視數(shù)據(jù)庫的活動情況來獲得。不同階段的性能測試目標n設計階段的性能測試目標n設計階段的性能測試目標為考察系統(tǒng)是否滿足預期的性能要求。n開發(fā)階段的性能測試目標n)將開發(fā)階段的性能測試目標作為對系統(tǒng)進行調(diào)優(yōu)的參考:考慮在每個開發(fā)階段,性能是否能夠達到標準,考慮當前階段的性能瓶頸,及其性能瓶頸出現(xiàn)的原因是在于數(shù)據(jù)庫訪問(SQL語句或者存
8、儲過程寫的不夠好)還是其他的原因。n)用性能測試手段發(fā)現(xiàn)系統(tǒng)存在的問題:通過模擬真實場景,發(fā)現(xiàn)在現(xiàn)場測試中可能存在的問題,比如說:用戶數(shù)的突然增加,導致的應用程序崩潰,服務器崩潰的問題。n產(chǎn)品部署階段的性能測試目標n提供部署方案的參考,確定合適的硬件設備,雖然更高的設備可以獲取商業(yè)上的利益,但應考慮客戶的具體情況。n系統(tǒng)維護階段的性能測試目標n考察系統(tǒng)的可擴展性:從系統(tǒng)的視角考慮,在用戶數(shù)擴大,在業(yè)務量增大的情況下,是一個怎樣的表現(xiàn)。性能測試方案的確立n在確立性能測試方案之前,需要作的工作n1、確定測試目標和需求n這里的靈活性比較大,與性能測試成敗有很大的關(guān)系。n2、了解現(xiàn)狀n)業(yè)務使用狀況n
9、通過日志記錄,在某個時間段內(nèi),用戶的操作。n)了解環(huán)境:包括網(wǎng)絡條件,服務器條件,軟硬件條件,應用服務器環(huán)境及各種配置信息。n3、確定需要監(jiān)控的指標:n)CPU使用率n)內(nèi)存使用情況n在此應優(yōu)先監(jiān)控應用服務器的性能指標。對于Tomcat或者Weblogic來說,監(jiān)控他的JVM使用狀況,連接池的連接數(shù)量,內(nèi)存使用狀況等信息。對于數(shù)據(jù)庫來說監(jiān)控cache的命中率,索引的使用狀況,數(shù)據(jù)庫的連接數(shù)。用例和場景設計n用例和場景設計的步驟:n1、對業(yè)務的分析和分解n2、根據(jù)業(yè)務確定用例n3、不同用例按照不同的發(fā)生比例組成場景n4、了解每個場景的實際意義(對場景執(zhí)行測試,收集結(jié)果)n5、了解業(yè)務的分布情況,
10、根據(jù)業(yè)務確定用例,在設計用例的時候,根據(jù)前期收集的數(shù)據(jù),設計不同的場景來組成用例,并了解每個場景的實際意義,執(zhí)行場景,收集結(jié)果數(shù)據(jù)。設定需要監(jiān)控的資源n設定需要監(jiān)控的資源主要有一下幾個方面:n1、CPU利用率n2、內(nèi)存使用情況n3、數(shù)據(jù)庫監(jiān)控n4、JVM使用狀況監(jiān)控n應優(yōu)先監(jiān)控應用服務器的性能指標。對于Tomcat或者Weblogic來說,監(jiān)控他的JVM使用狀況,連接池的連接數(shù)量,內(nèi)存使用狀況等信息。對于數(shù)據(jù)庫來說,cache的命中率,索引的使用狀況,數(shù)據(jù)庫的連接數(shù),具體的監(jiān)控指標請性能測試工程師,根據(jù)性能需求確定。性能測試的應用領(lǐng)域n系統(tǒng)性能測試的主要應用領(lǐng)域是驗證能力、性能調(diào)優(yōu)。n1、驗證
11、能力包括n)驗證新的系統(tǒng),新的架構(gòu)能否滿足用戶的需求。n)向用戶提供性能測試報告,說明系統(tǒng)的性能達到了預期設計的標準。n)確定新平臺的產(chǎn)品架構(gòu),假設以前用ASP,現(xiàn)在用.net,或者換到j2ee平臺上,驗證新系統(tǒng)架構(gòu)是否滿足性能要求,這個要求不是用戶提出來的,也不是直接用戶體驗的,而是在架構(gòu)設計過程中要確定的指標。n2、性能調(diào)優(yōu)n在系統(tǒng)開發(fā)過程中,通過性能測試,了解當前系統(tǒng)瓶頸(比如說在于數(shù)據(jù)庫訪問,SQL語句或者存儲過程寫的不夠好,或者說數(shù)據(jù)庫設計的問題,索引做的不夠好),所選擇的應用服務器有問題,或者說代碼這一層,業(yè)務邏輯實現(xiàn)的不夠好,導致它性能的缺陷。以確定問題出現(xiàn)在應用層,數(shù)據(jù)庫層,代
12、碼層。實施階段n將影響性能的因素按照以下順序進行判斷:n1、網(wǎng)絡狀況n2、硬件設備n3、系統(tǒng)/應用服務器/數(shù)據(jù)庫配置n4、數(shù)據(jù)庫設計和數(shù)據(jù)庫訪問實現(xiàn)(SQL)n5、業(yè)務的程序?qū)崿F(xiàn)n但是在開發(fā)階段做性能調(diào)優(yōu)時關(guān)注的順序:請更多的關(guān)注SQL一級和代碼一級。n若是對于一個實際在線上運行的系統(tǒng),請直接按照以上5點的順序。n注:很多的性能問題,是由于應用服務器的配置完全不合理,比如:注:很多的性能問題,是由于應用服務器的配置完全不合理,比如:tomcat4.1的應用服務器,沒有修改它的配置文件中缺省的的應用服務器,沒有修改它的配置文件中缺省的jvm的使的使用空間。用空間。各階段所要進行的性能測試n設計階
13、段的性能測試n在設計階段的性能測試主要的目的是驗證你的架構(gòu)。驗證的方式有兩種:n1、在對于系統(tǒng)架構(gòu)有一個預期的性能目標的情況下,去驗證當前架構(gòu)能否滿足預期的性能目標。n2、系統(tǒng)架構(gòu)是基于以前的架構(gòu)修改過來的,對于兩者進行一個對比測試,了解兩種架構(gòu)各有什么優(yōu)勢。n實施階段的性能測試n在實施階段進行性能測試的目的是為了階段性的驗證系統(tǒng)性能,進行性能調(diào)優(yōu),并通過系統(tǒng)調(diào)優(yōu)發(fā)現(xiàn)系統(tǒng)缺陷。n產(chǎn)品部署階段的性能測試n在產(chǎn)品部署階段,將性能測試作為驗收測試的一部分。n維護階段的性能測試n在維護階段考察系統(tǒng)的可擴充性/定位系統(tǒng)缺陷,考察系統(tǒng)的可擴充性用來定位系統(tǒng)的缺陷。系統(tǒng)穩(wěn)定性的度量n為了驗證系統(tǒng)的穩(wěn)定性,我
14、們需要對系統(tǒng)進行一個可靠性度量,在目前沒有一個行業(yè)或者國際標準進行可靠性度量的前提下,我們又無法獲得確切的用戶需求(用戶提不出系統(tǒng)穩(wě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)進行一個長時間的運行,觀察它的可用內(nèi)存,cpu使用率有無顯著的變化,如果在長時間使用的情況下,cpu,內(nèi)存無顯著變化,則可以認為系統(tǒng)具有穩(wěn)定性。性能測試的基本概念n1、響應時間、響應時間:客戶端從發(fā)送請求的那一刻起到收到應用程序響應的最后一個字節(jié)時止而不
15、得不等待的時間長度。n2、點擊數(shù):、點擊數(shù): 對每一個對象的請求,比如說:一個頁面有五個部分組成,一個框架,四張圖片,這樣算做5個點擊數(shù)。n3、頁面請求:、頁面請求: 請求了一個頁面,不管這個頁面包括了多少對象。n4、吞吐量:、吞吐量:ni)按照流量來計算的吞吐量,用來衡量網(wǎng)絡狀況或者應用服務器的處理能力,在指定的時間內(nèi),每秒鐘字節(jié)的出入.ii)用點擊數(shù)來衡量吞吐量,每個固定的時間段內(nèi)有多少點擊數(shù),用于銀行系統(tǒng)。n5、并發(fā)用戶、并發(fā)用戶:從業(yè)務上的并發(fā):200人同時在線。從服務器上的并發(fā):200人同時向服務器發(fā)出請求。200人同時做一個提交的操作,服務器接受到多少請求。n6、資源利用率、資源利
16、用率:cpu利用率,內(nèi)存利用率,磁盤I/O狀況等在性能測試中需要注意的問題n1、環(huán)境設計的問題n2、其他需要注意的地方環(huán)境設計的問題n1、網(wǎng)絡環(huán)境n2、軟硬件環(huán)境n3、環(huán)境的維護方案n4、時間同步問題n5、“鏡像”環(huán)境n時間同步問題:各種服務器部署在不同的機器上,在進行性能測試分析響應時間的時候就需要進行時間同步,通過日志來對比時間,但日志上記錄的是本地時間,讓日志記錄的時間有可比性,需要做時間同步。n同步的方法:在UNIX操作系統(tǒng)上用NTP協(xié)議可以做時間同步,在windows系統(tǒng)上可以通過加入域來時間同步,n“鏡像”環(huán)境的問題:做能力驗證的測試的時候,一般要求在現(xiàn)場做,因為這種測試結(jié)果和應用
17、服務器網(wǎng)絡環(huán)境本身會有很大的關(guān)系,如果不能做現(xiàn)場測試,n采用的兩個解決辦法:ni)盡可能的模擬出用戶環(huán)境:包括網(wǎng)絡狀況,服務器狀況,nii)和用戶去協(xié)商:去做現(xiàn)場測試。其他需要注意的地方n1、應用服務器的、應用服務器的Warm up問題問題nJ2ee應用或者.net應用現(xiàn)在都會涉及本地編譯的過程,在第一次做運行的時候,在第一次訪問的時候速度會很慢,第二次訪問才會快起來,因為從本地Cache中讀取信息,所以在應用服務器重啟了以后,都必須多測幾次,等服務器Warmup后再測試,否則的話,前面的結(jié)果沒有有效性。整個的結(jié)果還會有誤差。n2、應用服務器的、應用服務器的Cachen在多次測試的過程中,把C
18、ache功能給去掉,或者把cache給清空。n3、瀏覽器或客戶端應用的、瀏覽器或客戶端應用的Cachen客戶端和瀏覽器的cache在錄制腳本的時候都應該去掉。確定最小用戶負載n確定最小用戶負載的目的n為了全面掌握應用程序的性能不僅是重壓條件下,而且是在更為理想的條件下。這是很重要的,因為應用程序通常將大部分的時間花費在這些低負載條件下。峰值操作通常很少發(fā)生。n確定最小用戶負載的方法n從需求上解決,了解業(yè)務分布情況,將業(yè)務分布情況劃分成不同的場景,確定一個負載使用狀況最小的場景。執(zhí)行此場景,觀察系統(tǒng)在此場景下的運行狀況。性能測試的兩個基本類別 n預備測試n預備測試:最初的試探性測試,讓我們能夠感
19、受一下應用程序的性能并優(yōu)化測試環(huán)境。n正式測試n有四個正式的性能測度,我們的分析就建立在這些測度上??梢詫⑦@些正式測試按照類型分成如下幾個子類:單實例壓力測試、持久測試、體系結(jié)構(gòu)測試一旦按照初步測試結(jié)果設置好了環(huán)境和測試參數(shù)(測試腳本、思考時間、采樣方法等等),這些因素就必須對任何特定的性能測試都保持不變。如果在某個特定的性能測試中修改任何參數(shù),那么我們就破壞了結(jié)果的可比較性,將不得不重新執(zhí)行測試。性能測試生存周期n規(guī)劃性能分析n創(chuàng)建有效的壓力腳本n執(zhí)行壓力測試n分析性能測試數(shù)據(jù)來確定和解決性能瓶頸n規(guī)劃性能分析規(guī)劃性能分析階段的工作包括收集重要的原始數(shù)據(jù),然后根據(jù)這些信息制訂測試方案。規(guī)劃階段收集到的信息至少應該描述兩個方面的內(nèi)容:用來復制一個接近生產(chǎn)環(huán)境的測試環(huán)境的細節(jié)。對該應用程序的使用方式的理解,以及臨界性能表現(xiàn)的跡象等。這些信息可以來源于市場預測報告、站點的WEB日志、站點的性能日志和站點功能說明等。n創(chuàng)建高效的壓力測試腳本創(chuàng)建高效的壓力測試腳本 在收集了所需信息并搭建了測試環(huán)境后,下一步就是創(chuàng)建測試腳本,它應該能夠準確地模擬站點期望地流量。最有效地方式是根據(jù)實況網(wǎng)站中的歷
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度銀行卡跨境支付清算服務合作協(xié)議
- 2025年度智能城市建設顧問聘用合同
- 2025年度房地產(chǎn)項目質(zhì)押貸款合同模板
- 2025年度石材行業(yè)專利申請與保護合同
- 二零二五年度股東退股協(xié)議書:XX電商公司合伙人股權(quán)退出及退股合同
- 2021年中國人口發(fā)展現(xiàn)狀與趨勢分析報告-20211107131719
- 觀看紅色革命電影的個人觀后感800字5篇
- 2025年影視編劇合同
- 2025年膠木模項目投資可行性研究分析報告
- 2025年中國鎖陽行業(yè)投資研究分析及發(fā)展前景預測報告
- 新能源電站單位千瓦造價標準值(2024版)
- 高中語文:選擇性必修中冊第三單元拓展閱讀
- 耳穴壓豆課件
- 2023年江蘇省南京市中考化學真題(原卷版)
- 2023年湖北省襄陽市中考數(shù)學真題(原卷版)
- 變電站現(xiàn)場運行通用規(guī)程考試試題及答案
- 湖南高速鐵路職業(yè)技術(shù)學院單招職業(yè)技能測試參考試題庫(含答案)
- 中醫(yī)護理查房制度
- 母嬰護理員題庫
- 老年人預防及控制養(yǎng)老機構(gòu)院內(nèi)感染院內(nèi)感染基本知識
- SWITCH暗黑破壞神3超級金手指修改 版本號:2.7.6.90885
評論
0/150
提交評論