




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
性能測(cè)試調(diào)研報(bào)告1概述性能測(cè)試是通過(guò)自動(dòng)化的測(cè)試工具模擬多個(gè)正常、峰值以及異常負(fù)載條件來(lái)對(duì)系統(tǒng)的各項(xiàng)性能指標(biāo)進(jìn)行測(cè)試。負(fù)載測(cè)試和壓力測(cè)試都屬于性能測(cè)試,兩者能夠結(jié)合進(jìn)行。通過(guò)負(fù)載測(cè)試,擬定在多個(gè)工作負(fù)載下系統(tǒng)的性能,目的是測(cè)試當(dāng)負(fù)載逐步增加時(shí),系統(tǒng)各項(xiàng)性能指標(biāo)的變化狀況。壓力測(cè)試是通過(guò)擬定一種系統(tǒng)的瓶頸或者不能接受的性能點(diǎn),來(lái)獲得系統(tǒng)能提供的最大服務(wù)級(jí)別的測(cè)試。性能測(cè)試在軟件的質(zhì)量確保中起著重要的作用,它涉及的測(cè)試內(nèi)容豐富多樣。中國(guó)軟件評(píng)測(cè)中心將性能測(cè)試概括為三個(gè)方面:應(yīng)用在客戶端性能的測(cè)試、應(yīng)用在網(wǎng)絡(luò)上性能的測(cè)試和應(yīng)用在服務(wù)器端性能的測(cè)試。普通狀況下,三方面有效、合理的結(jié)合,能夠達(dá)成對(duì)系統(tǒng)性能全方面的分析和瓶頸的預(yù)測(cè)。1.1應(yīng)用在客戶端上性能的測(cè)試應(yīng)用在客戶端性能測(cè)試的目的是考察客戶端應(yīng)用的性能,測(cè)試的入口是客戶端。它重要涉及并發(fā)性能測(cè)試、疲勞強(qiáng)度測(cè)試、大數(shù)據(jù)量測(cè)試和速度測(cè)試等,其中并發(fā)性能測(cè)試是重點(diǎn)。并發(fā)性能測(cè)試是重點(diǎn)并發(fā)性能測(cè)試的過(guò)程是一種負(fù)載測(cè)試和壓力測(cè)試的過(guò)程,即逐步增加負(fù)載,直到系統(tǒng)的瓶頸或者不能接受的性能點(diǎn),通過(guò)綜合分析交易執(zhí)行指標(biāo)和資源監(jiān)控指標(biāo)來(lái)擬定系統(tǒng)并發(fā)性能的過(guò)程。負(fù)載測(cè)試(LoadTesting)是擬定在多個(gè)工作負(fù)載下系統(tǒng)的性能,目的是測(cè)試當(dāng)負(fù)載逐步增加時(shí),系統(tǒng)構(gòu)成部分的對(duì)應(yīng)輸出項(xiàng),例如通過(guò)量、響應(yīng)時(shí)間、CPU負(fù)載、內(nèi)存使用等來(lái)決定系統(tǒng)的性能。負(fù)載測(cè)試是一種分析軟件應(yīng)用程序和支撐架構(gòu)、模擬真實(shí)環(huán)境的使用,從而來(lái)擬定能夠接受的性能過(guò)程。壓力測(cè)試(StressTesting)是通過(guò)擬定一種系統(tǒng)的瓶頸或者不能接受的性能點(diǎn),來(lái)獲得系統(tǒng)能提供的最大服務(wù)級(jí)別的測(cè)試。并發(fā)性能測(cè)試的目的重要體現(xiàn)在三個(gè)方面:以真實(shí)的業(yè)務(wù)為根據(jù),選擇有代表性的、核心的業(yè)務(wù)操作設(shè)計(jì)測(cè)試案例,以評(píng)價(jià)系統(tǒng)的現(xiàn)在性能;當(dāng)擴(kuò)展應(yīng)用程序的功效或者新的應(yīng)用程序?qū)⒁徊际饡r(shí),負(fù)載測(cè)試會(huì)協(xié)助擬定系統(tǒng)與否還能夠解決盼望的顧客負(fù)載,以預(yù)測(cè)系統(tǒng)的將來(lái)性能;通過(guò)模擬成百上千個(gè)顧客,重復(fù)執(zhí)行和運(yùn)行測(cè)試,能夠確認(rèn)性能瓶頸并優(yōu)化和調(diào)節(jié)應(yīng)用,目的在于尋找到瓶頸問(wèn)題。測(cè)試的基本方略是自動(dòng)負(fù)載測(cè)試,通過(guò)在一臺(tái)或幾臺(tái)PC機(jī)上模擬成百或上千的虛擬顧客同時(shí)執(zhí)行業(yè)務(wù)的情景,對(duì)應(yīng)用程序進(jìn)行測(cè)試,同時(shí)統(tǒng)計(jì)下每一事務(wù)解決的時(shí)間、中間件服務(wù)器峰值數(shù)據(jù)、數(shù)據(jù)庫(kù)狀態(tài)等。通過(guò)可重復(fù)的、真實(shí)的測(cè)試能夠徹底地度量應(yīng)用的可擴(kuò)展性和性能,擬定問(wèn)題所在以及優(yōu)化系統(tǒng)性能。預(yù)先懂得了系統(tǒng)的承受力,就為最后顧客規(guī)劃整個(gè)運(yùn)行環(huán)境的配備提供了有力的根據(jù)。并發(fā)性能測(cè)試前的準(zhǔn)備工作測(cè)試環(huán)境:配備測(cè)試環(huán)境是測(cè)試實(shí)施的一種重要階段,測(cè)試環(huán)境的適合與否會(huì)嚴(yán)重影響測(cè)試成果的真實(shí)性和對(duì)的性。測(cè)試環(huán)境涉及硬件環(huán)境和軟件環(huán)境,硬件環(huán)境指測(cè)試必需的服務(wù)器、客戶端、網(wǎng)絡(luò)連接設(shè)備以及打印機(jī)/掃描儀等輔助硬件設(shè)備所構(gòu)成的環(huán)境;軟件環(huán)境指被測(cè)軟件運(yùn)行時(shí)的操作系統(tǒng)、數(shù)據(jù)庫(kù)及其它應(yīng)用軟件構(gòu)成的環(huán)境。一種充足準(zhǔn)備好的測(cè)試環(huán)境有三個(gè)優(yōu)點(diǎn):一種穩(wěn)定、可重復(fù)的測(cè)試環(huán)境,能夠確保測(cè)試成果的對(duì)的;確保達(dá)成測(cè)試執(zhí)行的技術(shù)需求;確保得到對(duì)的的、可重復(fù)的以及易理解的測(cè)試成果。測(cè)試工具:并發(fā)性能測(cè)試是在客戶端執(zhí)行的黑盒測(cè)試,普通不采用手工方式,而是運(yùn)用工具采用自動(dòng)化方式進(jìn)行。現(xiàn)在,成熟的并發(fā)性能測(cè)試工含有諸多,選擇的根據(jù)重要是測(cè)試需求和性能價(jià)格比。出名的并發(fā)性能測(cè)試工含有QALoad、LoadRunner、BenchmarkFactory和Webstress等。這些測(cè)試工具都是自動(dòng)化負(fù)載測(cè)試工具,通過(guò)可重復(fù)的、真實(shí)的測(cè)試,能夠徹底地度量應(yīng)用的可擴(kuò)展性和性能,能夠在整個(gè)開(kāi)發(fā)生命周期、跨越多個(gè)平臺(tái)、自動(dòng)執(zhí)行測(cè)試任務(wù),能夠模擬成百上千的顧客并發(fā)執(zhí)行核心業(yè)務(wù)而完畢對(duì)應(yīng)用程序的測(cè)試。測(cè)試數(shù)據(jù):在初始的測(cè)試環(huán)境中需要輸入某些適宜的測(cè)試數(shù)據(jù),目的是識(shí)別數(shù)據(jù)狀態(tài)并且驗(yàn)證用于測(cè)試的測(cè)試案例,在正式的測(cè)試開(kāi)始以前對(duì)測(cè)試案例進(jìn)行調(diào)試,將正式測(cè)試開(kāi)始時(shí)的錯(cuò)誤降到最低。在測(cè)試進(jìn)行到核心過(guò)程環(huán)節(jié)時(shí),非常有必要進(jìn)行數(shù)據(jù)狀態(tài)的備份。制造初始數(shù)據(jù)意味著將適宜的數(shù)據(jù)存儲(chǔ)下來(lái),需要的時(shí)候恢復(fù)它,初始數(shù)據(jù)提供了一種基線用來(lái)評(píng)定測(cè)試執(zhí)行的成果。在測(cè)試正式執(zhí)行時(shí),還需要準(zhǔn)備業(yè)務(wù)測(cè)試數(shù)據(jù),例如測(cè)試并發(fā)查詢業(yè)務(wù),那么規(guī)定對(duì)應(yīng)的數(shù)據(jù)庫(kù)和表中有相稱的數(shù)據(jù)量以及數(shù)據(jù)的種類(lèi)應(yīng)能覆蓋全部業(yè)務(wù)。模擬真實(shí)環(huán)境測(cè)試,有些軟件,特別是面對(duì)大眾的商品化軟件,在測(cè)試時(shí)經(jīng)常需要考察在真實(shí)環(huán)境中的體現(xiàn)。如測(cè)試殺毒軟件的掃描速度時(shí),硬盤(pán)上布置的不同類(lèi)型文獻(xiàn)的比例要盡量靠近真實(shí)環(huán)境,這樣測(cè)試出來(lái)的數(shù)據(jù)才有實(shí)際意義。并發(fā)性能測(cè)試的種類(lèi)與指標(biāo)并發(fā)性能測(cè)試的種類(lèi)取決于并發(fā)性能測(cè)試工具監(jiān)控的對(duì)象,以QALoad自動(dòng)化負(fù)載測(cè)試工具為例。軟件針對(duì)多個(gè)測(cè)試目的提供了DB2、DCOM、ODBC、ORACLE、NETLoad、Corba、QARun、SAP、SQLServer、Sybase、Telnet、TUXEDO、UNIFACE、WinSock、WWW、JavaScript等不同的監(jiān)控對(duì)象,支持Windows和UNIX測(cè)試環(huán)境。最核心的仍然是測(cè)試過(guò)程中對(duì)監(jiān)控對(duì)象的靈活應(yīng)用,例如現(xiàn)在三層構(gòu)造的運(yùn)行模式廣泛使用,對(duì)中間件的并發(fā)性能測(cè)試作為問(wèn)題被提到議事日程上來(lái),許多系統(tǒng)都采用了國(guó)產(chǎn)中間件,選擇JavaScript監(jiān)控對(duì)象,手工編寫(xiě)腳本,能夠達(dá)成測(cè)試目的。采用自動(dòng)化負(fù)載測(cè)試工具執(zhí)行的并發(fā)性能測(cè)試,基本遵照的測(cè)試過(guò)程有:測(cè)試需求與測(cè)試內(nèi)容,測(cè)試案例制訂,測(cè)試環(huán)境準(zhǔn)備,測(cè)試腳本錄制、編寫(xiě)與調(diào)試,腳本分派、回放配備與加載方略,測(cè)試執(zhí)行跟蹤,成果分析與定位問(wèn)題所在,測(cè)試報(bào)告與測(cè)試評(píng)定。并發(fā)性能測(cè)試監(jiān)控的對(duì)象不同,測(cè)試的重要指標(biāo)也不相似,重要的測(cè)試指標(biāo)涉及交易解決性能指標(biāo)和UNIX資源監(jiān)控。其中,交易解決性能指標(biāo)涉及交易成果、每分鐘交易數(shù)、交易響應(yīng)時(shí)間(Min:最小服務(wù)器響應(yīng)時(shí)間;Mean:平均服務(wù)器響應(yīng)時(shí)間;Max:最大服務(wù)器響應(yīng)時(shí)間;StdDev:事務(wù)解決服務(wù)器響應(yīng)的偏差,值越大,偏差越大;Median:中值響應(yīng)時(shí)間;90%:90%事務(wù)解決的服務(wù)器響應(yīng)時(shí)間)、虛擬并發(fā)顧客數(shù)。疲勞強(qiáng)度與大數(shù)據(jù)量測(cè)試疲勞測(cè)試是采用系統(tǒng)穩(wěn)定運(yùn)行狀況下能夠支持的最大并發(fā)顧客數(shù),持續(xù)執(zhí)行一段時(shí)間業(yè)務(wù),通過(guò)綜合分析交易執(zhí)行指標(biāo)和資源監(jiān)控指標(biāo)來(lái)擬定系統(tǒng)解決最大工作量強(qiáng)度性能的過(guò)程。疲勞強(qiáng)度測(cè)試能夠采用工具自動(dòng)化的方式進(jìn)行測(cè)試,也能夠手工編寫(xiě)程序測(cè)試,其中后者占的比例較大。普通狀況下以服務(wù)器能夠正常穩(wěn)定響應(yīng)請(qǐng)求的最大并發(fā)顧客數(shù)進(jìn)行一定時(shí)間的疲勞測(cè)試,獲取交易執(zhí)行指標(biāo)數(shù)據(jù)和系統(tǒng)資源監(jiān)控?cái)?shù)據(jù)。如出現(xiàn)錯(cuò)誤造成測(cè)試不能成功執(zhí)行,則及時(shí)調(diào)節(jié)測(cè)試指標(biāo),例如減少顧客數(shù)、縮短測(cè)試周期等。尚有一種狀況的疲勞測(cè)試是對(duì)現(xiàn)在系統(tǒng)性能的評(píng)定,用系統(tǒng)正常業(yè)務(wù)狀況下并發(fā)顧客數(shù)為基礎(chǔ),進(jìn)行一定時(shí)間的疲勞測(cè)試。大數(shù)據(jù)量測(cè)試能夠分為兩種類(lèi)型:針對(duì)某些系統(tǒng)存儲(chǔ)、傳輸、統(tǒng)計(jì)、查詢等業(yè)務(wù)進(jìn)行大數(shù)據(jù)量的獨(dú)立數(shù)據(jù)量測(cè)試;與壓力性能測(cè)試、負(fù)載性能測(cè)試、疲勞性能測(cè)試相結(jié)合的綜合數(shù)據(jù)量測(cè)試方案。大數(shù)據(jù)量測(cè)試的核心是測(cè)試數(shù)據(jù)的準(zhǔn)備,能夠依靠工具準(zhǔn)備測(cè)試數(shù)據(jù)。速度測(cè)試現(xiàn)在重要是針對(duì)核心有速度規(guī)定的業(yè)務(wù)進(jìn)行手工測(cè)速度,能夠在多次測(cè)試的基礎(chǔ)上求平均值,能夠和工具測(cè)得的響應(yīng)時(shí)間等指標(biāo)做對(duì)比分析。1.2應(yīng)用在網(wǎng)絡(luò)上性能的測(cè)試應(yīng)用在網(wǎng)絡(luò)上性能的測(cè)試重點(diǎn)是運(yùn)用成熟先進(jìn)的自動(dòng)化技術(shù)進(jìn)行網(wǎng)絡(luò)應(yīng)用性能監(jiān)控、網(wǎng)絡(luò)應(yīng)用性能分析和網(wǎng)絡(luò)預(yù)測(cè)。網(wǎng)絡(luò)應(yīng)用性能分析網(wǎng)絡(luò)應(yīng)用性能分析的目的是精確展示網(wǎng)絡(luò)帶寬、延遲、負(fù)載和TCP端口的變化是如何影響顧客的響應(yīng)時(shí)間的。運(yùn)用網(wǎng)絡(luò)應(yīng)用性能分析工具,例如ApplicationExpert,能夠發(fā)現(xiàn)應(yīng)用的瓶頸,我們可知應(yīng)用在網(wǎng)絡(luò)上運(yùn)行時(shí)在每個(gè)階段發(fā)生的應(yīng)用行為,在應(yīng)用線程級(jí)分析應(yīng)用的問(wèn)題。能夠解決多個(gè)問(wèn)題:客戶端與否對(duì)數(shù)據(jù)庫(kù)服務(wù)器運(yùn)行了不必要的請(qǐng)求?當(dāng)服務(wù)器從客戶端接受了一種查詢,應(yīng)用服務(wù)器與否耗費(fèi)了不可接受的時(shí)間聯(lián)系數(shù)據(jù)庫(kù)服務(wù)器?在投產(chǎn)前預(yù)測(cè)應(yīng)用的響應(yīng)時(shí)間;運(yùn)用ApplicationExpert調(diào)節(jié)應(yīng)用在廣域網(wǎng)上的性能;ApplicationExpert能夠讓你快速、容易地仿真應(yīng)用性能,根據(jù)最后顧客在不同網(wǎng)絡(luò)配備環(huán)境下的響應(yīng)時(shí)間,顧客能夠根據(jù)自己的條件決定應(yīng)用投產(chǎn)的網(wǎng)絡(luò)環(huán)境。網(wǎng)絡(luò)應(yīng)用性能監(jiān)控在系統(tǒng)試運(yùn)行之后,需要及時(shí)精確地理解網(wǎng)絡(luò)上正在發(fā)生什么事情;什么應(yīng)用在運(yùn)行,如何運(yùn)行;多少PC正在訪問(wèn)LAN或WAN;哪些應(yīng)用程序造成系統(tǒng)瓶頸或資源競(jìng)爭(zhēng),這時(shí)網(wǎng)絡(luò)應(yīng)用性能監(jiān)控以及網(wǎng)絡(luò)資源管理對(duì)系統(tǒng)的正常穩(wěn)定運(yùn)行是非常核心的。運(yùn)用網(wǎng)絡(luò)應(yīng)用性能監(jiān)控工具,能夠達(dá)成事半功倍的效果,在這方面我們能夠提供的工具是NetworkVantage。通俗地講,它重要用來(lái)分析核心應(yīng)用程序的性能,定位問(wèn)題的本源是在客戶端、服務(wù)器、應(yīng)用程序還是網(wǎng)絡(luò)。在大多數(shù)狀況下顧客較關(guān)心的問(wèn)題尚有哪些應(yīng)用程序占用大量帶寬,哪些顧客產(chǎn)生了最大的網(wǎng)絡(luò)流量,這個(gè)工具同樣能滿足規(guī)定。網(wǎng)絡(luò)預(yù)測(cè)考慮到系統(tǒng)將來(lái)發(fā)展的擴(kuò)展性,預(yù)測(cè)網(wǎng)絡(luò)流量的變化、網(wǎng)絡(luò)構(gòu)造的變化對(duì)顧客系統(tǒng)的影響非常重要。根據(jù)規(guī)劃數(shù)據(jù)進(jìn)行預(yù)測(cè)并及時(shí)提供網(wǎng)絡(luò)性能預(yù)測(cè)數(shù)據(jù)。我們運(yùn)用網(wǎng)絡(luò)預(yù)測(cè)分析容量規(guī)劃工具PREDICTOR能夠作到:設(shè)立服務(wù)水平、完畢日網(wǎng)絡(luò)容量規(guī)劃、離線測(cè)試網(wǎng)絡(luò)、網(wǎng)絡(luò)失效和容量極限分析、完畢日常故障診療、預(yù)測(cè)網(wǎng)絡(luò)設(shè)備遷移和網(wǎng)絡(luò)設(shè)備升級(jí)對(duì)整個(gè)網(wǎng)絡(luò)的影響。從網(wǎng)絡(luò)管理軟件獲取網(wǎng)絡(luò)拓?fù)錁?gòu)造、從現(xiàn)有的流量監(jiān)控軟件獲取流量信息(若沒(méi)有這類(lèi)軟件可人工生成流量數(shù)據(jù)),這樣能夠得到現(xiàn)有網(wǎng)絡(luò)的基本構(gòu)造。在基本構(gòu)造的基礎(chǔ)上,可根據(jù)網(wǎng)絡(luò)構(gòu)造的變化、網(wǎng)絡(luò)流量的變化生成報(bào)告和圖表,闡明這些變化是如何影響網(wǎng)絡(luò)性能的。PREDICTOR提供以下信息:根據(jù)預(yù)測(cè)的成果協(xié)助顧客及時(shí)升級(jí)網(wǎng)絡(luò),避免因核心設(shè)備超出運(yùn)用閥值造成系統(tǒng)性能下降;哪個(gè)網(wǎng)絡(luò)設(shè)備需要升級(jí),這樣可減少網(wǎng)絡(luò)延遲、避免網(wǎng)絡(luò)瓶頸;根據(jù)預(yù)測(cè)的成果避免不必要的網(wǎng)絡(luò)升級(jí)。1.3應(yīng)用在服務(wù)器上性能的測(cè)試對(duì)于應(yīng)用在服務(wù)器上性能的測(cè)試,能夠采用工具監(jiān)控,也能夠使用系統(tǒng)本身的監(jiān)控命令,例如Tuxedo中能夠使用Top命令監(jiān)控資源使用狀況。實(shí)施測(cè)試的目的是實(shí)現(xiàn)服務(wù)器設(shè)備、服務(wù)器操作系統(tǒng)、數(shù)據(jù)庫(kù)系統(tǒng)、應(yīng)用在服務(wù)器上性能的全方面監(jiān)控,測(cè)試原理以下。UNIX資源監(jiān)控指標(biāo)和描述監(jiān)控指標(biāo)描述平均負(fù)載系統(tǒng)正常狀態(tài)下,最后60秒同時(shí)進(jìn)程的平均個(gè)數(shù)沖突率在以太網(wǎng)上監(jiān)測(cè)到的每秒沖突數(shù)進(jìn)程/線程交換率進(jìn)程和線程之間每秒交換次數(shù)CPU運(yùn)用率CPU占用率(%)磁盤(pán)交換率磁盤(pán)交換速率接受包錯(cuò)誤率接受以太網(wǎng)數(shù)據(jù)包時(shí)每秒錯(cuò)誤數(shù)包輸入率每秒輸入的以太網(wǎng)數(shù)據(jù)包數(shù)目中斷速率CPU每秒解決的中斷數(shù)輸出包錯(cuò)誤率發(fā)送以太網(wǎng)數(shù)據(jù)包時(shí)每秒錯(cuò)誤數(shù)包輸出率每秒輸出的以太網(wǎng)數(shù)據(jù)包數(shù)目讀入內(nèi)存頁(yè)速率物理內(nèi)存中每秒讀入內(nèi)存頁(yè)的數(shù)目寫(xiě)出內(nèi)存頁(yè)速率每秒從物理內(nèi)存中寫(xiě)到頁(yè)文獻(xiàn)中的內(nèi)存頁(yè)數(shù)目或者從物理內(nèi)存中刪掉的內(nèi)存頁(yè)數(shù)目?jī)?nèi)存頁(yè)交換速率每秒寫(xiě)入內(nèi)存頁(yè)和從物理內(nèi)存中讀出頁(yè)的個(gè)數(shù)進(jìn)程入交換率交換區(qū)輸入的進(jìn)程數(shù)目進(jìn)程出交換率交換區(qū)輸出的進(jìn)程數(shù)目系統(tǒng)CPU運(yùn)用率系統(tǒng)的CPU占用率(%)顧客CPU運(yùn)用率顧客模式下的CPU占用率(%)磁盤(pán)阻塞磁盤(pán)每秒阻塞的字節(jié)數(shù)2為什么進(jìn)行性能測(cè)試?目的是驗(yàn)證軟件系統(tǒng)與否能夠達(dá)成顧客提出的性能指標(biāo),同時(shí)發(fā)現(xiàn)軟件系統(tǒng)中存在的性能瓶頸,優(yōu)化軟件,最后起到優(yōu)化系統(tǒng)的目的。2.1性能測(cè)試的目的(1).評(píng)定系統(tǒng)的能力:測(cè)試中得到的負(fù)荷和響應(yīng)時(shí)間數(shù)據(jù)能夠被用于驗(yàn)證所計(jì)劃的模型的能力,并協(xié)助作出決策。(2).識(shí)別體系中的弱點(diǎn):受控的負(fù)荷能夠被增加到一種極端的水平,并突破它,從而修復(fù)體系的瓶頸或單薄的地方。(3).系統(tǒng)調(diào)優(yōu):重復(fù)運(yùn)行測(cè)試,驗(yàn)證調(diào)節(jié)系統(tǒng)的活動(dòng)得到了預(yù)期的成果,從而改善性能。(4).檢測(cè)軟件中的問(wèn)題:長(zhǎng)時(shí)間的測(cè)試執(zhí)行可造成程序發(fā)生由于內(nèi)存泄露引發(fā)的失敗,揭示程序中的隱含的問(wèn)題或沖突。(5).驗(yàn)證穩(wěn)定性(resilience)可靠性(reliability):在一種生產(chǎn)負(fù)荷下執(zhí)行測(cè)試一定的時(shí)間是評(píng)定系統(tǒng)穩(wěn)定性和可靠性與否滿足規(guī)定的唯一辦法。2.2性能測(cè)試的類(lèi)型性能測(cè)試類(lèi)型涉及負(fù)載測(cè)試,強(qiáng)度測(cè)試,容量測(cè)試等負(fù)載測(cè)試:Loadtesting(負(fù)載測(cè)試),通過(guò)測(cè)試系統(tǒng)在資源超負(fù)荷狀況下的體現(xiàn),以發(fā)現(xiàn)設(shè)計(jì)上的錯(cuò)誤或驗(yàn)證系統(tǒng)的負(fù)載能力。在這種測(cè)試中,將使測(cè)試對(duì)象承當(dāng)不同的工作量,以評(píng)測(cè)和評(píng)定測(cè)試對(duì)象在不同工作量條件下的性能行為,以及持續(xù)正常運(yùn)行的能力。負(fù)載測(cè)試的目的是擬定并確保系統(tǒng)在超出最大預(yù)期工作量的狀況下仍能正常運(yùn)行。另外,負(fù)載測(cè)試還要評(píng)定性能特性,例如,響應(yīng)時(shí)間、事務(wù)解決速率和其它與時(shí)間有關(guān)的方面。強(qiáng)度測(cè)試:強(qiáng)度測(cè)試檢查程序?qū)Ξ惓顩r的抵抗能力,是檢查系統(tǒng)在極限狀態(tài)下運(yùn)行的時(shí)候性能下降的幅度與否在允許的范疇內(nèi)。強(qiáng)度測(cè)試總是迫使系統(tǒng)在異常的資源配備下運(yùn)行。例如,①當(dāng)中斷的正常頻率為每秒一至兩個(gè)時(shí),運(yùn)行每秒產(chǎn)生十個(gè)中斷的測(cè)試用例;②定量地增加數(shù)據(jù)輸入率,檢查輸入子功效的反映能力;③運(yùn)行需要最大存儲(chǔ)空間(或其它資源)的測(cè)試用例;④運(yùn)行可能造成虛存操作系統(tǒng)崩潰或磁盤(pán)數(shù)據(jù)激烈抖動(dòng)的測(cè)試用例,等等。容量測(cè)試:通過(guò)性能測(cè)試,如果找到了系統(tǒng)的極限或苛刻的環(huán)境中系統(tǒng)的性能體現(xiàn),在一定的程度上,就完畢了負(fù)載測(cè)試和容量測(cè)試。容量還能夠看作系統(tǒng)性能指標(biāo)中一種特定環(huán)境下的一種特定性能指標(biāo),即設(shè)定的界限或極限值。容量測(cè)試的目的是通過(guò)測(cè)試預(yù)先分析出反映軟件系統(tǒng)應(yīng)用特性的某項(xiàng)指標(biāo)的極限值(如最大并發(fā)顧客數(shù)、數(shù)據(jù)庫(kù)統(tǒng)計(jì)數(shù)等),系統(tǒng)在其極限狀態(tài)下沒(méi)有出現(xiàn)任何軟件故障或還能保持重要功效正常運(yùn)行。容量測(cè)試還將擬定測(cè)試對(duì)象在給定時(shí)間內(nèi)能夠持續(xù)解決的最大負(fù)載或工作量。軟件容量的測(cè)試能讓軟件開(kāi)發(fā)商或顧客理解該軟件系統(tǒng)的承載能力或提供服務(wù)的能力,如某個(gè)電子商務(wù)網(wǎng)站所能承受的、同時(shí)進(jìn)行交易或結(jié)算的在線顧客數(shù)。懂得了系統(tǒng)的實(shí)際容量,如是不能滿足設(shè)計(jì)規(guī)定,就應(yīng)當(dāng)謀求新的技術(shù)解決方案,以提高系統(tǒng)的容量。有了對(duì)軟件負(fù)載的精確預(yù)測(cè),不僅能對(duì)軟件系統(tǒng)在實(shí)際使用中的性能狀況充滿信心,同時(shí)也能夠協(xié)助顧客經(jīng)濟(jì)地規(guī)劃應(yīng)用系統(tǒng),優(yōu)化系統(tǒng)的布署。觀察指標(biāo):性能測(cè)試重要是通過(guò)自動(dòng)化的測(cè)試工具模擬多個(gè)正常、峰值以及異常負(fù)載條件來(lái)對(duì)系統(tǒng)的各項(xiàng)性能指標(biāo)進(jìn)行測(cè)試。負(fù)載測(cè)試和壓力測(cè)試都屬于性能測(cè)試,兩者能夠結(jié)合進(jìn)行。通過(guò)負(fù)載測(cè)試,擬定在多個(gè)工作負(fù)載下系統(tǒng)的性能,目的是測(cè)試當(dāng)負(fù)載逐步增加時(shí),系統(tǒng)各項(xiàng)性能指標(biāo)的變化狀況。壓力測(cè)試是通過(guò)擬定一種系統(tǒng)的瓶頸或者不能接受的性能點(diǎn),來(lái)獲得系統(tǒng)能提供的最大服務(wù)級(jí)別的測(cè)試。在實(shí)際中作中我們經(jīng)常會(huì)對(duì)兩種類(lèi)型軟件進(jìn)行測(cè)試:bs和cs,這兩方面的性能指標(biāo)普通需要哪些內(nèi)容呢?BS構(gòu)造程序普通會(huì)關(guān)注的通用指標(biāo)以下(簡(jiǎn)):Web服務(wù)器指標(biāo):*AvgRps:平均每秒鐘響應(yīng)次數(shù)=總請(qǐng)求時(shí)間/秒數(shù);*Avgtimetolastbyteperterstion(mstes):平均每秒業(yè)務(wù)角本的迭代次數(shù),有人會(huì)把這兩者混淆;*SuccessfulRounds:成功的請(qǐng)求;*FailedRounds:失敗的請(qǐng)求;*SuccessfulHits:成功的點(diǎn)擊次數(shù);*FailedHits:失敗的點(diǎn)擊次數(shù);*HitsPerSecond:每秒點(diǎn)擊次數(shù);*SuccessfulHitsPerSecond:每秒成功的點(diǎn)擊次數(shù);*FailedHitsPerSecond:每秒失敗的點(diǎn)擊次數(shù);*AttemptedConnections:嘗試鏈接數(shù);CS構(gòu)造程序,由于普通軟件后臺(tái)普通為數(shù)據(jù)庫(kù),因此我們更重視數(shù)據(jù)庫(kù)的測(cè)試指標(biāo):*User0Connections:顧客連接數(shù),也就是數(shù)據(jù)庫(kù)的連接數(shù)量;*Numberofdeadlocks:數(shù)據(jù)庫(kù)死鎖;*ButterCachehit:數(shù)據(jù)庫(kù)Cache的命中狀況固然,在實(shí)際中我們還會(huì)察看多顧客測(cè)試狀況下的內(nèi)存,CPU,系統(tǒng)資源調(diào)用狀況。這些指標(biāo)其實(shí)是引申出來(lái)性能測(cè)試中的一種:競(jìng)爭(zhēng)測(cè)試。什么是競(jìng)爭(zhēng)測(cè)試,軟件競(jìng)爭(zhēng)使用多個(gè)資源(數(shù)據(jù)紀(jì)錄,內(nèi)存等),看他與其它有關(guān)系統(tǒng)對(duì)資源的爭(zhēng)奪能力。我們懂得軟件架構(gòu)在實(shí)際測(cè)試中制約著測(cè)試方略和工具的選擇。如何選擇性能測(cè)試方略是我們?cè)趯?shí)際工作中需要理解的。普通軟件能夠按照系統(tǒng)架構(gòu)分成幾個(gè)類(lèi)型: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性能測(cè)試的環(huán)節(jié)在每種不同的系統(tǒng)架構(gòu)的實(shí)施中,開(kāi)發(fā)人員可能選擇不同的實(shí)現(xiàn)方式,造成實(shí)際狀況紛繁復(fù)雜。我們不可能對(duì)每種技術(shù)都具體解說(shuō),這里只是介紹一種辦法提供應(yīng)你如何選擇測(cè)試方略,從而協(xié)助分析軟件不同部分的性能指標(biāo),進(jìn)而分析出整體架構(gòu)的性能指標(biāo)和性能瓶頸。由于工程和項(xiàng)目的不同,所選用的度量,評(píng)定辦法也有不同之處。但是仍然有某些通用的環(huán)節(jié)協(xié)助我們完畢一種性能測(cè)試項(xiàng)目。環(huán)節(jié)以下(1).制訂目的和分析系統(tǒng)(2).選擇測(cè)試度量的辦法(3).學(xué)習(xí)的有關(guān)技術(shù)和工具(4).制訂評(píng)定原則(5).設(shè)計(jì)測(cè)試用例(6).運(yùn)行測(cè)試用例(7).分析測(cè)試成果3.1制訂目的和分析系統(tǒng)每一種性能測(cè)試計(jì)劃中第一步都會(huì)制訂目的和分析系統(tǒng)構(gòu)成。只有明確目的和理解系統(tǒng)構(gòu)成才會(huì)澄清測(cè)試范疇,懂得在測(cè)試中要掌握什么樣的技術(shù)。目的:1.?dāng)M定客戶需求和盼望2.實(shí)際業(yè)務(wù)需求3.系統(tǒng)需求系統(tǒng)構(gòu)成系統(tǒng)構(gòu)成這里包含幾方面含義:系統(tǒng)類(lèi)別,系統(tǒng)構(gòu)成,系統(tǒng)功效等。理解這些內(nèi)容的本質(zhì)其實(shí)是協(xié)助我們明確測(cè)試的范疇,選者適宜的測(cè)試辦法來(lái)進(jìn)行測(cè)試。系統(tǒng)類(lèi)別:分清系統(tǒng)類(lèi)別是我們掌握什么樣的技術(shù)的前提,掌握對(duì)應(yīng)技術(shù)做性能測(cè)試才可能成功。例如:系統(tǒng)類(lèi)別是bs構(gòu)造,需要掌握http合同,java,html等技術(shù)?;蛘呤莄s構(gòu)造,可能要理解操作系統(tǒng),winsock,com等。因此甄別系統(tǒng)類(lèi)別對(duì)于我們來(lái)說(shuō)很重要。系統(tǒng)構(gòu)成:硬件設(shè)立,操作系統(tǒng)設(shè)立是性能測(cè)試的制約條件,普通性能測(cè)試都是運(yùn)用測(cè)試工具模仿大量的實(shí)際顧客操作,系統(tǒng)在超負(fù)荷情形下運(yùn)作。不同的系統(tǒng)構(gòu)成性能測(cè)試就會(huì)得到不同的成果。系統(tǒng)功效:系統(tǒng)功效指系統(tǒng)提供的不同子系統(tǒng),辦公管理系統(tǒng)中的公文子系統(tǒng),會(huì)議子系統(tǒng)等,系統(tǒng)功效是性能測(cè)試中要模擬的環(huán)節(jié),理解這些是必要的。3.2選擇測(cè)試度量的辦法通過(guò)第一步,將會(huì)對(duì)系統(tǒng)有蘇醒的認(rèn)識(shí)。接下來(lái)我們將把精力放在軟件度量上,收集系統(tǒng)有關(guān)的數(shù)據(jù)。度量的有關(guān)方面:*制訂規(guī)范*制訂有關(guān)流程,角色,職責(zé)*制訂改善方略*制訂成果對(duì)比原則3.3學(xué)習(xí)的有關(guān)技術(shù)和工具性能測(cè)試是通過(guò)工具,模擬大量顧客操作,對(duì)系統(tǒng)增加負(fù)載。因此需要掌握一定的工具知識(shí)才干進(jìn)行性能測(cè)試。大家都懂得性能測(cè)試工具普通通過(guò)winsock,http等合同紀(jì)錄顧客操作。而合同選擇是基于軟件的系統(tǒng)架構(gòu)實(shí)現(xiàn)(web普通選擇http合同,cs選擇winsock合同),不同的性能測(cè)試工具,腳本語(yǔ)言也不同,例如rationalrobot中vu腳本用類(lèi)c語(yǔ)言實(shí)現(xiàn)。開(kāi)展性能測(cè)試需要對(duì)多個(gè)性能測(cè)試工具進(jìn)行評(píng)定,由于每一種性能測(cè)試工具都有本身的特點(diǎn),只有通過(guò)工具評(píng)定,才干選擇符合現(xiàn)有軟件架構(gòu)的性能測(cè)試工具。擬定測(cè)試工具后,需要組織測(cè)試人員進(jìn)行工具的學(xué)習(xí),培訓(xùn)有關(guān)技術(shù)。3.4制訂評(píng)定原則任何測(cè)試的目的都是確保軟件符合預(yù)先規(guī)定的目的和規(guī)定。性能測(cè)試也不例外。因此必須制訂一套原則。普通性能測(cè)試有四種模型技術(shù)可用于評(píng)定:*線性投射:用大量的過(guò)去的,擴(kuò)展的或者將來(lái)可能發(fā)生的數(shù)據(jù)構(gòu)成散布圖,運(yùn)用這個(gè)圖表不停和系統(tǒng)的現(xiàn)在狀況對(duì)比。*分析模型:用排隊(duì)論公式和算法預(yù)測(cè)響應(yīng)時(shí)間,運(yùn)用描述工作量的數(shù)據(jù)和系統(tǒng)本質(zhì)關(guān)聯(lián)起來(lái)*模仿:模仿實(shí)際顧客的使用辦法測(cè)試你的系統(tǒng)*基準(zhǔn):定義測(cè)試和你最初的測(cè)試作為原則,運(yùn)用它和全部后來(lái)進(jìn)行的測(cè)試成果進(jìn)行對(duì)比3.5設(shè)計(jì)測(cè)試用例設(shè)計(jì)測(cè)試用例是在理解軟件業(yè)務(wù)流程的基礎(chǔ)上。設(shè)計(jì)測(cè)試用例的原則是受最小的影響提供最多的測(cè)試信息,設(shè)計(jì)測(cè)試用例的目的是一次盡量的包含多個(gè)測(cè)試要素。這些測(cè)試用例必須是測(cè)試工具能夠?qū)崿F(xiàn)的,不同的測(cè)試場(chǎng)景將測(cè)試不同的功效。由于性能測(cè)試不同于平時(shí)的測(cè)試用例,盡量把性能測(cè)試用例設(shè)計(jì)的復(fù)雜,才有可能發(fā)現(xiàn)軟件的性能瓶頸。3.6運(yùn)行測(cè)試用例通過(guò)性能測(cè)試工具運(yùn)行測(cè)試用例。同一環(huán)境下作的性能測(cè)試得到的測(cè)試成果是不精確的,因此在運(yùn)行這些測(cè)試用例的時(shí)候,需要用不同的測(cè)試環(huán)境,不同的機(jī)器配備上運(yùn)行。3.7分析測(cè)試成果運(yùn)行測(cè)試用例后,收集有關(guān)信息,進(jìn)行數(shù)據(jù)統(tǒng)計(jì)分析,找到性能瓶頸。通過(guò)排除誤差和其它因素,讓測(cè)試成果體現(xiàn)靠近真實(shí)狀況。不同的體系構(gòu)造分析測(cè)試成果的辦法也不同,bs構(gòu)造我們會(huì)分析網(wǎng)絡(luò)帶寬,流量對(duì)顧客操作響應(yīng)的影響,而cs構(gòu)造我們可能更關(guān)心系統(tǒng)整體配備會(huì)對(duì)顧客操作的影響。4性能測(cè)試辦法對(duì)于公司應(yīng)用程序,有許多進(jìn)行性能測(cè)試的辦法,其中某些辦法實(shí)施起來(lái)要比其它辦法困難。所要進(jìn)行的性能測(cè)試的類(lèi)型取決于想要達(dá)成的成果。例如,對(duì)于可再現(xiàn)性,基準(zhǔn)測(cè)試是最佳的辦法。而要從現(xiàn)在顧客負(fù)載的角度測(cè)試系統(tǒng)的上限,則應(yīng)當(dāng)使用容量規(guī)劃測(cè)試。本文將介紹幾個(gè)設(shè)立和運(yùn)行性能測(cè)試的辦法,并討論這些辦法的區(qū)別。如果不進(jìn)行合理的規(guī)劃,對(duì)J2EE應(yīng)用程序進(jìn)行性能測(cè)試將會(huì)是一項(xiàng)令人望而生畏且有些混亂的任務(wù)。由于對(duì)于任何的軟件開(kāi)發(fā)流程,都必須收集需求、理解業(yè)務(wù)需要,并在進(jìn)行實(shí)際測(cè)試之前設(shè)計(jì)出正式的進(jìn)度表。性能測(cè)試的需求由業(yè)務(wù)需要驅(qū)動(dòng),并由一組用例闡明。這些用例能夠基于歷史數(shù)據(jù)(例如,服務(wù)器一周的負(fù)載模式)或預(yù)測(cè)的近似值。搞清晰需要測(cè)試的內(nèi)容之后,就需要懂得如何進(jìn)行測(cè)試了。在開(kāi)發(fā)階段前期,應(yīng)當(dāng)使用基準(zhǔn)測(cè)試來(lái)擬定應(yīng)用程序中與否出現(xiàn)性能倒退?;鶞?zhǔn)測(cè)試能夠在一種相對(duì)短的時(shí)間內(nèi)收集可重復(fù)的成果。進(jìn)行基準(zhǔn)測(cè)試的最佳辦法是,每次測(cè)試變化一種且只變化一種參數(shù)。例如,如果想懂得增加JVM內(nèi)存與否會(huì)影響應(yīng)用程序的性能,就逐次遞增JVM內(nèi)存(例如,從1024MB增至1224MB,然后是1524MB,最后是2024MB),在每個(gè)階段收集成果和環(huán)境數(shù)據(jù),統(tǒng)計(jì)信息,然后轉(zhuǎn)到下一階段。這樣在分析測(cè)試成果時(shí)就有跡可循。下一小節(jié)我將介紹什么是基準(zhǔn)測(cè)試,以及運(yùn)行基準(zhǔn)測(cè)試的最佳參數(shù)。開(kāi)發(fā)階段后期,在應(yīng)用程序中的bug已經(jīng)被解決,應(yīng)用程序達(dá)成一種穩(wěn)定狀態(tài)之后,能夠運(yùn)行更為復(fù)雜的測(cè)試,擬定系統(tǒng)在不同的負(fù)載模式下的體現(xiàn)。這些測(cè)試被稱為容量規(guī)劃測(cè)試、滲入測(cè)試(soaktest)、峰谷測(cè)試(peak-resttest),它們旨在通過(guò)測(cè)試應(yīng)用程序的可靠性、強(qiáng)健性和可伸縮性來(lái)測(cè)試靠近于現(xiàn)實(shí)世界的場(chǎng)景。對(duì)于下面的描述應(yīng)當(dāng)從抽象的意義上理解,由于每個(gè)應(yīng)用程序的使用模式都是不同的。例如,容量規(guī)劃測(cè)試普通都使用較緩慢的ramp-up(下文有定義),但是如果應(yīng)用程序在一天之中的某個(gè)時(shí)段中有快速突發(fā)的流量,那么自然應(yīng)當(dāng)修改測(cè)試以反映這種狀況。但是,要記住,由于更改了測(cè)試參數(shù)(例如ramp-up周期或顧客的考慮時(shí)間(think-time)),測(cè)試的成果必定也會(huì)變化。一種不錯(cuò)的辦法是,運(yùn)行一系列的基準(zhǔn)測(cè)試,確立一種已知的可控環(huán)境,然后再對(duì)變化進(jìn)行比較。4.1基準(zhǔn)測(cè)試基準(zhǔn)測(cè)試的核心是要獲得一致的、可再現(xiàn)的成果??稍佻F(xiàn)的成果有兩個(gè)好處:減少重新運(yùn)行測(cè)試的次數(shù);對(duì)測(cè)試的產(chǎn)品和產(chǎn)生的數(shù)字更為確信。使用的性能測(cè)試工具可能會(huì)對(duì)測(cè)試成果產(chǎn)生很大影響。假定測(cè)試的兩個(gè)指標(biāo)是服務(wù)器的響應(yīng)時(shí)間和吞吐量,它們會(huì)受到服務(wù)器上的負(fù)載的影響。服務(wù)器上的負(fù)載受兩個(gè)因素影響:同時(shí)與服務(wù)器通信的連接(或虛擬顧客)的數(shù)目,以及每個(gè)虛擬顧客請(qǐng)求之間的考慮時(shí)間的長(zhǎng)短。很明顯,與服務(wù)器通信的顧客越多,負(fù)載就越大。同樣,請(qǐng)求之間的考慮時(shí)間越短,負(fù)載也越大。這兩個(gè)因素的不同組合會(huì)產(chǎn)生不同的服務(wù)器負(fù)載等級(jí)。記住,隨著服務(wù)器上負(fù)載的增加,吞吐量會(huì)不停攀升,直到達(dá)成一種點(diǎn)。注意,吞吐量以穩(wěn)定的速度增加,然后在某一種點(diǎn)上穩(wěn)定下來(lái)。在某一點(diǎn)上,執(zhí)行隊(duì)列開(kāi)始增加,由于服務(wù)器上全部的線程都已投入使用,傳入的請(qǐng)求不再被立刻解決,而是放入隊(duì)列中,當(dāng)線程空閑時(shí)再解決。注意,最初的一段時(shí)間,執(zhí)行隊(duì)列的長(zhǎng)度為零,然后就開(kāi)始以穩(wěn)定的速度增加。這是由于系統(tǒng)中的負(fù)載在穩(wěn)定增加,即使最初系統(tǒng)有足夠的空閑線程去解決增加的負(fù)載,最后它還是不能承受,而必須將其排入隊(duì)列。當(dāng)系統(tǒng)達(dá)成飽和點(diǎn),服務(wù)器吞吐量保持穩(wěn)定后,就達(dá)成了給定條件下的系統(tǒng)上限。但是,隨著服務(wù)器負(fù)載的繼續(xù)增加,系統(tǒng)的響應(yīng)時(shí)間也隨之延長(zhǎng),即使吞吐量保持穩(wěn)定。注意,在執(zhí)行隊(duì)列開(kāi)始增加的同時(shí),響應(yīng)時(shí)間也開(kāi)始以遞增的速度增加。這是由于請(qǐng)求不能被及時(shí)解決。為了獲得真正可再現(xiàn)的成果,應(yīng)當(dāng)將系統(tǒng)置于相似的高負(fù)載下。為此,與服務(wù)器通信的虛擬顧客應(yīng)當(dāng)將請(qǐng)求之間的考慮時(shí)間設(shè)為零。這樣服務(wù)器會(huì)立刻超載,并開(kāi)始構(gòu)建執(zhí)行隊(duì)列。如果請(qǐng)求(虛擬顧客)數(shù)保持一致,基準(zhǔn)測(cè)試的成果應(yīng)當(dāng)會(huì)非常精確,完全能夠再現(xiàn)。您可能要問(wèn)的一種問(wèn)題是:“如何度量成果?”對(duì)于一次給定的測(cè)試,應(yīng)當(dāng)取響應(yīng)時(shí)間和吞吐量的平均值。精確地獲得這些值的唯一辦法是一次加載全部的顧客,然后在預(yù)定的時(shí)間段內(nèi)持續(xù)運(yùn)行。這稱為“flat”測(cè)試。與此相對(duì)應(yīng)的是“ramp-up”測(cè)試。4.2ramp-up測(cè)試ramp-up測(cè)試中的顧客是交錯(cuò)上升的(每幾秒增加某些新顧客)。ramp-up測(cè)試不能產(chǎn)生精確和可重現(xiàn)的平均值,這是由于由于顧客的增加是每次一部分,系統(tǒng)的負(fù)載在不停地變化。因此,flat運(yùn)行是獲得基準(zhǔn)測(cè)試數(shù)據(jù)的抱負(fù)模式。這不是在貶低ramp-up測(cè)試的價(jià)值。事實(shí)上,ramp-up測(cè)試對(duì)找出后來(lái)要運(yùn)行的flat測(cè)試的范疇非常有用。ramp-up測(cè)試的優(yōu)點(diǎn)是,能夠看出隨著系統(tǒng)負(fù)載的變化,測(cè)量值是如何變化的。然后能夠據(jù)此選擇后來(lái)要運(yùn)行的flat測(cè)試的范疇。Flat測(cè)試的問(wèn)題是系統(tǒng)會(huì)碰到“波動(dòng)”效果。注意波動(dòng)的出現(xiàn),吞吐量不再是平滑的。這在系統(tǒng)的各個(gè)方面都有所體現(xiàn),涉及CPU的使用量。注意,每隔一段時(shí)間就會(huì)出現(xiàn)一種波形。CPU使用量不再是平滑的,而是有了像吞吐量圖那樣的尖峰。另外,執(zhí)行隊(duì)列也承受著不穩(wěn)定的負(fù)載,因此能夠看到,隨著系統(tǒng)負(fù)載的增加和減少,執(zhí)行隊(duì)列也在增加和縮減。注意,每隔一段時(shí)間就會(huì)出現(xiàn)一種波形。執(zhí)行隊(duì)列曲線與上面的CPU使用量圖非常相似。最后,系統(tǒng)中事務(wù)的響應(yīng)時(shí)間也遵照著這個(gè)波動(dòng)模式。注意,每隔一段時(shí)間就會(huì)出現(xiàn)一種波形。事務(wù)的響應(yīng)時(shí)間也與上面的圖類(lèi)似,只但是其效果隨著時(shí)間的推移逐步削弱。當(dāng)測(cè)試中全部的顧客都同時(shí)執(zhí)行幾乎相似的操作時(shí),就會(huì)發(fā)生這種現(xiàn)象。這將會(huì)產(chǎn)生非常不可靠和不精確的成果,因此必須采用某些方法避免這種狀況的出現(xiàn)。有兩種辦法能夠從這種類(lèi)型的成果中獲得精確的測(cè)量值。如果測(cè)試能夠運(yùn)行相稱長(zhǎng)的時(shí)間(有時(shí)是幾個(gè)小時(shí),取決于顧客的操作持續(xù)的時(shí)間),最后由于隨機(jī)事件的本性使然,服務(wù)器的吞吐量會(huì)被“拉平”?;蛘撸軌蛑贿x用波形中兩個(gè)平息點(diǎn)之間的測(cè)量值。該辦法的缺點(diǎn)是能夠捕獲數(shù)據(jù)的時(shí)間非常短。4.3性能規(guī)劃測(cè)試對(duì)于性能規(guī)劃類(lèi)型的測(cè)試來(lái)說(shuō),其目的是找出,在特定的環(huán)境下,給定應(yīng)用程序的性能能夠達(dá)成何種程度。此時(shí)可重現(xiàn)性就不如在基準(zhǔn)測(cè)試中那么重要了,由于測(cè)試中普通都會(huì)有隨機(jī)因子。引入隨機(jī)因子的目的是為了盡量模擬含有真實(shí)顧客負(fù)載的現(xiàn)實(shí)世界應(yīng)用程序。普通,具體的目的是找出系統(tǒng)在特定的服務(wù)器響應(yīng)時(shí)間下支持的現(xiàn)在顧客的最大數(shù)。例如,您可能想懂得:如果要以5秒或更少的響應(yīng)時(shí)間支持8,000個(gè)現(xiàn)在顧客,需要多少個(gè)服務(wù)器?要回答這個(gè)問(wèn)題,需要懂得系統(tǒng)的更多信息。要擬定系統(tǒng)的容量,需要考慮幾個(gè)因素。普通,服務(wù)器的顧客總數(shù)非常大(以十萬(wàn)計(jì)),但是事實(shí)上,這個(gè)數(shù)字并不能闡明什么。真正需要懂得的是,這些顧客中有多少是并發(fā)與服務(wù)器通信的。另首先要懂得的是,每個(gè)顧客的“考慮時(shí)間”即請(qǐng)求間時(shí)間是多少。這非常重要,由于考慮時(shí)間越短,系統(tǒng)所能支持的并發(fā)顧客越少。例如,如果顧客的考慮時(shí)間是1秒,那么系統(tǒng)可能只能支持?jǐn)?shù)百個(gè)這樣的并發(fā)顧客。但是,如果顧客的考慮時(shí)間是30秒,那么系統(tǒng)則可能支持?jǐn)?shù)萬(wàn)個(gè)這樣的并發(fā)顧客(假定硬件和應(yīng)用程序都是相似的)。在現(xiàn)實(shí)世界中,普通難以擬定顧客確實(shí)切考慮時(shí)間。還要注意,在現(xiàn)實(shí)世界中,顧客不會(huì)精確地按照間隔時(shí)間發(fā)出請(qǐng)求。于是就引入了隨機(jī)性。如果懂得普通顧客的考慮時(shí)間是5秒,誤差為20%,那么在設(shè)計(jì)負(fù)載測(cè)試時(shí),就要確保請(qǐng)求間的時(shí)間為5×(1+/-20%)秒。另外,能夠運(yùn)用“調(diào)步”的理念向負(fù)載場(chǎng)景中引入更多的隨機(jī)性。它是這樣的:在一種虛擬顧客完畢一整套的請(qǐng)求后,該顧客暫停一種設(shè)定的時(shí)間段,或者一種小的隨機(jī)時(shí)間段(例如,2×(1+/-25%)秒),然后再繼續(xù)執(zhí)行下一套請(qǐng)求。將這兩種隨機(jī)化辦法運(yùn)用到測(cè)試中,能夠提供更靠近于現(xiàn)實(shí)世界的場(chǎng)景。現(xiàn)在該進(jìn)行實(shí)際的容量規(guī)劃測(cè)試了。接下來(lái)的問(wèn)題是:如何加載顧客以模擬負(fù)載狀態(tài)?最佳的辦法是模擬高峰時(shí)間顧客與服務(wù)器通信的狀況。這種顧客負(fù)載狀態(tài)是在一段時(shí)間內(nèi)逐步達(dá)成的嗎?如果是,應(yīng)當(dāng)使用ramp-up類(lèi)型的測(cè)試,每隔幾秒增加x個(gè)顧客?;蛘?,全部顧客是在一種非常短的時(shí)間內(nèi)同時(shí)與系統(tǒng)通信?如果是這樣,就應(yīng)當(dāng)使用flat類(lèi)型的測(cè)試,將全部的顧客同時(shí)加載到服務(wù)器。兩種不同類(lèi)型的測(cè)試會(huì)產(chǎn)生沒(méi)有可比性的不同測(cè)試。例如,如果進(jìn)行ramp-up類(lèi)型的測(cè)試,系統(tǒng)能夠以4秒或更短的響應(yīng)時(shí)間支持5,000個(gè)顧客。而執(zhí)行flat測(cè)試,您會(huì)發(fā)現(xiàn),對(duì)于5,000個(gè)顧客,系統(tǒng)的平均響應(yīng)時(shí)間要不不大于4秒。這是由于ramp-up測(cè)試固有的不精確性使其不能顯示系統(tǒng)能夠支持的并發(fā)顧客的精確數(shù)字。以門(mén)戶應(yīng)用程序?yàn)槔?,隨著門(mén)戶規(guī)模的擴(kuò)大和集群規(guī)模的擴(kuò)大,這種不擬定性就會(huì)隨之顯現(xiàn)。這不是說(shuō)不應(yīng)當(dāng)使用ramp-up測(cè)試。對(duì)于系統(tǒng)負(fù)載在一段比較長(zhǎng)的時(shí)間內(nèi)緩慢增加的狀況,ramp-up測(cè)試效果還是不錯(cuò)的。這是由于系統(tǒng)能夠隨著時(shí)間不停調(diào)節(jié)。如果使用快速ramp-up測(cè)試,系統(tǒng)就會(huì)滯后,從而報(bào)告一種較相似顧客負(fù)載的flat測(cè)試低的響應(yīng)時(shí)間。那么,什么是擬定容量的最佳辦法?結(jié)合兩種負(fù)載類(lèi)型的優(yōu)點(diǎn),并運(yùn)行一系列的測(cè)試,就會(huì)產(chǎn)生最佳的成果。例如,首先使用ramp-up測(cè)試擬定系統(tǒng)能夠支持的顧客范疇。擬定了范疇之后,以該范疇內(nèi)不同的并發(fā)顧客負(fù)載進(jìn)行一系列的flat測(cè)試,更精確地?cái)M定系統(tǒng)的容量。4.4滲入測(cè)試滲入測(cè)試是一種比較簡(jiǎn)樸的性能測(cè)試。滲入測(cè)試所需時(shí)間較長(zhǎng),它使用固定數(shù)目的并發(fā)顧客測(cè)試系統(tǒng)的總體強(qiáng)健性。這些測(cè)試將會(huì)通過(guò)內(nèi)存泄漏、增加的垃圾收集(GC)或系統(tǒng)的其它問(wèn)題,顯示因長(zhǎng)時(shí)間運(yùn)行而出現(xiàn)的任何性能減少。測(cè)試運(yùn)行的時(shí)間越久,您對(duì)系統(tǒng)就越理解。運(yùn)行兩次測(cè)試是一種好主意——一次使用較低的顧客負(fù)載(要在系統(tǒng)容量之下,方便不會(huì)出現(xiàn)執(zhí)行隊(duì)列),一次使用較高的負(fù)載(方便出現(xiàn)主動(dòng)的執(zhí)行隊(duì)列)。測(cè)試應(yīng)當(dāng)運(yùn)行幾天的時(shí)間,方便真正理解應(yīng)用程序的長(zhǎng)久健康狀況。要確保測(cè)試的應(yīng)用程序盡量靠近現(xiàn)實(shí)世界的狀況,顧客場(chǎng)景也要逼真(虛擬顧客通過(guò)應(yīng)用程序?qū)Ш降姆绞揭c現(xiàn)實(shí)世界一致),從而測(cè)試應(yīng)用程序的全部特性。確保運(yùn)行了全部必需的監(jiān)控工具,方便精確地監(jiān)測(cè)并跟蹤問(wèn)題。4.5峰谷測(cè)試峰谷測(cè)試兼有容量規(guī)劃ramp-up類(lèi)型測(cè)試和滲入測(cè)試的特性。其目的是擬定從高負(fù)載(例如系統(tǒng)高峰時(shí)間的負(fù)載)恢復(fù)、轉(zhuǎn)為幾乎空閑、然后再攀升到高負(fù)載、再減少的能力。實(shí)現(xiàn)這種測(cè)試的最佳辦法就是,進(jìn)行一系列的快速ramp-up測(cè)試,繼之以一段時(shí)間的平穩(wěn)狀態(tài)(取決于業(yè)務(wù)需求),然后急劇減少負(fù)載,此時(shí)能夠令系統(tǒng)平息一下,然后再進(jìn)行快速的ramp-up;重復(fù)重復(fù)這個(gè)過(guò)程。這樣能夠擬定下列事項(xiàng):第二次高峰與否重現(xiàn)第一次的峰值?其后的每次高峰是等于還是不不大于第一次的峰值?在測(cè)試過(guò)程中,系統(tǒng)與否顯示了內(nèi)存或GC性能減少的有關(guān)跡象?測(cè)試運(yùn)行(不停地重復(fù)“峰值/空閑”周期)的時(shí)間越長(zhǎng),您對(duì)系統(tǒng)的長(zhǎng)久健康狀況就越理解。5慣用性能測(cè)試工具現(xiàn)在市場(chǎng)上的性能測(cè)試的工具種類(lèi)諸多,能夠簡(jiǎn)樸的劃分為下列幾個(gè):負(fù)載壓力測(cè)試工具、資源監(jiān)控工具、故障定位工具以及調(diào)優(yōu)工具。5.1主流負(fù)載性能測(cè)試工具負(fù)載性能測(cè)試工具的原理普通是通過(guò)錄制、回放腳本、模擬多顧客同時(shí)訪問(wèn)被測(cè)試系統(tǒng),制造負(fù)載,產(chǎn)生并統(tǒng)計(jì)多個(gè)性能指標(biāo),生成分析成果,從而完畢性能測(cè)試的任務(wù)。QALoad:Compuware公司的QALoad是客戶/服務(wù)器系統(tǒng)、公司資源配備(ERP)和電子商務(wù)應(yīng)用的自動(dòng)化負(fù)載測(cè)試工具。QALoad是QACenter性能版的一部分,它通過(guò)可重復(fù)的、真實(shí)的測(cè)試能夠徹底地度量應(yīng)用的可擴(kuò)展性和性能。QACenter聚集完整的跨公司的自動(dòng)測(cè)試產(chǎn)品,專為提高軟件質(zhì)量而設(shè)計(jì)。QACenter能夠在整個(gè)開(kāi)發(fā)生命周期、跨越多個(gè)平臺(tái)、自動(dòng)執(zhí)行測(cè)試任務(wù)。(無(wú)下載源)優(yōu)點(diǎn):輕量級(jí)性能試工具,簡(jiǎn)樸易用。缺點(diǎn):中文論壇極少,支持的插件太少。SilkPerformer:一種在工業(yè)領(lǐng)域最高級(jí)的公司級(jí)負(fù)載測(cè)試工具。它能夠模仿成千上萬(wàn)的顧客在多合同和多計(jì)算的環(huán)境下工作。不管公司電子商務(wù)應(yīng)用的規(guī)模大小及其復(fù)雜性,通過(guò)SilkPerformer,均能夠在布署前預(yù)測(cè)它的性能。可視的顧客化界面、實(shí)時(shí)的性能監(jiān)控和強(qiáng)大的管理報(bào)告能夠協(xié)助我們快速的解決問(wèn)題,例如加緊產(chǎn)品投入市場(chǎng)的時(shí)間,通過(guò)最小的測(cè)試周期確保系統(tǒng)的可靠性,優(yōu)化性能和確保應(yīng)用的可擴(kuò)充性。(無(wú)下載源)LoadRunner:一種較高規(guī)模適應(yīng)性的,自動(dòng)負(fù)載測(cè)試工具,它能預(yù)測(cè)系統(tǒng)行為,優(yōu)化性能。LoadRunner強(qiáng)調(diào)的是整個(gè)公司的系統(tǒng),它通過(guò)模擬實(shí)際顧客的操作行為和實(shí)施實(shí)時(shí)性能監(jiān)測(cè),來(lái)協(xié)助您更快確實(shí)認(rèn)和查找問(wèn)題。另外,LoadRunner能支持最寬范的合同和技術(shù),為您的特殊環(huán)境,量身定做地提供解決方案。LoadRunner是一種預(yù)測(cè)系統(tǒng)行為和性能的負(fù)載測(cè)試工具,通過(guò)模擬上千萬(wàn)顧客實(shí)施并發(fā)負(fù)載及實(shí)時(shí)性能監(jiān)測(cè)的方式來(lái)確認(rèn)和查找問(wèn)題,LoadRunner能夠?qū)φ麄€(gè)公司架構(gòu)進(jìn)行測(cè)試,LoadRunner合用于多個(gè)體系架構(gòu),能支持廣范的合同和技術(shù)(如Web、Ftp、Database等),能預(yù)測(cè)系統(tǒng)行為并優(yōu)化系統(tǒng)性能。它通過(guò)模擬實(shí)際顧客的操作行為和實(shí)施實(shí)時(shí)性能監(jiān)測(cè),來(lái)協(xié)助您更快的查找和發(fā)現(xiàn)問(wèn)題。Loadrunner是一種強(qiáng)大有力的壓力測(cè)試工具,它的腳本能夠錄制生成,自動(dòng)關(guān)聯(lián)。測(cè)試場(chǎng)景面對(duì)指標(biāo),實(shí)現(xiàn)了多方監(jiān)控。并且測(cè)試成果采用圖表顯示,能夠自由拆分組合。通過(guò)Loadrunner的測(cè)試成果圖表對(duì)比,你能夠?qū)ふ页鱿到y(tǒng)瓶頸的因素,普通來(lái)說(shuō)能夠按照服務(wù)器硬件、網(wǎng)絡(luò)、應(yīng)用程序、操作系統(tǒng)、中間件的次序進(jìn)行分析。特點(diǎn):1、創(chuàng)立真實(shí)的負(fù)載用LoadRunner的Controller,能快速組織起多顧客的測(cè)試方案,并提供一種互動(dòng)的環(huán)境,在其中既能建立持續(xù)且循環(huán)的負(fù)載,又能管理和驅(qū)動(dòng)負(fù)載測(cè)試方案。同時(shí),能夠運(yùn)用日程計(jì)劃服務(wù)來(lái)定義顧客什么時(shí)候訪問(wèn)系統(tǒng)以產(chǎn)生負(fù)載。這樣,就能使測(cè)試過(guò)程自動(dòng)化。2、實(shí)時(shí)監(jiān)測(cè)器LoadRunner內(nèi)含的實(shí)時(shí)監(jiān)測(cè)器,在負(fù)載測(cè)試過(guò)程的任何時(shí)候,都能夠觀察到應(yīng)用系統(tǒng)的運(yùn)行性能。這些性能檢測(cè)器實(shí)時(shí)顯示交易性能數(shù)據(jù)(如響應(yīng)時(shí)間)和其它系統(tǒng)組件涉及ApplicationServer,WebServer,網(wǎng)路設(shè)備和數(shù)據(jù)庫(kù)的實(shí)時(shí)性能。3、分析成果定位問(wèn)題測(cè)試完畢,LoadRunner收集匯總?cè)康臏y(cè)試數(shù)據(jù),并提供高級(jí)的分析和報(bào)告工具,方便快速查找性能問(wèn)題并追溯原由。通過(guò)分析,能很快的查找到出錯(cuò)的位置和因素并做出對(duì)應(yīng)的調(diào)節(jié)。4、LoadRunner能夠推動(dòng)成千上萬(wàn)的虛擬顧客執(zhí)行不同的業(yè)務(wù)流程以模擬已布署的應(yīng)用程序?qū)⒚鎸?duì)的生產(chǎn)條件。能夠在推出之前發(fā)現(xiàn)隱藏在產(chǎn)品中的性能和伸縮性瓶頸,盡量減少產(chǎn)品停機(jī)時(shí)間和造成性能低下,并滿足服務(wù)水平和正常運(yùn)行時(shí)間的需求。5、LoadRunner幾乎支持40個(gè)合同多于其它任何供應(yīng)商。它涉及Web、J2EE、.NET、XML、ERP/CRM、無(wú)線、Citrix和客戶端服務(wù)器應(yīng)用程序。6、LoadRunner的非侵入性的、實(shí)時(shí)的性能監(jiān)控為測(cè)試中系統(tǒng)的全部部分提供的具體指標(biāo)。這涉及Web服務(wù)器、應(yīng)用程序服務(wù)器、數(shù)據(jù)庫(kù)、ERP和CRM系統(tǒng)、防火墻、負(fù)載平衡等。LoadRunner允許擬定可能檢測(cè)不到的硬件限制和軟件配備問(wèn)題。7、LoadRunner是唯一能夠跟蹤負(fù)載中的單個(gè)應(yīng)用程序組件、為其計(jì)時(shí)并排除其故障的性能測(cè)試解決方案。顧客能夠進(jìn)一步發(fā)掘最后顧客的低速交易、有瓶頸的辦法或可能造成低速的SQL語(yǔ)句。數(shù)據(jù)細(xì)微層次確保每個(gè)負(fù)載測(cè)試為開(kāi)發(fā)提供可操作的成果,從而減少優(yōu)化J2EE和Siebel布署所需的時(shí)間和成本。優(yōu)點(diǎn):公司級(jí)工具,簡(jiǎn)樸易用,中英文網(wǎng)上論壇諸多,非常符合BS/CS架構(gòu)系統(tǒng)測(cè)試,國(guó)內(nèi)使用最多的性能測(cè)試工具之一。缺點(diǎn):諸多支持插件(如delphi)需要另外購(gòu)置,對(duì)于復(fù)雜的性能測(cè)試規(guī)定測(cè)試員必須含有C語(yǔ)言開(kāi)發(fā)經(jīng)驗(yàn),需要適宜的培訓(xùn)。價(jià)格昂貴。對(duì)于數(shù)據(jù)庫(kù)性能測(cè)試,LoadRunner很困難。WebLoad:是RadView公司推出的一種性能測(cè)試和分析工具,它讓web應(yīng)用程序開(kāi)發(fā)者自動(dòng)執(zhí)行壓力測(cè)試;webload通過(guò)模擬真實(shí)顧客的操作,生成壓力負(fù)載來(lái)測(cè)試web的性能。顧客創(chuàng)立的是基于javascript的測(cè)試腳本,稱為議程agenda,用它來(lái)模擬客戶的行為,通過(guò)執(zhí)行該腳原來(lái)衡量web應(yīng)用程序在真實(shí)環(huán)境下的性能。webload提供巡航控制器cruisecontrol的功效,運(yùn)用巡航控制器,能夠預(yù)定義web應(yīng)用程序應(yīng)當(dāng)滿足的性能指標(biāo),然后測(cè)試系統(tǒng)與否滿足這些需求指標(biāo);cruisecontrol能夠自動(dòng)把負(fù)載加到web應(yīng)用程序,并將在此負(fù)荷下能夠訪問(wèn)程序的客戶數(shù)量生成報(bào)告。webload能夠在測(cè)試會(huì)話執(zhí)行期間對(duì)監(jiān)測(cè)的系統(tǒng)性能生成實(shí)時(shí)的報(bào)告,這些測(cè)試成果通過(guò)一種易讀的圖形界面顯示出來(lái),并能夠?qū)С龅絜xcel和其它文獻(xiàn)里。這兩個(gè)軟件的功效即使強(qiáng)大,并且能夠自動(dòng)生成測(cè)試報(bào)告,但其終究是一種工具,如果你想真正的定位服務(wù)器性能的好壞和性能的瓶頸所在,需要使用工具的人對(duì)于測(cè)試軟件的方方面面都要有理解,例如軟件體系構(gòu)架,網(wǎng)絡(luò)拓?fù)?,服?wù)器硬件等知識(shí)。優(yōu)點(diǎn):非常符合網(wǎng)站的性能測(cè)試。缺點(diǎn):中文論壇極少。OpenSTA:開(kāi)源項(xiàng)目,功效強(qiáng)大,自定義功效設(shè)立完備,但設(shè)立通過(guò)Script來(lái)完畢。必須學(xué)習(xí)Script編寫(xiě)。OpenSTA是專用于B/S構(gòu)造的、免費(fèi)的性能測(cè)試工具。它的優(yōu)點(diǎn)除了免費(fèi)、源代碼開(kāi)放的優(yōu)點(diǎn)外,還能對(duì)錄制的測(cè)試腳本進(jìn)行,按指定的語(yǔ)法進(jìn)行編輯。在錄制完測(cè)試腳本后,能夠?qū)y(cè)試腳本進(jìn)行編輯,方便進(jìn)行特定的性能指標(biāo)分析。其較為豐富的圖形化測(cè)試成果大大提高了測(cè)試報(bào)告的可閱讀性。OpenSTA基于CORBA的構(gòu)造體系,它通過(guò)虛擬一種proxy,使用其專用的腳本控制語(yǔ)言,統(tǒng)計(jì)通過(guò)proxy的一切HTTP/Straffic。通過(guò)分析OpenSTA的性能指標(biāo)收集器收集的各項(xiàng)性能指標(biāo),以及HTTP數(shù)據(jù),對(duì)系統(tǒng)的性能進(jìn)行分析。優(yōu)點(diǎn):OpenSTA以最簡(jiǎn)樸的方式讓大家對(duì)性能測(cè)試的原理有較深的理解,其較為豐富的圖形化測(cè)試成果大大提高了測(cè)試報(bào)告的可閱讀性。壓力測(cè)試引擎含有可擴(kuò)充性,能夠完畢打規(guī)模的壓力測(cè)試。提供腳本語(yǔ)言支持。缺點(diǎn):1、腳本語(yǔ)言過(guò)于復(fù)雜,自定義腳本相稱困難2、僅支持HTTP1.0/1.1/HTTPS(SSL)合同。3、沒(méi)有嵌入虛擬IP、廣域網(wǎng)/局域網(wǎng)仿真功效,不支持集合點(diǎn)功效。4、場(chǎng)景設(shè)計(jì)方面太過(guò)于簡(jiǎn)樸,對(duì)于構(gòu)建某些復(fù)雜的場(chǎng)景比較麻煩5、沒(méi)有嵌入模擬真實(shí)顧客不同網(wǎng)絡(luò)速度的功效。6、OpenSTA不能跨平臺(tái)──它是一種只能執(zhí)行在Windows平臺(tái)上的負(fù)載引擎,不能收集Linux性能數(shù)據(jù)。7、使用Repository管理測(cè)試腳本、配備等過(guò)于簡(jiǎn)樸,保存腳本居然不能自己選擇途徑。8、Results成果報(bào)告的圖表太簡(jiǎn)陋,功效太少,報(bào)告導(dǎo)出功效太簡(jiǎn)陋。9、OpenSTA在過(guò)去的兩年中,都沒(méi)退出新版本,這個(gè)項(xiàng)目已經(jīng)死掉了。JMeter:是一款在國(guó)外非常流行和受歡迎的開(kāi)源性能測(cè)試工具,像LoadRunner同樣,它也提供了一種運(yùn)用本地ProxyServer(代理服務(wù)器)來(lái)錄制生成測(cè)試腳本的功效,但是這個(gè)功效并不好用。優(yōu)點(diǎn):輕量級(jí)性能測(cè)試工具,ApacheJMeter是一種100%的純Java桌面應(yīng)用,用于壓力測(cè)試和性能測(cè)量。它最初被設(shè)計(jì)用于Web應(yīng)用測(cè)試但后來(lái)擴(kuò)展到其它測(cè)試,源碼開(kāi)放。缺點(diǎn):中文論壇極少,需要二次開(kāi)發(fā),錄制腳本不好用。WAS(WebApplicationStress):是Microsoft公司下的一款免費(fèi)產(chǎn)品。WAS允許你以不同的方式創(chuàng)立測(cè)試腳本:你能夠通過(guò)使用瀏覽器走一遍站點(diǎn)來(lái)錄制腳本,能夠從服務(wù)器的日志文獻(xiàn)導(dǎo)入U(xiǎn)RL,或者從一種網(wǎng)絡(luò)內(nèi)容文獻(xiàn)夾選擇一種文獻(xiàn)。固然,你也能夠手工地輸入U(xiǎn)RL來(lái)創(chuàng)立一種新的測(cè)試腳本。優(yōu)點(diǎn):1、簡(jiǎn)樸性
不像其它的工具,你能夠使用任何數(shù)量的客戶端運(yùn)行測(cè)試腳本,全部都有一種中央主客戶端來(lái)控制。在每一種測(cè)試開(kāi)始前,主客戶機(jī)透明地執(zhí)行下列任務(wù):
*與其它全部的客戶機(jī)通訊。
*把測(cè)試數(shù)據(jù)分發(fā)給全部的客戶端。
*在全部客戶端同時(shí)初始化測(cè)試。
*從全部的客戶端收集測(cè)試成果和報(bào)告。
這個(gè)特性非常重要,特別對(duì)于要測(cè)試一種需要使用諸多客戶端的服務(wù)器群的最大吞吐量時(shí)非常有用。2、高可用性
WAS是被設(shè)計(jì)用于模擬Web瀏覽器發(fā)送請(qǐng)求到任何采用了HTTP1.0或1.1原則的服務(wù)器,而不考慮服務(wù)器運(yùn)行的平臺(tái)。除了它的易用性外,WAS尚有諸多其它的有用的特性,涉及:
*對(duì)于需要簽名登錄的網(wǎng)站,它允許創(chuàng)立顧客帳號(hào)。
*允許為每個(gè)顧客存儲(chǔ)cookies和ActiveServerPages(ASP)的session信息。
*支持隨機(jī)的或次序的數(shù)據(jù)集,以用在特定的名字-值對(duì)。
*支持帶寬調(diào)節(jié)和隨機(jī)延遲(“思考的時(shí)間”)以更真實(shí)地模擬顯示情形。
*支持SecureSocketsLayer(SSL)合同。
*允許URL分組和對(duì)每組的點(diǎn)擊率的闡明。
*提供一種對(duì)象模型,能夠通過(guò)MicrosoftVisualBasic?ScriptingEdition(VBScript)解決或者通過(guò)定制編程來(lái)達(dá)成啟動(dòng),結(jié)束和配備測(cè)試腳本的效果。缺點(diǎn):
1、以前面所發(fā)請(qǐng)求返回的成果為基礎(chǔ),修改URL參數(shù)的能力。
2、運(yùn)行或模仿客戶端邏輯的能力。
3、為所分派的測(cè)試指定一種擬定數(shù)量的測(cè)試周期的能力。
4、對(duì)擁有不同IP地址或域名的多個(gè)服務(wù)器的同時(shí)測(cè)試能力。5、WAS只支持WindowsNT4.0SP4或者更高及Windows,對(duì)于其它系統(tǒng),不能獲取PerfCounters。6、WAS測(cè)試成果報(bào)告不能圖形化顯示。成果報(bào)告可分析性低。主流負(fù)載性能工具的比較圖以下:屬性LoadRunnerQALoadWebLoad出品公司HP(Mercury)CompuwareRadview價(jià)格昂貴較貴普通安裝配備的復(fù)雜性簡(jiǎn)樸簡(jiǎn)樸普通操作性較復(fù)雜簡(jiǎn)樸簡(jiǎn)樸支持測(cè)試對(duì)象多個(gè)中間件/數(shù)據(jù)庫(kù)/應(yīng)用服務(wù)器的性能監(jiān)控/公司架構(gòu)(j2ee和.net)的測(cè)試客戶/服務(wù)器系統(tǒng)、公司資源配備(ERP)和電子商務(wù)應(yīng)用WebApplication支持平臺(tái)windows,unix或linuxHP-UX,IBMAIX,SunSolaris,Linux,NT/2kUnixWindows支持?jǐn)?shù)據(jù)庫(kù)DB2,SQLserver,
Orcale,SybaseADO,DB2,Oracle,Sybase,
SQLserver,OdbcADO,DB2,Oracle,Sybase,
SQLserver,Odbc支持合同web,http(s),soap,streaming,
wap,winsock,xmlhttp,ssl,soap,xml,
streaming,mediaxml,java,ejb,
activex,wap,http,snmp,
real/m$streaming腳本語(yǔ)言類(lèi)似C++C/C++和VC++Javascript自動(dòng)數(shù)據(jù)生成YYY腳本調(diào)試YYY報(bào)表定制功效YYY功效點(diǎn)創(chuàng)立虛擬顧客,創(chuàng)立真實(shí)的負(fù)載,定位性能問(wèn)題,分析成果以精擬定位問(wèn)題所在,重復(fù)測(cè)試確保系統(tǒng)公布的高性能等預(yù)測(cè)系統(tǒng)性能、通過(guò)重復(fù)測(cè)試尋找瓶頸問(wèn)題、從控制中心管理全局負(fù)載測(cè)試、快速創(chuàng)立仿真的測(cè)試、驗(yàn)證應(yīng)用的可擴(kuò)展性。強(qiáng)大的專業(yè)網(wǎng)站性能測(cè)試,虛擬多顧客虛擬顧客上限數(shù)量成千上萬(wàn)成百上千理論上無(wú)限,但是受機(jī)器的限制,同時(shí)運(yùn)行太多影響成果的精確性公司網(wǎng)址Http://可下載5.2資源監(jiān)控工具資源監(jiān)控作為系統(tǒng)壓力測(cè)試過(guò)程中的一種重要環(huán)節(jié),在有關(guān)的測(cè)試工具中基本上都有諸多的集成。只是不同的工具之間,監(jiān)控的中間件、數(shù)據(jù)庫(kù)、主機(jī)平臺(tái)的能力以及方式各有差別。而這些監(jiān)控工具更大程度上都依賴于被監(jiān)控平臺(tái)本身的數(shù)據(jù)采集能力,現(xiàn)在的絕大多數(shù)的監(jiān)控工具基本上是直接從中間件、數(shù)據(jù)庫(kù)以及主機(jī)本身提供的性能數(shù)據(jù)采集接口獲取性能指標(biāo)。首先,不同的應(yīng)用平臺(tái)有本身的監(jiān)控命令以及控制界面。例如UNIX主機(jī)顧客能夠直接使用topas,vmstat,iostat理解系統(tǒng)本身的健康工作狀況。另外,weblogic以及websphere平臺(tái)都有本身的監(jiān)控臺(tái),在上面能夠理解到現(xiàn)在的JVM的大小、數(shù)據(jù)庫(kù)連接池的使用狀況以及現(xiàn)在連接的客戶端數(shù)量以及請(qǐng)求狀況等等。只是這些監(jiān)控方式的使用對(duì)測(cè)試人員有一定的技術(shù)儲(chǔ)藏規(guī)定,需要自己純熟掌握以上監(jiān)控方式的使用。第三方的監(jiān)控工具對(duì)應(yīng)的對(duì)某些系統(tǒng)平臺(tái)的監(jiān)控進(jìn)行了集成。例如Loadrunner對(duì)現(xiàn)在慣用的某些業(yè)務(wù)系統(tǒng)平臺(tái)環(huán)境都提供了對(duì)應(yīng)的監(jiān)控入口,從而能夠在并發(fā)測(cè)試的同時(shí),對(duì)業(yè)務(wù)系統(tǒng)所處的測(cè)試環(huán)境進(jìn)行監(jiān)控,更加好的分析測(cè)試數(shù)據(jù)。但Loadrunner工具其提供的監(jiān)控方式還不是很直觀,某些更直觀的測(cè)試工具能在監(jiān)控的同時(shí)提供有關(guān)的報(bào)警信息,類(lèi)似的監(jiān)控產(chǎn)品如QUEST公司提供的一整套監(jiān)控解決方案涉及了主機(jī)的監(jiān)控、中間件平臺(tái)的監(jiān)控以及數(shù)據(jù)庫(kù)平臺(tái)的監(jiān)控。QUEST系列監(jiān)控產(chǎn)品提供了直觀的圖形化界面,能讓測(cè)試者盡快進(jìn)入監(jiān)控的角色。性能測(cè)試的監(jiān)控指標(biāo)重要涉及下列幾個(gè)部分: 1、服務(wù)器:Linux應(yīng)用服務(wù)器 具體涉及CPU、Memory、Load、I/O、Disk等。 2、數(shù)據(jù)庫(kù):1.Mysql
2.Oracle具體涉及緩存命中、索引、單條SQL性能、數(shù)據(jù)庫(kù)線程數(shù)、數(shù)據(jù)池連接數(shù)等。 3、中間件:1.Jboss
2.Apache具體涉及線程數(shù)、連接數(shù)、日志輸出等。 4、網(wǎng)絡(luò)具體涉及防火墻、網(wǎng)卡、網(wǎng)線、吞吐量、吞吐率等。 5、應(yīng)用服務(wù)具體涉及JVM內(nèi)存使用和回收、JAVA內(nèi)存使用、FullGC頻率、JAVA類(lèi)裝入和卸載、日志、線程運(yùn)行狀態(tài)(阻塞、等待、正常運(yùn)行)等。 6、監(jiān)控工具(LoadRunner)具體涉及顧客執(zhí)行狀況、場(chǎng)景狀態(tài)、事務(wù)響應(yīng)時(shí)間、TPS、Load、CPU分析圖表等。 7、測(cè)試機(jī)資源具體涉及CPU、Memory、網(wǎng)絡(luò)、日志輸出、磁盤(pán)空間、負(fù)載生成器評(píng)定等5.3故障定位工具以及調(diào)優(yōu)工具技術(shù)的不停發(fā)展以及測(cè)試需求的不停提高,故障定位工具應(yīng)運(yùn)而生,它能更精細(xì)的對(duì)負(fù)載壓力測(cè)試中暴露的問(wèn)題進(jìn)行故障本源分析。在現(xiàn)在的主流測(cè)試工具廠商中,都對(duì)應(yīng)地提供了對(duì)應(yīng)的產(chǎn)品支持。特別是現(xiàn)在.NET以及J2EE架構(gòu)的流行,測(cè)試工具廠商紛紛在這些領(lǐng)域提供了有關(guān)的技術(shù)產(chǎn)品,例如Loadrunner模塊中添加的診療以及調(diào)優(yōu)模塊、
Quest公司的PerformaSure、Compuware的Vantage套件以及CA公司收購(gòu)的Wily的Introscope工具等等,都在更深層次上對(duì)業(yè)務(wù)流的調(diào)用進(jìn)行追蹤。這些工具在中間件平臺(tái)上引入探針技術(shù),能捕獲后臺(tái)業(yè)務(wù)內(nèi)部的調(diào)用關(guān)系,發(fā)現(xiàn)問(wèn)題所在,為應(yīng)用系統(tǒng)的調(diào)優(yōu)提供直接的參考指南。在數(shù)據(jù)庫(kù)產(chǎn)品的故障定位分析上,Oracle本身提供了強(qiáng)大的診療模塊,同時(shí),Quest公司的數(shù)據(jù)庫(kù)產(chǎn)品也在數(shù)據(jù)庫(kù)設(shè)計(jì)、開(kāi)發(fā)以及上線運(yùn)行維護(hù)都提供了全套的產(chǎn)品支持。6服務(wù)器與終端連接性能測(cè)試點(diǎn)6.1服務(wù)器性能瓶頸測(cè)試點(diǎn)終端顧客訪問(wèn)服務(wù)器。找到在同一場(chǎng)景下,服務(wù)器允許終端顧客訪問(wèn)數(shù)量的瓶頸。在測(cè)試場(chǎng)景中,需檢測(cè)的系統(tǒng)資源項(xiàng),涉及以下:內(nèi)存分析內(nèi)存分析用于判斷系統(tǒng)有無(wú)內(nèi)存瓶頸,與否需要通過(guò)增加內(nèi)存等手段提高系統(tǒng)性能體現(xiàn)。內(nèi)存分析需要使用的計(jì)數(shù)器:Memory類(lèi)別和PhysicalDisk類(lèi)別的計(jì)數(shù)器。內(nèi)存分析的重要辦法和環(huán)節(jié):(1)首先查看Memory\AvailableMbytes指標(biāo)如果該指標(biāo)的數(shù)據(jù)比較小,系統(tǒng)可能出現(xiàn)了內(nèi)存方面的問(wèn)題。(2)注意Pages/sec、PagesRead/sec和PageFaults/sec的值操作系統(tǒng)會(huì)運(yùn)用磁盤(pán)較好的方式提高系統(tǒng)可用內(nèi)存量或者提高內(nèi)存的使用效率。這三個(gè)指標(biāo)直接反映了操作系統(tǒng)進(jìn)行磁盤(pán)交換的頻度。如果Pages/sec的計(jì)數(shù)持續(xù)高于幾百,可能有內(nèi)存問(wèn)題。但Pages/sec值不一定就表明有內(nèi)存問(wèn)題,可能是運(yùn)行使用內(nèi)存映射文獻(xiàn)的程序所致。PageFaults/
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 明達(dá)職業(yè)技術(shù)學(xué)院《計(jì)量學(xué)與互換性基礎(chǔ)俄》2023-2024學(xué)年第二學(xué)期期末試卷
- 西南民族大學(xué)《供應(yīng)鏈系統(tǒng)仿真與優(yōu)化》2023-2024學(xué)年第二學(xué)期期末試卷
- 鄭州智能科技職業(yè)學(xué)院《建筑設(shè)計(jì)初步》2023-2024學(xué)年第二學(xué)期期末試卷
- 內(nèi)蒙古豐州職業(yè)學(xué)院《城市公共景觀設(shè)計(jì)》2023-2024學(xué)年第二學(xué)期期末試卷
- 上海交通大學(xué)《城市社會(huì)工作》2023-2024學(xué)年第二學(xué)期期末試卷
- 展館空間設(shè)計(jì)項(xiàng)目效益評(píng)估報(bào)告
- 山東財(cái)經(jīng)大學(xué)《分析化學(xué)實(shí)驗(yàn)2》2023-2024學(xué)年第二學(xué)期期末試卷
- 和君職業(yè)學(xué)院《護(hù)理禮儀》2023-2024學(xué)年第二學(xué)期期末試卷
- 濱州學(xué)院《GPS》2023-2024學(xué)年第二學(xué)期期末試卷
- 桂林信息科技學(xué)院《成癮醫(yī)學(xué)》2023-2024學(xué)年第二學(xué)期期末試卷
- 2024年廣東省《輔警招聘考試必刷500題》考試題庫(kù)及答案【易錯(cuò)題】
- 中考數(shù)學(xué)總復(fù)習(xí)第一章第3課時(shí)二次根式課件
- 天然氣脫硫完整版本
- 2025年中國(guó)電子煙行業(yè)發(fā)展前景與投資戰(zhàn)略規(guī)劃分析報(bào)告
- 貨物學(xué)基礎(chǔ) 課件 項(xiàng)目一 任務(wù)一 貨物的基本概念
- 無(wú)人機(jī)法律法規(guī)與安全飛行 第2版空域管理
- 我的小學(xué)生活
- 《商務(wù)溝通-策略、方法與案例》課件 第三章 書(shū)面溝通
- 2024具身大模型關(guān)鍵技術(shù)與應(yīng)用報(bào)告-哈爾濱工業(yè)大學(xué)
- 提高瓦屋面太陽(yáng)能板安裝一次驗(yàn)收合格率
- 2024上海市房屋租賃合同范本下載
評(píng)論
0/150
提交評(píng)論