性能測試調(diào)研報告_第1頁
性能測試調(diào)研報告_第2頁
性能測試調(diào)研報告_第3頁
性能測試調(diào)研報告_第4頁
性能測試調(diào)研報告_第5頁
已閱讀5頁,還剩43頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

性能測試調(diào)研匯報1概述性能測試是通過自動化的測試工具模擬多種正常、峰值以及異常負(fù)載條件來對系統(tǒng)的各項性能指標(biāo)進(jìn)行測試。負(fù)載測試和壓力測試都屬于性能測試,兩者可以結(jié)合進(jìn)行。通過負(fù)載測試,確定在多種工作負(fù)載下系統(tǒng)的性能,目的是測試當(dāng)負(fù)載逐漸增長時,系統(tǒng)各項性能指標(biāo)的變化狀況。壓力測試是通過確定一種系統(tǒng)的瓶頸或者不能接受的性能點,來獲得系統(tǒng)能提供的最大服務(wù)級別的測試。性能測試在軟件的質(zhì)量保證中起著重要的作用,它包括的測試內(nèi)容豐富多樣。中國軟件評測中心將性能測試概括為三個方面:應(yīng)用在客戶端性能的測試、應(yīng)用在網(wǎng)絡(luò)上性能的測試和應(yīng)用在服務(wù)器端性能的測試。一般狀況下,三方面有效、合理的結(jié)合,可以到達(dá)對系統(tǒng)性能全面的分析和瓶頸的預(yù)測。1.1應(yīng)用在客戶端上性能的測試應(yīng)用在客戶端性能測試的目的是考察客戶端應(yīng)用的性能,測試的入口是客戶端。它重要包括并發(fā)性能測試、疲勞強(qiáng)度測試、大數(shù)據(jù)量測試和速度測試等,其中并發(fā)性能測試是重點。并發(fā)性能測試是重點并發(fā)性能測試的過程是一種負(fù)載測試和壓力測試的過程,即逐漸增長負(fù)載,直到系統(tǒng)的瓶頸或者不能接受的性能點,通過綜合分析交易執(zhí)行指標(biāo)和資源監(jiān)控指標(biāo)來確定系統(tǒng)并發(fā)性能的過程。負(fù)載測試(LoadTesting)是確定在多種工作負(fù)載下系統(tǒng)的性能,目的是測試當(dāng)負(fù)載逐漸增長時,系統(tǒng)構(gòu)成部分的對應(yīng)輸出項,例如通過量、響應(yīng)時間、CPU負(fù)載、內(nèi)存使用等來決定系統(tǒng)的性能。負(fù)載測試是一種分析軟件應(yīng)用程序和支撐架構(gòu)、模擬真實環(huán)境的使用,從而來確定可以接受的性能過程。壓力測試(StressTesting)是通過確定一種系統(tǒng)的瓶頸或者不能接受的性能點,來獲得系統(tǒng)能提供的最大服務(wù)級別的測試。并發(fā)性能測試的目的重要體目前三個方面:以真實的業(yè)務(wù)為根據(jù),選擇有代表性的、關(guān)鍵的業(yè)務(wù)操作設(shè)計測試案例,以評價系統(tǒng)的目前性能;當(dāng)擴(kuò)展應(yīng)用程序的功能或者新的應(yīng)用程序?qū)⒁徊际饡r,負(fù)載測試會協(xié)助確定系統(tǒng)與否還可以處理期望的顧客負(fù)載,以預(yù)測系統(tǒng)的未來性能;通過模擬成百上千個顧客,反復(fù)執(zhí)行和運行測試,可以確認(rèn)性能瓶頸并優(yōu)化和調(diào)整應(yīng)用,目的在于尋找到瓶頸問題。測試的基本方略是自動負(fù)載測試,通過在一臺或幾臺PC機(jī)上模擬成百或上千的虛擬顧客同步執(zhí)行業(yè)務(wù)的情景,對應(yīng)用程序進(jìn)行測試,同步記錄下每一事務(wù)處理的時間、中間件服務(wù)器峰值數(shù)據(jù)、數(shù)據(jù)庫狀態(tài)等。通過可反復(fù)的、真實的測試可以徹底地度量應(yīng)用的可擴(kuò)展性和性能,確定問題所在以及優(yōu)化系統(tǒng)性能。預(yù)先懂得了系統(tǒng)的承受力,就為最終顧客規(guī)劃整個運行環(huán)境的配置提供了有力的根據(jù)。并發(fā)性能測試前的準(zhǔn)備工作測試環(huán)境:配置測試環(huán)境是測試實行的一種重要階段,測試環(huán)境的適合與否會嚴(yán)重影響測試成果的真實性和對的性。測試環(huán)境包括硬件環(huán)境和軟件環(huán)境,硬件環(huán)境指測試必需的服務(wù)器、客戶端、網(wǎng)絡(luò)連接設(shè)備以及打印機(jī)/掃描儀等輔助硬件設(shè)備所構(gòu)成的環(huán)境;軟件環(huán)境指被測軟件運行時的操作系統(tǒng)、數(shù)據(jù)庫及其他應(yīng)用軟件構(gòu)成的環(huán)境。一種充足準(zhǔn)備好的測試環(huán)境有三個長處:一種穩(wěn)定、可反復(fù)的測試環(huán)境,可以保證測試成果的對的;保證到達(dá)測試執(zhí)行的技術(shù)需求;保證得到對的的、可反復(fù)的以及易理解的測試成果。測試工具:并發(fā)性能測試是在客戶端執(zhí)行的黑盒測試,一般不采用手工方式,而是運用工具采用自動化方式進(jìn)行。目前,成熟的并發(fā)性能測試工具有諸多,選擇的根據(jù)重要是測試需求和性能價格比。著名的并發(fā)性能測試工具有QALoad、LoadRunner、BenchmarkFactory和Webstress等。這些測試工具都是自動化負(fù)載測試工具,通過可反復(fù)的、真實的測試,可以徹底地度量應(yīng)用的可擴(kuò)展性和性能,可以在整個開發(fā)生命周期、跨越多種平臺、自動執(zhí)行測試任務(wù),可以模擬成百上千的顧客并發(fā)執(zhí)行關(guān)鍵業(yè)務(wù)而完畢對應(yīng)用程序的測試。測試數(shù)據(jù):在初始的測試環(huán)境中需要輸入某些合適的測試數(shù)據(jù),目的是識別數(shù)據(jù)狀態(tài)并且驗證用于測試的測試案例,在正式的測試開始此前對測試案例進(jìn)行調(diào)試,將正式測試開始時的錯誤降到最低。在測試進(jìn)行到關(guān)鍵過程環(huán)節(jié)時,非常有必要進(jìn)行數(shù)據(jù)狀態(tài)的備份。制造初始數(shù)據(jù)意味著將合適的數(shù)據(jù)存儲下來,需要的時候恢復(fù)它,初始數(shù)據(jù)提供了一種基線用來評估測試執(zhí)行的成果。在測試正式執(zhí)行時,還需要準(zhǔn)備業(yè)務(wù)測試數(shù)據(jù),例如測試并發(fā)查詢業(yè)務(wù),那么規(guī)定對應(yīng)的數(shù)據(jù)庫和表中有相稱的數(shù)據(jù)量以及數(shù)據(jù)的種類應(yīng)能覆蓋所有業(yè)務(wù)。模擬真實環(huán)境測試,有些軟件,尤其是面向大眾的商品化軟件,在測試時常常需要考察在真實環(huán)境中的體現(xiàn)。如測試殺毒軟件的掃描速度時,硬盤上布置的不一樣類型文獻(xiàn)的比例要盡量靠近真實環(huán)境,這樣測試出來的數(shù)據(jù)才有實際意義。并發(fā)性能測試的種類與指標(biāo)并發(fā)性能測試的種類取決于并發(fā)性能測試工具監(jiān)控的對象,以QALoad自動化負(fù)載測試工具為例。軟件針對多種測試目的提供了DB2、DCOM、ODBC、ORACLE、NETLoad、Corba、QARun、SAP、SQLServer、Sybase、Telnet、TUXEDO、UNIFACE、WinSock、WWW、JavaScript等不一樣的監(jiān)控對象,支持Windows和UNIX測試環(huán)境。最關(guān)鍵的仍然是測試過程中對監(jiān)控對象的靈活應(yīng)用,例如目前三層構(gòu)造的運行模式廣泛使用,對中間件的并發(fā)性能測試作為問題被提到議事日程上來,許多系統(tǒng)都采用了國產(chǎn)中間件,選擇JavaScript監(jiān)控對象,手工編寫腳本,可以到達(dá)測試目的。采用自動化負(fù)載測試工具執(zhí)行的并發(fā)性能測試,基本遵照的測試過程有:測試需求與測試內(nèi)容,測試案例制定,測試環(huán)境準(zhǔn)備,測試腳本錄制、編寫與調(diào)試,腳本分派、回放配置與加載方略,測試執(zhí)行跟蹤,成果分析與定位問題所在,測試匯報與測試評估。并發(fā)性能測試監(jiān)控的對象不一樣,測試的重要指標(biāo)也不相似,重要的測試指標(biāo)包括交易處理性能指標(biāo)和UNIX資源監(jiān)控。其中,交易處理性能指標(biāo)包括交易成果、每分鐘交易數(shù)、交易響應(yīng)時間(Min:最小服務(wù)器響應(yīng)時間;Mean:平均服務(wù)器響應(yīng)時間;Max:最大服務(wù)器響應(yīng)時間;StdDev:事務(wù)處理服務(wù)器響應(yīng)的偏差,值越大,偏差越大;Median:中值響應(yīng)時間;90%:90%事務(wù)處理的服務(wù)器響應(yīng)時間)、虛擬并發(fā)顧客數(shù)。疲勞強(qiáng)度與大數(shù)據(jù)量測試疲勞測試是采用系統(tǒng)穩(wěn)定運行狀況下可以支持的最大并發(fā)顧客數(shù),持續(xù)執(zhí)行一段時間業(yè)務(wù),通過綜合分析交易執(zhí)行指標(biāo)和資源監(jiān)控指標(biāo)來確定系統(tǒng)處理最大工作量強(qiáng)度性能的過程。疲勞強(qiáng)度測試可以采用工具自動化的方式進(jìn)行測試,也可以手工編寫程序測試,其中后者占的比例較大。一般狀況下以服務(wù)器可以正常穩(wěn)定響應(yīng)祈求的最大并發(fā)顧客數(shù)進(jìn)行一定期間的疲勞測試,獲取交易執(zhí)行指標(biāo)數(shù)據(jù)和系統(tǒng)資源監(jiān)控數(shù)據(jù)。如出現(xiàn)錯誤導(dǎo)致測試不能成功執(zhí)行,則及時調(diào)整測試指標(biāo),例如減少顧客數(shù)、縮短測試周期等。尚有一種狀況的疲勞測試是對目前系統(tǒng)性能的評估,用系統(tǒng)正常業(yè)務(wù)狀況下并發(fā)顧客數(shù)為基礎(chǔ),進(jìn)行一定期間的疲勞測試。大數(shù)據(jù)量測試可以分為兩種類型:針對某些系統(tǒng)存儲、傳播、記錄、查詢等業(yè)務(wù)進(jìn)行大數(shù)據(jù)量的獨立數(shù)據(jù)量測試;與壓力性能測試、負(fù)載性能測試、疲勞性能測試相結(jié)合的綜合數(shù)據(jù)量測試方案。大數(shù)據(jù)量測試的關(guān)鍵是測試數(shù)據(jù)的準(zhǔn)備,可以依托工具準(zhǔn)備測試數(shù)據(jù)。速度測試目前重要是針對關(guān)鍵有速度規(guī)定的業(yè)務(wù)進(jìn)行手工測速度,可以在多次測試的基礎(chǔ)上求平均值,可以和工具測得的響應(yīng)時間等指標(biāo)做對比分析。1.2應(yīng)用在網(wǎng)絡(luò)上性能的測試應(yīng)用在網(wǎng)絡(luò)上性能的測試重點是運用成熟先進(jìn)的自動化技術(shù)進(jìn)行網(wǎng)絡(luò)應(yīng)用性能監(jiān)控、網(wǎng)絡(luò)應(yīng)用性能分析和網(wǎng)絡(luò)預(yù)測。網(wǎng)絡(luò)應(yīng)用性能分析網(wǎng)絡(luò)應(yīng)用性能分析的目的是精確展示網(wǎng)絡(luò)帶寬、延遲、負(fù)載和TCP端口的變化是怎樣影響顧客的響應(yīng)時間的。運用網(wǎng)絡(luò)應(yīng)用性能分析工具,例如ApplicationExpert,可以發(fā)現(xiàn)應(yīng)用的瓶頸,我們可知應(yīng)用在網(wǎng)絡(luò)上運行時在每個階段發(fā)生的應(yīng)用行為,在應(yīng)用線程級分析應(yīng)用的問題。可以處理多種問題:客戶端與否對數(shù)據(jù)庫服務(wù)器運行了不必要的祈求?當(dāng)服務(wù)器從客戶端接受了一種查詢,應(yīng)用服務(wù)器與否花費了不可接受的時間聯(lián)絡(luò)數(shù)據(jù)庫服務(wù)器?在投產(chǎn)前預(yù)測應(yīng)用的響應(yīng)時間;運用ApplicationExpert調(diào)整應(yīng)用在廣域網(wǎng)上的性能;ApplicationExpert可以讓你迅速、輕易地仿真應(yīng)用性能,根據(jù)最終顧客在不一樣網(wǎng)絡(luò)配置環(huán)境下的響應(yīng)時間,顧客可以根據(jù)自己的條件決定應(yīng)用投產(chǎn)的網(wǎng)絡(luò)環(huán)境。網(wǎng)絡(luò)應(yīng)用性能監(jiān)控在系統(tǒng)試運行之后,需要及時精確地理解網(wǎng)絡(luò)上正在發(fā)生什么事情;什么應(yīng)用在運行,怎樣運行;多少PC正在訪問LAN或WAN;哪些應(yīng)用程序?qū)е孪到y(tǒng)瓶頸或資源競爭,這時網(wǎng)絡(luò)應(yīng)用性能監(jiān)控以及網(wǎng)絡(luò)資源管理對系統(tǒng)的正常穩(wěn)定運行是非常關(guān)鍵的。運用網(wǎng)絡(luò)應(yīng)用性能監(jiān)控工具,可以到達(dá)事半功倍的效果,在這方面我們可以提供的工具是NetworkVantage。通俗地講,它重要用來分析關(guān)鍵應(yīng)用程序的性能,定位問題的本源是在客戶端、服務(wù)器、應(yīng)用程序還是網(wǎng)絡(luò)。在大多數(shù)狀況下顧客較關(guān)懷的問題尚有哪些應(yīng)用程序占用大量帶寬,哪些顧客產(chǎn)生了最大的網(wǎng)絡(luò)流量,這個工具同樣能滿足規(guī)定。網(wǎng)絡(luò)預(yù)測考慮到系統(tǒng)未來發(fā)展的擴(kuò)展性,預(yù)測網(wǎng)絡(luò)流量的變化、網(wǎng)絡(luò)構(gòu)造的變化對顧客系統(tǒng)的影響非常重要。根據(jù)規(guī)劃數(shù)據(jù)進(jìn)行預(yù)測并及時提供網(wǎng)絡(luò)性能預(yù)測數(shù)據(jù)。我們運用網(wǎng)絡(luò)預(yù)測分析容量規(guī)劃工具PREDICTOR可以作到:設(shè)置服務(wù)水平、完畢日網(wǎng)絡(luò)容量規(guī)劃、離線測試網(wǎng)絡(luò)、網(wǎng)絡(luò)失效和容量極限分析、完畢平常故障診斷、預(yù)測網(wǎng)絡(luò)設(shè)備遷移和網(wǎng)絡(luò)設(shè)備升級對整個網(wǎng)絡(luò)的影響。從網(wǎng)絡(luò)管理軟件獲取網(wǎng)絡(luò)拓?fù)錁?gòu)造、從既有的流量監(jiān)控軟件獲取流量信息(若沒有此類軟件可人工生成流量數(shù)據(jù)),這樣可以得到既有網(wǎng)絡(luò)的基本構(gòu)造。在基本構(gòu)造的基礎(chǔ)上,可根據(jù)網(wǎng)絡(luò)構(gòu)造的變化、網(wǎng)絡(luò)流量的變化生成匯報和圖表,闡明這些變化是怎樣影響網(wǎng)絡(luò)性能的。PREDICTOR提供如下信息:根據(jù)預(yù)測的成果協(xié)助顧客及時升級網(wǎng)絡(luò),防止因關(guān)鍵設(shè)備超過運用閥值導(dǎo)致系統(tǒng)性能下降;哪個網(wǎng)絡(luò)設(shè)備需要升級,這樣可減少網(wǎng)絡(luò)延遲、防止網(wǎng)絡(luò)瓶頸;根據(jù)預(yù)測的成果防止不必要的網(wǎng)絡(luò)升級。1.3應(yīng)用在服務(wù)器上性能的測試對于應(yīng)用在服務(wù)器上性能的測試,可以采用工具監(jiān)控,也可以使用系統(tǒng)自身的監(jiān)控命令,例如Tuxedo中可以使用Top命令監(jiān)控資源使用狀況。實行測試的目的是實現(xiàn)服務(wù)器設(shè)備、服務(wù)器操作系統(tǒng)、數(shù)據(jù)庫系統(tǒng)、應(yīng)用在服務(wù)器上性能的全面監(jiān)控,測試原理如下。UNIX資源監(jiān)控指標(biāo)和描述監(jiān)控指標(biāo)描述平均負(fù)載系統(tǒng)正常狀態(tài)下,最終60秒同步進(jìn)程的平均個數(shù)沖突率在以太網(wǎng)上監(jiān)測到的每秒沖突數(shù)進(jìn)程/線程互換率進(jìn)程和線程之間每秒互換次數(shù)CPU運用率CPU占用率(%)磁盤互換率磁盤互換速率接受包錯誤率接受以太網(wǎng)數(shù)據(jù)包時每秒錯誤數(shù)包輸入率每秒輸入的以太網(wǎng)數(shù)據(jù)包數(shù)目中斷速率CPU每秒處理的中斷數(shù)輸出包錯誤率發(fā)送以太網(wǎng)數(shù)據(jù)包時每秒錯誤數(shù)包輸出率每秒輸出的以太網(wǎng)數(shù)據(jù)包數(shù)目讀入內(nèi)存頁速率物理內(nèi)存中每秒讀入內(nèi)存頁的數(shù)目寫出內(nèi)存頁速率每秒從物理內(nèi)存中寫到頁文獻(xiàn)中的內(nèi)存頁數(shù)目或者從物理內(nèi)存中刪掉的內(nèi)存頁數(shù)目內(nèi)存頁互換速率每秒寫入內(nèi)存頁和從物理內(nèi)存中讀出頁的個數(shù)進(jìn)程入互換率互換區(qū)輸入的進(jìn)程數(shù)目進(jìn)程出互換率互換區(qū)輸出的進(jìn)程數(shù)目系統(tǒng)CPU運用率系統(tǒng)的CPU占用率(%)顧客CPU運用率顧客模式下的CPU占用率(%)磁盤阻塞磁盤每秒阻塞的字節(jié)數(shù)2為何進(jìn)行性能測試?目的是驗證軟件系統(tǒng)與否可以到達(dá)顧客提出的性能指標(biāo),同步發(fā)現(xiàn)軟件系統(tǒng)中存在的性能瓶頸,優(yōu)化軟件,最終起到優(yōu)化系統(tǒng)的目的。2.1性能測試的目的(1).評估系統(tǒng)的能力:測試中得到的負(fù)荷和響應(yīng)時間數(shù)據(jù)可以被用于驗證所計劃的模型的能力,并協(xié)助作出決策。(2).識別體系中的弱點:受控的負(fù)荷可以被增長到一種極端的水平,并突破它,從而修復(fù)體系的瓶頸或微弱的地方。(3).系統(tǒng)調(diào)優(yōu):反復(fù)運行測試,驗證調(diào)整系統(tǒng)的活動得到了預(yù)期的成果,從而改善性能。(4).檢測軟件中的問題:長時間的測試執(zhí)行可導(dǎo)致程序發(fā)生由于內(nèi)存泄露引起的失敗,揭示程序中的隱含的問題或沖突。(5).驗證穩(wěn)定性(resilience)可靠性(reliability):在一種生產(chǎn)負(fù)荷下執(zhí)行測試一定的時間是評估系統(tǒng)穩(wěn)定性和可靠性與否滿足規(guī)定的唯一措施。2.2性能測試的類型性能測試類型包括負(fù)載測試,強(qiáng)度測試,容量測試等負(fù)載測試:Loadtesting(負(fù)載測試),通過測試系統(tǒng)在資源超負(fù)荷狀況下的體現(xiàn),以發(fā)現(xiàn)設(shè)計上的錯誤或驗證系統(tǒng)的負(fù)載能力。在這種測試中,將使測試對象承擔(dān)不一樣的工作量,以評測和評估測試對象在不一樣工作量條件下的性能行為,以及持續(xù)正常運行的能力。負(fù)載測試的目的是確定并保證系統(tǒng)在超過最大預(yù)期工作量的狀況下仍能正常運行。此外,負(fù)載測試還要評估性能特性,例如,響應(yīng)時間、事務(wù)處理速率和其他與時間有關(guān)的方面。強(qiáng)度測試:強(qiáng)度測試檢查程序?qū)Ξ惓顩r的抵御能力,是檢查系統(tǒng)在極限狀態(tài)下運行的時候性能下降的幅度與否在容許的范圍內(nèi)。強(qiáng)度測試總是迫使系統(tǒng)在異常的資源配置下運行。例如,①當(dāng)中斷的正常頻率為每秒一至兩個時,運行每秒產(chǎn)生十個中斷的測試用例;②定量地增長數(shù)據(jù)輸入率,檢查輸入子功能的反應(yīng)能力;③運行需要最大存儲空間(或其他資源)的測試用例;④運行也許導(dǎo)致虛存操作系統(tǒng)瓦解或磁盤數(shù)據(jù)劇烈抖動的測試用例,等等。容量測試:通過性能測試,假如找到了系統(tǒng)的極限或苛刻的環(huán)境中系統(tǒng)的性能體現(xiàn),在一定的程度上,就完畢了負(fù)載測試和容量測試。容量還可以看作系統(tǒng)性能指標(biāo)中一種特定環(huán)境下的一種特定性能指標(biāo),即設(shè)定的界線或極限值。容量測試的目的是通過測試預(yù)先分析出反應(yīng)軟件系統(tǒng)應(yīng)用特性的某項指標(biāo)的極限值(如最大并發(fā)顧客數(shù)、數(shù)據(jù)庫記錄數(shù)等),系統(tǒng)在其極限狀態(tài)下沒有出現(xiàn)任何軟件故障或還能保持重要功能正常運行。容量測試還將確定測試對象在給定期間內(nèi)可以持續(xù)處理的最大負(fù)載或工作量。軟件容量的測試能讓軟件開發(fā)商或顧客理解該軟件系統(tǒng)的承載能力或提供服務(wù)的能力,如某個電子商務(wù)網(wǎng)站所能承受的、同步進(jìn)行交易或結(jié)算的在線顧客數(shù)。懂得了系統(tǒng)的實際容量,如是不能滿足設(shè)計規(guī)定,就應(yīng)當(dāng)尋求新的技術(shù)處理方案,以提高系統(tǒng)的容量。有了對軟件負(fù)載的精確預(yù)測,不僅能對軟件系統(tǒng)在實際使用中的性能狀況充斥信心,同步也可以協(xié)助顧客經(jīng)濟(jì)地規(guī)劃應(yīng)用系統(tǒng),優(yōu)化系統(tǒng)的布署。觀測指標(biāo):性能測試重要是通過自動化的測試工具模擬多種正常、峰值以及異常負(fù)載條件來對系統(tǒng)的各項性能指標(biāo)進(jìn)行測試。負(fù)載測試和壓力測試都屬于性能測試,兩者可以結(jié)合進(jìn)行。通過負(fù)載測試,確定在多種工作負(fù)載下系統(tǒng)的性能,目的是測試當(dāng)負(fù)載逐漸增長時,系統(tǒng)各項性能指標(biāo)的變化狀況。壓力測試是通過確定一種系統(tǒng)的瓶頸或者不能接受的性能點,來獲得系統(tǒng)能提供的最大服務(wù)級別的測試。在實際中作中我們常常會對兩種類型軟件進(jìn)行測試:bs和cs,這兩方面的性能指標(biāo)一般需要哪些內(nèi)容呢?BS構(gòu)造程序一般會關(guān)注的通用指標(biāo)如下(簡):Web服務(wù)器指標(biāo):*AvgRps:平均每秒鐘響應(yīng)次數(shù)=總祈求時間/秒數(shù);*Avgtimetolastbyteperterstion(mstes):平均每秒業(yè)務(wù)角本的迭代次數(shù),有人會把這兩者混淆;*SuccessfulRounds:成功的祈求;*FailedRounds:失敗的祈求;*SuccessfulHits:成功的點擊次數(shù);*FailedHits:失敗的點擊次數(shù);*HitsPerSecond:每秒點擊次數(shù);*SuccessfulHitsPerSecond:每秒成功的點擊次數(shù);*FailedHitsPerSecond:每秒失敗的點擊次數(shù);*AttemptedConnections:嘗試鏈接數(shù);CS構(gòu)造程序,由于一般軟件后臺一般為數(shù)據(jù)庫,因此我們更重視數(shù)據(jù)庫的測試指標(biāo):*User0Connections:顧客連接數(shù),也就是數(shù)據(jù)庫的連接數(shù)量;*Numberofdeadlocks:數(shù)據(jù)庫死鎖;*ButterCachehit:數(shù)據(jù)庫Cache的命中狀況當(dāng)然,在實際中我們還會察看多顧客測試狀況下的內(nèi)存,CPU,系統(tǒng)資源調(diào)用狀況。這些指標(biāo)其實是引申出來性能測試中的一種:競爭測試。什么是競爭測試,軟件競爭使用多種資源(數(shù)據(jù)紀(jì)錄,內(nèi)存等),看他與其他有關(guān)系統(tǒng)對資源的爭奪能力。我們懂得軟件架構(gòu)在實際測試中制約著測試方略和工具的選擇。怎樣選擇性能測試方略是我們在實際工作中需要理解的。一般軟件可以按照系統(tǒng)架構(gòu)提成幾種類型:c/sclient/Server客戶端/服務(wù)器架構(gòu)基于客戶端/服務(wù)器的三層架構(gòu)基于客戶端/服務(wù)器的分布式架構(gòu)b/s基于瀏覽器/Web服務(wù)器的三層架構(gòu)基于中間件應(yīng)用服務(wù)器的三層架構(gòu)基于Web服務(wù)器和中間件的多層架構(gòu)3性能測試的環(huán)節(jié)在每種不一樣的系統(tǒng)架構(gòu)的實行中,開發(fā)人員也許選擇不一樣的實現(xiàn)方式,導(dǎo)致實際狀況紛繁復(fù)雜。我們不也許對每種技術(shù)都詳細(xì)講解,這里只是簡介一種措施提供應(yīng)你怎樣選擇測試方略,從而協(xié)助分析軟件不一樣部分的性能指標(biāo),進(jìn)而分析出整體架構(gòu)的性能指標(biāo)和性能瓶頸。由于工程和項目的不一樣,所選用的度量,評估措施也有不一樣之處。不過仍然有某些通用的環(huán)節(jié)協(xié)助我們完畢一種性能測試項目。環(huán)節(jié)如下(1).制定目的和分析系統(tǒng)(2).選擇測試度量的措施(3).學(xué)習(xí)的有關(guān)技術(shù)和工具(4).制定評估原則(5).設(shè)計測試用例(6).運行測試用例(7).分析測試成果3.1制定目的和分析系統(tǒng)每一種性能測試計劃中第一步都會制定目的和分析系統(tǒng)構(gòu)成。只有明確目的和理解系統(tǒng)構(gòu)成才會澄清測試范圍,懂得在測試中要掌握什么樣的技術(shù)。目的:1.確定客戶需求和期望2.實際業(yè)務(wù)需求3.系統(tǒng)需求系統(tǒng)構(gòu)成系統(tǒng)構(gòu)成這里包括幾方面含義:系統(tǒng)類別,系統(tǒng)構(gòu)成,系統(tǒng)功能等。理解這些內(nèi)容的本質(zhì)其實是協(xié)助我們明確測試的范圍,選者合適的測試措施來進(jìn)行測試。系統(tǒng)類別:分清系統(tǒng)類別是我們掌握什么樣的技術(shù)的前提,掌握對應(yīng)技術(shù)做性能測試才也許成功。例如:系統(tǒng)類別是bs構(gòu)造,需要掌握http協(xié)議,java,html等技術(shù)?;蛘呤莄s構(gòu)造,也許要理解操作系統(tǒng),winsock,com等。因此甄別系統(tǒng)類別對于我們來說很重要。系統(tǒng)構(gòu)成:硬件設(shè)置,操作系統(tǒng)設(shè)置是性能測試的制約條件,一般性能測試都是運用測試工具模仿大量的實際顧客操作,系統(tǒng)在超負(fù)荷情形下運作。不一樣的系統(tǒng)構(gòu)成性能測試就會得到不一樣的成果。系統(tǒng)功能:系統(tǒng)功能指系統(tǒng)提供的不一樣子系統(tǒng),辦公管理系統(tǒng)中的公文子系統(tǒng),會議子系統(tǒng)等,系統(tǒng)功能是性能測試中要模擬的環(huán)節(jié),理解這些是必要的。3.2選擇測試度量的措施通過第一步,將會對系統(tǒng)有清醒的認(rèn)識。接下來我們將把精力放在軟件度量上,搜集系統(tǒng)有關(guān)的數(shù)據(jù)。度量的有關(guān)方面:*制定規(guī)范*制定有關(guān)流程,角色,職責(zé)*制定改善方略*制定成果對比原則3.3學(xué)習(xí)的有關(guān)技術(shù)和工具性能測試是通過工具,模擬大量顧客操作,對系統(tǒng)增長負(fù)載。因此需要掌握一定的工具知識才能進(jìn)行性能測試。大家都懂得性能測試工具一般通過winsock,http等協(xié)議紀(jì)錄顧客操作。而協(xié)議選擇是基于軟件的系統(tǒng)架構(gòu)實現(xiàn)(web一般選擇http協(xié)議,cs選擇winsock協(xié)議),不一樣的性能測試工具,腳本語言也不一樣,例如rationalrobot中vu腳本用類c語言實現(xiàn)。開展性能測試需要對多種性能測試工具進(jìn)行評估,由于每一種性能測試工具均有自身的特點,只有通過工具評估,才能選擇符合既有軟件架構(gòu)的性能測試工具。確定測試工具后,需要組織測試人員進(jìn)行工具的學(xué)習(xí),培訓(xùn)有關(guān)技術(shù)。3.4制定評估原則任何測試的目的都是保證軟件符合預(yù)先規(guī)定的目的和規(guī)定。性能測試也不例外。因此必須制定一套原則。一般性能測試有四種模型技術(shù)可用于評估:*線性投射:用大量的過去的,擴(kuò)展的或者未來也許發(fā)生的數(shù)據(jù)構(gòu)成散布圖,運用這個圖表不停和系統(tǒng)的目前狀況對比。*分析模型:用排隊論公式和算法預(yù)測響應(yīng)時間,運用描述工作量的數(shù)據(jù)和系統(tǒng)本質(zhì)關(guān)聯(lián)起來*模仿:模仿實際顧客的使用措施測試你的系統(tǒng)*基準(zhǔn):定義測試和你最初的測試作為原則,運用它和所有后來進(jìn)行的測試成果進(jìn)行對比3.5設(shè)計測試用例設(shè)計測試用例是在理解軟件業(yè)務(wù)流程的基礎(chǔ)上。設(shè)計測試用例的原則是受最小的影響提供最多的測試信息,設(shè)計測試用例的目的是一次盡量的包括多種測試要素。這些測試用例必須是測試工具可以實現(xiàn)的,不一樣的測試場景將測試不一樣的功能。由于性能測試不一樣于平時的測試用例,盡量把性能測試用例設(shè)計的復(fù)雜,才有也許發(fā)現(xiàn)軟件的性能瓶頸。3.6運行測試用例通過性能測試工具運行測試用例。同一環(huán)境下作的性能測試得到的測試成果是不精確的,因此在運行這些測試用例的時候,需要用不一樣的測試環(huán)境,不一樣的機(jī)器配置上運行。3.7分析測試成果運行測試用例后,搜集有關(guān)信息,進(jìn)行數(shù)據(jù)記錄分析,找到性能瓶頸。通過排除誤差和其他原因,讓測試成果體現(xiàn)靠近真實狀況。不一樣的體系構(gòu)造分析測試成果的措施也不一樣,bs構(gòu)造我們會分析網(wǎng)絡(luò)帶寬,流量對顧客操作響應(yīng)的影響,而cs構(gòu)造我們也許更關(guān)懷系統(tǒng)整體配置會對顧客操作的影響。4性能測試措施對于企業(yè)應(yīng)用程序,有許多進(jìn)行性能測試的措施,其中某些措施實行起來要比其他措施困難。所要進(jìn)行的性能測試的類型取決于想要到達(dá)的成果。例如,對于可再現(xiàn)性,基準(zhǔn)測試是最佳的措施。而要從目前顧客負(fù)載的角度測試系統(tǒng)的上限,則應(yīng)當(dāng)使用容量規(guī)劃測試。本文將簡介幾種設(shè)置和運行性能測試的措施,并討論這些措施的區(qū)別。假如不進(jìn)行合理的規(guī)劃,對J2EE應(yīng)用程序進(jìn)行性能測試將會是一項令人望而生畏且有些混亂的任務(wù)。由于對于任何的軟件開發(fā)流程,都必須搜集需求、理解業(yè)務(wù)需要,并在進(jìn)行實際測試之前設(shè)計出正式的進(jìn)度表。性能測試的需求由業(yè)務(wù)需要驅(qū)動,并由一組用例闡明。這些用例可以基于歷史數(shù)據(jù)(例如,服務(wù)器一周的負(fù)載模式)或預(yù)測的近似值。弄清晰需要測試的內(nèi)容之后,就需要懂得怎樣進(jìn)行測試了。在開發(fā)階段前期,應(yīng)當(dāng)使用基準(zhǔn)測試來確定應(yīng)用程序中與否出現(xiàn)性能倒退?;鶞?zhǔn)測試可以在一種相對短的時間內(nèi)搜集可反復(fù)的成果。進(jìn)行基準(zhǔn)測試的最佳措施是,每次測試變化一種且只變化一種參數(shù)。例如,假如想懂得增長JVM內(nèi)存與否會影響應(yīng)用程序的性能,就逐次遞增JVM內(nèi)存(例如,從1024MB增至1224MB,然后是1524MB,最終是2024MB),在每個階段搜集成果和環(huán)境數(shù)據(jù),記錄信息,然后轉(zhuǎn)到下一階段。這樣在分析測試成果時就有跡可循。下一小節(jié)我將簡介什么是基準(zhǔn)測試,以及運行基準(zhǔn)測試的最佳參數(shù)。開發(fā)階段后期,在應(yīng)用程序中的bug已經(jīng)被處理,應(yīng)用程序到達(dá)一種穩(wěn)定狀態(tài)之后,可以運行更為復(fù)雜的測試,確定系統(tǒng)在不一樣的負(fù)載模式下的體現(xiàn)。這些測試被稱為容量規(guī)劃測試、滲透測試(soaktest)、峰谷測試(peak-resttest),它們意在通過測試應(yīng)用程序的可靠性、強(qiáng)健性和可伸縮性來測試靠近于現(xiàn)實世界的場景。對于下面的描述應(yīng)當(dāng)從抽象的意義上理解,由于每個應(yīng)用程序的使用模式都是不一樣的。例如,容量規(guī)劃測試一般都使用較緩慢的ramp-up(下文有定義),不過假如應(yīng)用程序在一天之中的某個時段中有迅速突發(fā)的流量,那么自然應(yīng)當(dāng)修改測試以反應(yīng)這種狀況。不過,要記住,由于更改了測試參數(shù)(例如ramp-up周期或顧客的考慮時間(think-time)),測試的成果肯定也會變化。一種不錯的措施是,運行一系列的基準(zhǔn)測試,確立一種已知的可控環(huán)境,然后再對變化進(jìn)行比較。4.1基準(zhǔn)測試基準(zhǔn)測試的關(guān)鍵是要獲得一致的、可再現(xiàn)的成果??稍佻F(xiàn)的成果有兩個好處:減少重新運行測試的次數(shù);對測試的產(chǎn)品和產(chǎn)生的數(shù)字更為確信。使用的性能測試工具也許會對測試成果產(chǎn)生很大影響。假定測試的兩個指標(biāo)是服務(wù)器的響應(yīng)時間和吞吐量,它們會受到服務(wù)器上的負(fù)載的影響。服務(wù)器上的負(fù)載受兩個原因影響:同步與服務(wù)器通信的連接(或虛擬顧客)的數(shù)目,以及每個虛擬顧客祈求之間的考慮時間的長短。很明顯,與服務(wù)器通信的顧客越多,負(fù)載就越大。同樣,祈求之間的考慮時間越短,負(fù)載也越大。這兩個原因的不一樣組合會產(chǎn)生不一樣的服務(wù)器負(fù)載等級。記住,伴隨服務(wù)器上負(fù)載的增長,吞吐量會不停攀升,直到抵達(dá)一種點。注意,吞吐量以穩(wěn)定的速度增長,然后在某一種點上穩(wěn)定下來。在某一點上,執(zhí)行隊列開始增長,由于服務(wù)器上所有的線程都已投入使用,傳入的祈求不再被立即處理,而是放入隊列中,當(dāng)線程空閑時再處理。注意,最初的一段時間,執(zhí)行隊列的長度為零,然后就開始以穩(wěn)定的速度增長。這是由于系統(tǒng)中的負(fù)載在穩(wěn)定增長,雖然最初系統(tǒng)有足夠的空閑線程去處理增長的負(fù)載,最終它還是不能承受,而必須將其排入隊列。當(dāng)系統(tǒng)到達(dá)飽和點,服務(wù)器吞吐量保持穩(wěn)定后,就到達(dá)了給定條件下的系統(tǒng)上限。不過,伴隨服務(wù)器負(fù)載的繼續(xù)增長,系統(tǒng)的響應(yīng)時間也隨之延長,雖然吞吐量保持穩(wěn)定。注意,在執(zhí)行隊列開始增長的同步,響應(yīng)時間也開始以遞增的速度增長。這是由于祈求不能被及時處理。為了獲得真正可再現(xiàn)的成果,應(yīng)當(dāng)將系統(tǒng)置于相似的高負(fù)載下。為此,與服務(wù)器通信的虛擬顧客應(yīng)當(dāng)將祈求之間的考慮時間設(shè)為零。這樣服務(wù)器會立即超載,并開始構(gòu)建執(zhí)行隊列。假如祈求(虛擬顧客)數(shù)保持一致,基準(zhǔn)測試的成果應(yīng)當(dāng)會非常精確,完全可以再現(xiàn)。您也許要問的一種問題是:“怎樣度量成果?”對于一次給定的測試,應(yīng)當(dāng)取響應(yīng)時間和吞吐量的平均值。精確地獲得這些值的唯一措施是一次加載所有的顧客,然后在預(yù)定的時間段內(nèi)持續(xù)運行。這稱為“flat”測試。與此相對應(yīng)的是“ramp-up”測試。4.2ramp-up測試ramp-up測試中的顧客是交錯上升的(每幾秒增長某些新顧客)。ramp-up測試不能產(chǎn)生精確和可重現(xiàn)的平均值,這是由于由于顧客的增長是每次一部分,系統(tǒng)的負(fù)載在不停地變化。因此,flat運行是獲得基準(zhǔn)測試數(shù)據(jù)的理想模式。這不是在貶低ramp-up測試的價值。實際上,ramp-up測試對找出后來要運行的flat測試的范圍非常有用。ramp-up測試的長處是,可以看出伴隨系統(tǒng)負(fù)載的變化,測量值是怎樣變化的。然后可以據(jù)此選擇后來要運行的flat測試的范圍。Flat測試的問題是系統(tǒng)會碰到“波動”效果。注意波動的出現(xiàn),吞吐量不再是平滑的。這在系統(tǒng)的各個方面均有所體現(xiàn),包括CPU的使用量。注意,每隔一段時間就會出現(xiàn)一種波形。CPU使用量不再是平滑的,而是有了像吞吐量圖那樣的尖峰。此外,執(zhí)行隊列也承受著不穩(wěn)定的負(fù)載,因此可以看到,伴隨系統(tǒng)負(fù)載的增長和減少,執(zhí)行隊列也在增長和縮減。注意,每隔一段時間就會出現(xiàn)一種波形。執(zhí)行隊列曲線與上面的CPU使用量圖非常相似。最終,系統(tǒng)中事務(wù)的響應(yīng)時間也遵照著這個波動模式。注意,每隔一段時間就會出現(xiàn)一種波形。事務(wù)的響應(yīng)時間也與上面的圖類似,只不過其效果伴隨時間的推移逐漸減弱。當(dāng)測試中所有的顧客都同步執(zhí)行幾乎相似的操作時,就會發(fā)生這種現(xiàn)象。這將會產(chǎn)生非常不可靠和不精確的成果,因此必須采用某些措施防止這種狀況的出現(xiàn)。有兩種措施可以從這種類型的成果中獲得精確的測量值。假如測試可以運行相稱長的時間(有時是幾種小時,取決于顧客的操作持續(xù)的時間),最終由于隨機(jī)事件的本性使然,服務(wù)器的吞吐量會被“拉平”?;蛘撸梢灾贿x用波形中兩個平息點之間的測量值。該措施的缺陷是可以捕捉數(shù)據(jù)的時間非常短。4.3性能規(guī)劃測試對于性能規(guī)劃類型的測試來說,其目的是找出,在特定的環(huán)境下,給定應(yīng)用程序的性能可以到達(dá)何種程度。此時可重現(xiàn)性就不如在基準(zhǔn)測試中那么重要了,由于測試中一般都會有隨機(jī)因子。引入隨機(jī)因子的目的是為了盡量模擬具有真實顧客負(fù)載的現(xiàn)實世界應(yīng)用程序。一般,詳細(xì)的目的是找出系統(tǒng)在特定的服務(wù)器響應(yīng)時間下支持的目前顧客的最大數(shù)。例如,您也許想懂得:假如要以5秒或更少的響應(yīng)時間支持8,000個目前顧客,需要多少個服務(wù)器?要回答這個問題,需要懂得系統(tǒng)的更多信息。要確定系統(tǒng)的容量,需要考慮幾種原因。一般,服務(wù)器的顧客總數(shù)非常大(以十萬計),不過實際上,這個數(shù)字并不能闡明什么。真正需要懂得的是,這些顧客中有多少是并發(fā)與服務(wù)器通信的。另一方面要懂得的是,每個顧客的“考慮時間”即祈求間時間是多少。這非常重要,由于考慮時間越短,系統(tǒng)所能支持的并發(fā)顧客越少。例如,假如顧客的考慮時間是1秒,那么系統(tǒng)也許只能支持?jǐn)?shù)百個這樣的并發(fā)顧客。不過,假如顧客的考慮時間是30秒,那么系統(tǒng)則也許支持?jǐn)?shù)萬個這樣的并發(fā)顧客(假定硬件和應(yīng)用程序都是相似的)。在現(xiàn)實世界中,一般難以確定顧客確實切考慮時間。還要注意,在現(xiàn)實世界中,顧客不會精確地按照間隔時間發(fā)出祈求。于是就引入了隨機(jī)性。假如懂得一般顧客的考慮時間是5秒,誤差為20%,那么在設(shè)計負(fù)載測試時,就要保證祈求間的時間為5×(1+/-20%)秒。此外,可以運用“調(diào)步”的理念向負(fù)載場景中引入更多的隨機(jī)性。它是這樣的:在一種虛擬顧客完畢一整套的祈求后,該顧客暫停一種設(shè)定的時間段,或者一種小的隨機(jī)時間段(例如,2×(1+/-25%)秒),然后再繼續(xù)執(zhí)行下一套祈求。將這兩種隨機(jī)化措施運用到測試中,可以提供更靠近于現(xiàn)實世界的場景。目前該進(jìn)行實際的容量規(guī)劃測試了。接下來的問題是:怎樣加載顧客以模擬負(fù)載狀態(tài)?最佳的措施是模擬高峰時間顧客與服務(wù)器通信的狀況。這種顧客負(fù)載狀態(tài)是在一段時間內(nèi)逐漸到達(dá)的嗎?假如是,應(yīng)當(dāng)使用ramp-up類型的測試,每隔幾秒增長x個顧客。或者,所有顧客是在一種非常短的時間內(nèi)同步與系統(tǒng)通信?假如是這樣,就應(yīng)當(dāng)使用flat類型的測試,將所有的顧客同步加載到服務(wù)器。兩種不一樣類型的測試會產(chǎn)生沒有可比性的不一樣測試。例如,假如進(jìn)行ramp-up類型的測試,系統(tǒng)可以以4秒或更短的響應(yīng)時間支持5,000個顧客。而執(zhí)行flat測試,您會發(fā)現(xiàn),對于5,000個顧客,系統(tǒng)的平均響應(yīng)時間要不小于4秒。這是由于ramp-up測試固有的不精確性使其不能顯示系統(tǒng)可以支持的并發(fā)顧客的精確數(shù)字。以門戶應(yīng)用程序為例,伴隨門戶規(guī)模的擴(kuò)大和集群規(guī)模的擴(kuò)大,這種不確定性就會隨之顯現(xiàn)。這不是說不應(yīng)當(dāng)使用ramp-up測試。對于系統(tǒng)負(fù)載在一段比較長的時間內(nèi)緩慢增長的狀況,ramp-up測試效果還是不錯的。這是由于系統(tǒng)可以伴隨時間不停調(diào)整。假如使用迅速ramp-up測試,系統(tǒng)就會滯后,從而匯報一種較相似顧客負(fù)載的flat測試低的響應(yīng)時間。那么,什么是確定容量的最佳措施?結(jié)合兩種負(fù)載類型的長處,并運行一系列的測試,就會產(chǎn)生最佳的成果。例如,首先使用ramp-up測試確定系統(tǒng)可以支持的顧客范圍。確定了范圍之后,以該范圍內(nèi)不一樣的并發(fā)顧客負(fù)載進(jìn)行一系列的flat測試,更精確地確定系統(tǒng)的容量。4.4滲透測試滲透測試是一種比較簡樸的性能測試。滲透測試所需時間較長,它使用固定數(shù)目的并發(fā)顧客測試系統(tǒng)的總體強(qiáng)健性。這些測試將會通過內(nèi)存泄漏、增長的垃圾搜集(GC)或系統(tǒng)的其他問題,顯示因長時間運行而出現(xiàn)的任何性能減少。測試運行的時間越久,您對系統(tǒng)就越理解。運行兩次測試是一種好主意——一次使用較低的顧客負(fù)載(要在系統(tǒng)容量之下,以便不會出現(xiàn)執(zhí)行隊列),一次使用較高的負(fù)載(以便出現(xiàn)積極的執(zhí)行隊列)。測試應(yīng)當(dāng)運行幾天的時間,以便真正理解應(yīng)用程序的長期健康狀況。要保證測試的應(yīng)用程序盡量靠近現(xiàn)實世界的狀況,顧客場景也要逼真(虛擬顧客通過應(yīng)用程序?qū)Ш降姆绞揭c現(xiàn)實世界一致),從而測試應(yīng)用程序的所有特性。保證運行了所有必需的監(jiān)控工具,以便精確地監(jiān)測并跟蹤問題。4.5峰谷測試峰谷測試兼有容量規(guī)劃ramp-up類型測試和滲透測試的特性。其目的是確定從高負(fù)載(例如系統(tǒng)高峰時間的負(fù)載)恢復(fù)、轉(zhuǎn)為幾乎空閑、然后再攀升到高負(fù)載、再減少的能力。實現(xiàn)這種測試的最佳措施就是,進(jìn)行一系列的迅速ramp-up測試,繼之以一段時間的平穩(wěn)狀態(tài)(取決于業(yè)務(wù)需求),然后急劇減少負(fù)載,此時可以令系統(tǒng)平息一下,然后再進(jìn)行迅速的ramp-up;反復(fù)反復(fù)這個過程。這樣可以確定如下事項:第二次高峰與否重現(xiàn)第一次的峰值?其后的每次高峰是等于還是不小于第一次的峰值?在測試過程中,系統(tǒng)與否顯示了內(nèi)存或GC性能減少的有關(guān)跡象?測試運行(不停地反復(fù)“峰值/空閑”周期)的時間越長,您對系統(tǒng)的長期健康狀況就越理解。5常用性能測試工具目前市場上的性能測試的工具種類諸多,可以簡樸的劃分為如下幾種:負(fù)載壓力測試工具、資源監(jiān)控工具、故障定位工具以及調(diào)優(yōu)工具。5.1主流負(fù)載性能測試工具負(fù)載性能測試工具的原理一般是通過錄制、回放腳本、模擬多顧客同步訪問被測試系統(tǒng),制造負(fù)載,產(chǎn)生并記錄多種性能指標(biāo),生成分析成果,從而完畢性能測試的任務(wù)。QALoad:Compuware企業(yè)的QALoad是客戶/服務(wù)器系統(tǒng)、企業(yè)資源配置(ERP)和電子商務(wù)應(yīng)用的自動化負(fù)載測試工具。QALoad是QACenter性能版的一部分,它通過可反復(fù)的、真實的測試可以徹底地度量應(yīng)用的可擴(kuò)展性和性能。QACenter匯集完整的跨企業(yè)的自動測試產(chǎn)品,專為提高軟件質(zhì)量而設(shè)計。QACenter可以在整個開發(fā)生命周期、跨越多種平臺、自動執(zhí)行測試任務(wù)。(無下載源)長處:輕量級性能試工具,簡樸易用。缺陷:中文論壇很少,支持的插件太少。SilkPerformer:一種在工業(yè)領(lǐng)域最高級的企業(yè)級負(fù)載測試工具。它可以模仿成千上萬的顧客在多協(xié)議和多計算的環(huán)境下工作。不管企業(yè)電子商務(wù)應(yīng)用的規(guī)模大小及其復(fù)雜性,通過SilkPerformer,均可以在布署前預(yù)測它的性能??梢暤念櫩突缑妗崟r的性能監(jiān)控和強(qiáng)大的管理匯報可以協(xié)助我們迅速的處理問題,例如加緊產(chǎn)品投入市場的時間,通過最小的測試周期保證系統(tǒng)的可靠性,優(yōu)化性能和保證應(yīng)用的可擴(kuò)充性。(無下載源)LoadRunner:一種較高規(guī)模適應(yīng)性的,自動負(fù)載測試工具,它能預(yù)測系統(tǒng)行為,優(yōu)化性能。LoadRunner強(qiáng)調(diào)的是整個企業(yè)的系統(tǒng),它通過模擬實際顧客的操作行為和實行實時性能監(jiān)測,來協(xié)助您更快確實認(rèn)和查找問題。此外,LoadRunner能支持最寬范的協(xié)議和技術(shù),為您的特殊環(huán)境,量身定做地提供處理方案。LoadRunner是一種預(yù)測系統(tǒng)行為和性能的負(fù)載測試工具,通過模擬上千萬顧客實行并發(fā)負(fù)載及實時性能監(jiān)測的方式來確認(rèn)和查找問題,LoadRunner可以對整個企業(yè)架構(gòu)進(jìn)行測試,LoadRunner合用于多種體系架構(gòu),能支持廣范的協(xié)議和技術(shù)(如Web、Ftp、Database等),能預(yù)測系統(tǒng)行為并優(yōu)化系統(tǒng)性能。它通過模擬實際顧客的操作行為和實行實時性能監(jiān)測,來協(xié)助您更快的查找和發(fā)現(xiàn)問題。Loadrunner是一種強(qiáng)大有力的壓力測試工具,它的腳本可以錄制生成,自動關(guān)聯(lián)。測試場景面向指標(biāo),實現(xiàn)了多方監(jiān)控。并且測試成果采用圖表顯示,可以自由拆分組合。通過Loadrunner的測試成果圖表對比,你可以尋找出系統(tǒng)瓶頸的原因,一般來說可以按照服務(wù)器硬件、網(wǎng)絡(luò)、應(yīng)用程序、操作系統(tǒng)、中間件的次序進(jìn)行分析。特點:1、創(chuàng)立真實的負(fù)載用LoadRunner的Controller,能迅速組織起多顧客的測試方案,并提供一種互動的環(huán)境,在其中既能建立持續(xù)且循環(huán)的負(fù)載,又能管理和驅(qū)動負(fù)載測試方案。同步,可以運用日程計劃服務(wù)來定義顧客什么時候訪問系統(tǒng)以產(chǎn)生負(fù)載。這樣,就能使測試過程自動化。2、實時監(jiān)測器LoadRunner內(nèi)含的實時監(jiān)測器,在負(fù)載測試過程的任何時候,都可以觀測到應(yīng)用系統(tǒng)的運行性能。這些性能檢測器實時顯示交易性能數(shù)據(jù)(如響應(yīng)時間)和其他系統(tǒng)組件包括ApplicationServer,WebServer,網(wǎng)路設(shè)備和數(shù)據(jù)庫的實時性能。3、分析成果定位問題測試完畢,LoadRunner搜集匯總所有的測試數(shù)據(jù),并提供高級的分析和匯報工具,以便迅速查找性能問題并追溯原由。通過度析,能很快的查找到出錯的位置和原因并做出對應(yīng)的調(diào)整。4、LoadRunner可以推進(jìn)成千上萬的虛擬顧客執(zhí)行不一樣的業(yè)務(wù)流程以模擬已布署的應(yīng)用程序?qū)⒚鎸Φ纳a(chǎn)條件??梢栽谕瞥鲋鞍l(fā)現(xiàn)隱藏在產(chǎn)品中的性能和伸縮性瓶頸,盡量減少產(chǎn)品停機(jī)時間和導(dǎo)致性能低下,并滿足服務(wù)水平和正常運行時間的需求。5、LoadRunner幾乎支持40個協(xié)議多于其他任何供應(yīng)商。它包括Web、J2EE、.NET、XML、ERP/CRM、無線、Citrix和客戶端服務(wù)器應(yīng)用程序。6、LoadRunner的非侵入性的、實時的性能監(jiān)控為測試中系統(tǒng)的所有部分提供的詳細(xì)指標(biāo)。這包括Web服務(wù)器、應(yīng)用程序服務(wù)器、數(shù)據(jù)庫、ERP和CRM系統(tǒng)、防火墻、負(fù)載平衡等。LoadRunner容許確定也許檢測不到的硬件限制和軟件配置問題。7、LoadRunner是唯一可以跟蹤負(fù)載中的單個應(yīng)用程序組件、為其計時并排除其故障的性能測試處理方案。顧客可以深入發(fā)掘最終顧客的低速交易、有瓶頸的措施或也許導(dǎo)致低速的SQL語句。數(shù)據(jù)細(xì)微層次保證每個負(fù)載測試為開發(fā)提供可操作的成果,從而減少優(yōu)化J2EE和Siebel布署所需的時間和成本。長處:企業(yè)級工具,簡樸易用,中英文網(wǎng)上論壇諸多,非常符合BS/CS架構(gòu)系統(tǒng)測試,國內(nèi)使用最多的性能測試工具之一。缺陷:諸多支持插件(如delphi)需要此外購置,對于復(fù)雜的性能測試規(guī)定測試員必須具有C語言開發(fā)經(jīng)驗,需要合適的培訓(xùn)。價格昂貴。對于數(shù)據(jù)庫性能測試,LoadRunner很困難。WebLoad:是RadView企業(yè)推出的一種性能測試和分析工具,它讓web應(yīng)用程序開發(fā)者自動執(zhí)行壓力測試;webload通過模擬真實顧客的操作,生成壓力負(fù)載來測試web的性能。顧客創(chuàng)立的是基于javascript的測試腳本,稱為議程agenda,用它來模擬客戶的行為,通過執(zhí)行該腳本來衡量web應(yīng)用程序在真實環(huán)境下的性能。webload提供巡航控制器cruisecontrol的功能,運用巡航控制器,可以預(yù)定義web應(yīng)用程序應(yīng)當(dāng)滿足的性能指標(biāo),然后測試系統(tǒng)與否滿足這些需求指標(biāo);cruisecontrol可以自動把負(fù)載加到web應(yīng)用程序,并將在此負(fù)荷下可以訪問程序的客戶數(shù)量生成匯報。webload可以在測試會話執(zhí)行期間對監(jiān)測的系統(tǒng)性能生成實時的匯報,這些測試成果通過一種易讀的圖形界面顯示出來,并可以導(dǎo)出到excel和其他文獻(xiàn)里。這兩個軟件的功能雖然強(qiáng)大,并且可以自動生成測試匯報,但其究竟是一種工具,假如你想真正的定位服務(wù)器性能的好壞和性能的瓶頸所在,需要使用工具的人對于測試軟件的方方面面都要有理解,例如軟件體系構(gòu)架,網(wǎng)絡(luò)拓?fù)?,服?wù)器硬件等知識。長處:非常符合網(wǎng)站的性能測試。缺陷:中文論壇很少。OpenSTA:開源項目,功能強(qiáng)大,自定義功能設(shè)置完備,但設(shè)置通過Script來完畢。必須學(xué)習(xí)Script編寫。OpenSTA是專用于B/S構(gòu)造的、免費的性能測試工具。它的長處除了免費、源代碼開放的長處外,還能對錄制的測試腳本進(jìn)行,按指定的語法進(jìn)行編輯。在錄制完測試腳本后,可以對測試腳本進(jìn)行編輯,以便進(jìn)行特定的性能指標(biāo)分析。其較為豐富的圖形化測試成果大大提高了測試匯報的可閱讀性。OpenSTA基于CORBA的構(gòu)造體系,它通過虛擬一種proxy,使用其專用的腳本控制語言,記錄通過proxy的一切HTTP/Straffic。通過度析OpenSTA的性能指標(biāo)搜集器搜集的各項性能指標(biāo),以及HTTP數(shù)據(jù),對系統(tǒng)的性能進(jìn)行分析。長處:OpenSTA以最簡樸的方式讓大家對性能測試的原理有較深的理解,其較為豐富的圖形化測試成果大大提高了測試匯報的可閱讀性。壓力測試引擎具有可擴(kuò)充性,可以完畢打規(guī)模的壓力測試。提供腳本語言支持。缺陷:1、腳本語言過于復(fù)雜,自定義腳本相稱困難2、僅支持HTTP1.0/1.1/HTTPS(SSL)協(xié)議。3、沒有嵌入虛擬IP、廣域網(wǎng)/局域網(wǎng)仿真功能,不支持集合點功能。4、場景設(shè)計方面太過于簡樸,對于構(gòu)建某些復(fù)雜的場景比較麻煩5、沒有嵌入模擬真實顧客不一樣網(wǎng)絡(luò)速度的功能。6、OpenSTA不能跨平臺──它是一種只能執(zhí)行在Windows平臺上的負(fù)載引擎,不能搜集Linux性能數(shù)據(jù)。7、使用Repository管理測試腳本、配置等過于簡樸,保留腳本居然不能自己選擇途徑。8、Results成果匯報的圖表太簡陋,功能太少,匯報導(dǎo)出功能太簡陋。9、OpenSTA在過去的兩年中,都沒退出新版本,這個項目已經(jīng)死掉了。JMeter:是一款在國外非常流行和受歡迎的開源性能測試工具,像LoadRunner同樣,它也提供了一種運用當(dāng)?shù)豍roxyServer(代理服務(wù)器)來錄制生成測試腳本的功能,不過這個功能并不好用。長處:輕量級性能測試工具,ApacheJMeter是一種100%的純Java桌面應(yīng)用,用于壓力測試和性能測量。它最初被設(shè)計用于Web應(yīng)用測試但后來擴(kuò)展到其他測試,源碼開放。缺陷:中文論壇很少,需要二次開發(fā),錄制腳本不好用。WAS(WebApplicationStress):是Microsoft企業(yè)下的一款免費產(chǎn)品。WAS容許你以不一樣的方式創(chuàng)立測試腳本:你可以通過使用瀏覽器走一遍站點來錄制腳本,可以從服務(wù)器的日志文獻(xiàn)導(dǎo)入URL,或者從一種網(wǎng)絡(luò)內(nèi)容文獻(xiàn)夾選擇一種文獻(xiàn)。當(dāng)然,你也可以手工地輸入URL來創(chuàng)立一種新的測試腳本。長處:1、簡樸性

不像其他的工具,你可以使用任何數(shù)量的客戶端運行測試腳本,所有均有一種中央主客戶端來控制。在每一種測試開始前,主客戶機(jī)透明地執(zhí)行如下任務(wù):

*與其他所有的客戶機(jī)通訊。

*把測試數(shù)據(jù)分發(fā)給所有的客戶端。

*在所有客戶端同步初始化測試。

*從所有的客戶端搜集測試成果和匯報。

這個特性非常重要,尤其對于要測試一種需要使用諸多客戶端的服務(wù)器群的最大吞吐量時非常有用。2、高可用性

WAS是被設(shè)計用于模擬Web瀏覽器發(fā)送祈求到任何采用了HTTP1.0或1.1原則的服務(wù)器,而不考慮服務(wù)器運行的平臺。除了它的易用性外,WAS尚有諸多其他的有用的特性,包括:

*對于需要簽名登錄的網(wǎng)站,它容許創(chuàng)立顧客帳號。

*容許為每個顧客存儲cookies和ActiveServerPages(ASP)的session信息。

*支持隨機(jī)的或次序的數(shù)據(jù)集,以用在特定的名字-值對。

*支持帶寬調(diào)整和隨機(jī)延遲(“思索的時間”)以更真實地模擬顯示情形。

*支持SecureSocketsLayer(SSL)協(xié)議。

*容許URL分組和對每組的點擊率的闡明。

*提供一種對象模型,可以通過MicrosoftVisualBasic?ScriptingEdition(VBScript)處理或者通過定制編程來到達(dá)啟動,結(jié)束和配置測試腳本的效果。缺陷:

1、此前面所發(fā)祈求返回的成果為基礎(chǔ),修改URL參數(shù)的能力。

2、運行或模仿客戶端邏輯的能力。

3、為所分派的測試指定一種確定數(shù)量的測試周期的能力。

4、對擁有不一樣IP地址或域名的多種服務(wù)器的同步測試能力。5、WAS只支持WindowsNT4.0SP4或者更高及Windows,對于其他系統(tǒng),不能獲取PerfCounters。6、WAS測試成果匯報不能圖形化顯示。成果匯報可分析性低。主流負(fù)載性能工具的比較圖如下:屬性LoadRunnerQALoadWebLoad出品企業(yè)HP(Mercury)CompuwareRadview價格昂貴較貴一般安裝配置的復(fù)雜性簡樸簡樸一般操作性較復(fù)雜簡樸簡樸支持測試對象多種中間件/數(shù)據(jù)庫/應(yīng)用服務(wù)器的性能監(jiān)控/企業(yè)架構(gòu)(j2ee和.net)的測試客戶/服務(wù)器系統(tǒng)、企業(yè)資源配置(ERP)和電子商務(wù)應(yīng)用WebApplication支持平臺windows,unix或linuxHP-UX,IBMAIX,SunSolaris,Linux,NT/2kUnixWindows支持?jǐn)?shù)據(jù)庫DB2,SQLserver,

Orcale,SybaseADO,DB2,Oracle,Sybase,

SQLserver,OdbcADO,DB2,Oracle,Sybase,

SQLserver,Odbc支持協(xié)議web,http(s),soap,streaming,

wap,winsock,xmlhttp,ssl,soap,xml,

streaming,mediaxml,java,ejb,

activex,wap,http,snmp,

real/m$streaming腳本語言類似C++C/C++和VC++Javascript自動數(shù)據(jù)生成YYY腳本調(diào)試YYY報表定制功能YYY功能點創(chuàng)立虛擬顧客,創(chuàng)立真實的負(fù)載,定位性能問題,分析成果以精確定位問題所在,反復(fù)測試保證系統(tǒng)公布的高性能等預(yù)測系統(tǒng)性能、通過反復(fù)測試尋找瓶頸問題、從控制中心管理全局負(fù)載測試、迅速創(chuàng)立仿真的測試、驗證應(yīng)用的可擴(kuò)展性。強(qiáng)大的專業(yè)網(wǎng)站性能測試,虛擬多顧客虛擬顧客上限數(shù)量成千上萬成百上千理論上無限,不過受機(jī)器的限制,同步運行太多影響成果的精確性企業(yè)網(wǎng)址Http://可下載5.2資源監(jiān)控工具資源監(jiān)控作為系統(tǒng)壓力測試過程中的一種重要環(huán)節(jié),在有關(guān)的測試工具中基本上均有諸多的集成。只是不一樣的工具之間,監(jiān)控的中間件、數(shù)據(jù)庫、主機(jī)平臺的能力以及方式各有差異。而這些監(jiān)控工具更大程度上都依賴于被監(jiān)控平臺自身的數(shù)據(jù)采集能力,目前的絕大多數(shù)的監(jiān)控工具基本上是直接從中間件、數(shù)據(jù)庫以及主機(jī)自身提供的性能數(shù)據(jù)采集接口獲取性能指標(biāo)。首先,不一樣的應(yīng)用平臺有自身的監(jiān)控命令以及控制界面。例如UNIX主機(jī)顧客可以直接使用topas,vmstat,iostat理解系統(tǒng)自身的健康工作狀況。此外,weblogic以及websphere平臺均有自身的監(jiān)控臺,在上面可以理解到目前的JVM的大小、數(shù)據(jù)庫連接池的使用狀況以及目前連接的客戶端數(shù)量以及祈求狀況等等。只是這些監(jiān)控方式的使用對測試人員有一定的技術(shù)儲備規(guī)定,需要自己純熟掌握以上監(jiān)控方式的使用。第三方的監(jiān)控工具對應(yīng)的對某些系統(tǒng)平臺的監(jiān)控進(jìn)行了集成。例如Loadrunner對目前常用的某些業(yè)務(wù)系統(tǒng)平臺環(huán)境都提供了對應(yīng)的監(jiān)控入口,從而可以在并發(fā)測試的同步,對業(yè)務(wù)系統(tǒng)所處的測試環(huán)境進(jìn)行監(jiān)控,更好的分析測試數(shù)據(jù)。但Loadrunner工具其提供的監(jiān)控方式還不是很直觀,某些更直觀的測試工具能在監(jiān)控的同步提供有關(guān)的報警信息,類似的監(jiān)控產(chǎn)品如QUEST企業(yè)提供的一整套監(jiān)控處理方案包括了主機(jī)的監(jiān)控、中間件平臺的監(jiān)控以及數(shù)據(jù)庫平臺的監(jiān)控。QUEST系列監(jiān)控產(chǎn)品提供了直觀的圖形化界面,能讓測試者盡快進(jìn)入監(jiān)控的角色。性能測試的監(jiān)控指標(biāo)重要包括如下幾種部分: 1、服務(wù)器:Linux應(yīng)用服務(wù)器 詳細(xì)包括CPU、Memory、Load、I/O、Disk等。 2、數(shù)據(jù)庫:1.Mysql

2.Oracle詳細(xì)包括緩存命中、索引、單條SQL性能、數(shù)據(jù)庫線程數(shù)、數(shù)據(jù)池連接數(shù)等。 3、中間件:1.Jboss

2.Apache詳細(xì)包括線程數(shù)、連接數(shù)、日志輸出等。 4、網(wǎng)絡(luò)詳細(xì)包括防火墻、網(wǎng)卡、網(wǎng)線、吞吐量、吞吐率等。 5、應(yīng)用服務(wù)詳細(xì)包括JVM內(nèi)存使用和回收、JAVA內(nèi)存使用、FullGC頻率、JAVA類裝入和卸載、日志、線程運行狀態(tài)(阻塞、等待、正常運行)等。 6、監(jiān)控工具(LoadRunner)詳細(xì)包括顧客執(zhí)行狀況、場景狀態(tài)、事務(wù)響應(yīng)時間、TPS、Load、CPU分析圖表等。 7、測試機(jī)資源詳細(xì)包括CPU、Memory、網(wǎng)絡(luò)、日志輸出、磁盤空間、負(fù)載生成器評估等5.3故障定位工具以及調(diào)優(yōu)工具技術(shù)的不停發(fā)展以及測試需求的不停提高,故障定位工具應(yīng)運而生,它能更精細(xì)的對負(fù)載壓力測試中暴露的問題進(jìn)行故障本源分析。在目前的主流測試工具廠商中,都對應(yīng)地提供了對應(yīng)的產(chǎn)品支持。尤其是目前.NET以及J2EE架構(gòu)的流行,測試工具廠商紛紛在這些領(lǐng)域提供了有關(guān)的技術(shù)產(chǎn)品,例如Loadrunner模塊中添加的診斷以及調(diào)優(yōu)模塊、

Quest企業(yè)的PerformaSure、Compuware的Vantage套件以及CA企業(yè)收購的Wily的Introscope工具等等,都在更深層次上對業(yè)務(wù)流的調(diào)用進(jìn)行追蹤。這些工具在中間件平臺上引入探針技術(shù),能捕捉后臺業(yè)務(wù)內(nèi)部的調(diào)用關(guān)系,發(fā)現(xiàn)問題所在,為應(yīng)用系統(tǒng)的調(diào)優(yōu)提供直接的參照指南。在數(shù)據(jù)庫產(chǎn)品的故障定位分析上,Oracle自身提供了強(qiáng)大的診斷模塊,同步,Quest企業(yè)的數(shù)據(jù)庫產(chǎn)品也在數(shù)據(jù)庫設(shè)計、開發(fā)以及上線運行維護(hù)都提供了全套的產(chǎn)品支持。6服務(wù)器與終端連接性能測試點6.1服務(wù)器性能瓶頸測試點終端顧客訪問服務(wù)器。找到在同一場景下,服務(wù)器容許終端顧客訪問數(shù)量的瓶頸。在測試場景中,需檢測的系統(tǒng)資源項,包括如下:內(nèi)存分析內(nèi)存分析用于判斷系統(tǒng)有無內(nèi)存瓶頸,與否需要通過增長內(nèi)存等手段提高系統(tǒng)性能體現(xiàn)。內(nèi)存分析需要使用的計數(shù)器:Memory類別和PhysicalDisk類別的計數(shù)器。內(nèi)存分析的重要措施和環(huán)節(jié):(1)首先查看Memory\AvailableMbytes指標(biāo)假如該指標(biāo)的數(shù)據(jù)比較小,系統(tǒng)也許出現(xiàn)了內(nèi)存方面的問題。(2)注意Pages/sec、PagesRead/sec和PageFaults/sec的值操作系統(tǒng)會運用磁盤很好的方式提高系統(tǒng)可用內(nèi)存量或者提高內(nèi)存的使用效率。這三個指標(biāo)直接反應(yīng)了操作系統(tǒng)進(jìn)行磁盤互換的頻度。假如Pages/sec的計數(shù)持續(xù)高于幾百,也許有內(nèi)存問題。但Pages/sec值不一定就表明有內(nèi)存問題,也許是運行使用內(nèi)存映射文獻(xiàn)的程序所致。PageFault

溫馨提示

  • 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

提交評論