




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、高級(jí)性能測試 1課程內(nèi)容介紹 測試策略制定測試結(jié)果指標(biāo)分析測試典型案例分析 測試技術(shù)討論測試工具的使用技巧2測試策略制定概念測試計(jì)劃測試流程包括哪些步驟測試要達(dá)到什么目的選擇什么協(xié)議進(jìn)行測試如何編寫一個(gè)完整的測試方案 測試指標(biāo)包括哪些內(nèi)容自動(dòng)化負(fù)載壓力測試策略3測試結(jié)果指標(biāo)分析客戶端負(fù)載壓力指標(biāo) 服務(wù)器資源使用指標(biāo)網(wǎng)絡(luò)監(jiān)控指標(biāo)4測試典型案例分析系統(tǒng)故障定位與分析數(shù)據(jù)庫服務(wù)器典型性能調(diào)優(yōu)與評(píng)估Oracle數(shù)據(jù)庫性能調(diào)優(yōu)案例測試經(jīng)驗(yàn)交流5測試工具的使用技巧負(fù)載壓力測試工具:LoadRunner8.0功能回歸測試工具:WinRunner7.6測試管理工具:TestDirector8 .06性能測試
2、系統(tǒng)的性能是一個(gè)很大的概念,覆蓋面非常廣泛,對(duì)一個(gè)軟件系統(tǒng)而言包括執(zhí)行效率、資源占用、穩(wěn)定性、安全性、兼容性、可擴(kuò)展性、可靠性等等,我們這里重點(diǎn)討論的負(fù)載壓力是系統(tǒng)性能的一個(gè)重要方面。 性能測試用來保證產(chǎn)品發(fā)布后系統(tǒng)的性能滿足用戶需求。性能測試在軟件質(zhì)量保證中起重要作用。 7負(fù)載測試負(fù)載測試是確定在各種工作負(fù)載下系統(tǒng)的性能,目標(biāo)是測試當(dāng)負(fù)載逐漸增加時(shí),系統(tǒng)組成部分的相應(yīng)輸出項(xiàng),例如通過量、響應(yīng)時(shí)間、CPU負(fù)載、內(nèi)存使用等如何決定系統(tǒng)的性能,例如穩(wěn)定性和響應(yīng)等。負(fù)載測試通常描述一種特定類型的壓力測試,即增加用戶數(shù)量以對(duì)應(yīng)用程序進(jìn)行壓力測試。8壓力測試 壓力測試通過確定一個(gè)系統(tǒng)的瓶頸或者不能接收的
3、性能點(diǎn),來獲得系統(tǒng)能提供的最大的服務(wù)級(jí)別的測試。通俗地講,壓力測試是為了發(fā)現(xiàn)在什么條件下您的應(yīng)用程序的性能會(huì)變得不可接受。9負(fù)載壓力測試負(fù)載壓力測試是性能測試的重要組成部分,負(fù)載壓力測試包括:并發(fā)性能測試(重點(diǎn))疲勞強(qiáng)度測試大數(shù)據(jù)量測試 10負(fù)載壓力測試11負(fù)載壓力測試并發(fā)性能測試 考察客戶端應(yīng)用的性能,測試的入口是客戶端并發(fā)性能測試的過程,是一個(gè)負(fù)載測試和壓力測試的過程。即逐漸增加并發(fā)虛擬用戶數(shù)負(fù)載,直到系統(tǒng)的瓶頸或者不能接收的性能點(diǎn),通過綜合分析交易執(zhí)行指標(biāo)、資源監(jiān)控指標(biāo)等來確定系統(tǒng)并發(fā)性能的過程。并發(fā)性能測試是負(fù)載壓力測試中的重要內(nèi)容。 12負(fù)載壓力測試疲勞強(qiáng)度測試 通常是采用系統(tǒng)穩(wěn)定運(yùn)
4、行情況下能夠支持的最大并發(fā)用戶數(shù)或 者日常運(yùn)行用戶數(shù),持續(xù)執(zhí)行一段時(shí)間業(yè)務(wù),通過綜合分析交易執(zhí)行指標(biāo)和資源監(jiān)控指標(biāo)來確定系統(tǒng)處理最大工作量強(qiáng)度性能的過程。 疲勞強(qiáng)度測試案例制定的原則是保證系統(tǒng)長期不間斷運(yùn)行的業(yè)務(wù)量,并且應(yīng)該盡量去滿足該條件。 13負(fù)載壓力測試大數(shù)據(jù)量測試 大數(shù)據(jù)量測試的兩種類型 獨(dú)立的數(shù)據(jù)量測試 針對(duì)某些系統(tǒng)存儲(chǔ)、傳輸、統(tǒng)計(jì)、查詢等業(yè)務(wù)進(jìn)行大 數(shù)據(jù)量測試 綜合數(shù)據(jù)量測試 和壓力性能測試、負(fù)載性能測試、并發(fā)性能測試、疲勞性能測試相結(jié)合的綜合測試方案 14測試計(jì)劃 分析應(yīng)用程序 定義測試目標(biāo) 計(jì)劃方案實(shí)施檢查測試目標(biāo) 15制定測試計(jì)劃的目的構(gòu)建能夠精確地模擬您的工作環(huán)境的測試方案
5、。 了解測試需要的資源。 以可度量的指標(biāo)定義測試成功條件。 16分析應(yīng)用程序確定系統(tǒng)組件描述系統(tǒng)配置 分析使用模型 任務(wù)分布 17確定系統(tǒng)組件客戶機(jī)、網(wǎng)絡(luò)、中間件和服務(wù)器 18描述系統(tǒng)配置連接到系統(tǒng)的用戶數(shù)應(yīng)用程序客戶端計(jì)算機(jī)的配置情況(硬件、內(nèi)存、操作系統(tǒng)、軟件、開發(fā)工具等)使用的數(shù)據(jù)庫和Web 服務(wù)器的類型(硬件、數(shù)據(jù)庫類型、操作系統(tǒng)、文件服務(wù)器等)服務(wù)器與應(yīng)用程序客戶端之間的通信方式前端客戶端與后端服務(wù)器之間的中間件配置和應(yīng)用程序服務(wù)器可能影響響應(yīng)時(shí)間的其他網(wǎng)絡(luò)組件(調(diào)制解調(diào)器等)19分析使用模型考慮哪些用戶使用系統(tǒng)每種類型用戶的數(shù)量每個(gè)用戶的典型任務(wù) 20任務(wù)分布確定數(shù)據(jù)庫活動(dòng)峰值期的
6、發(fā)生時(shí)間負(fù)載峰值期間的典型活動(dòng) 21定義測試目標(biāo)22定義測試目標(biāo)以可度量的指標(biāo)制定目標(biāo)確定測試的時(shí)間 23確定測試的時(shí)間24計(jì)劃方案實(shí)施定義性能度量的范圍定義Vuser活動(dòng) 選擇Vuser 選擇測試硬件和軟件25定義性能度量的范圍度量應(yīng)用程序中不同點(diǎn)的響應(yīng)時(shí)間。根據(jù)測試目標(biāo)確定在哪里運(yùn)行虛擬用戶運(yùn)行哪些虛擬用戶26應(yīng)用程序中不同點(diǎn)的響應(yīng)時(shí)間度量端到端的響應(yīng)時(shí)間:27應(yīng)用程序中不同點(diǎn)的響應(yīng)時(shí)間度量網(wǎng)絡(luò)和服務(wù)器響應(yīng)時(shí)間: 28應(yīng)用程序中不同點(diǎn)的響應(yīng)時(shí)間度量GUI 響應(yīng)時(shí)間:GUI 響應(yīng)時(shí)間= 端到端響應(yīng)時(shí)間- 網(wǎng)絡(luò)和服務(wù)器響應(yīng)時(shí)間 29應(yīng)用程序中不同點(diǎn)的響應(yīng)時(shí)間度量服務(wù)器響應(yīng)時(shí)間:30應(yīng)用程序中不
7、同點(diǎn)的響應(yīng)時(shí)間度量中間件到服務(wù)器的響應(yīng)時(shí)間:31選擇Vuser32選擇測試硬件和軟件硬件和軟件應(yīng)該具有強(qiáng)大的性能和足夠快的運(yùn)行速度,以模擬所需數(shù)量的虛擬用戶 。33檢查測試目標(biāo)度量最終用戶響應(yīng)時(shí)間 定義最優(yōu)的硬件配置 檢查可靠性 確定瓶頸 度量系統(tǒng)容量 34定義最優(yōu)的硬件配置舉例例如,您可以設(shè)置三種不同的服務(wù)器配置,并針對(duì)各個(gè)配置運(yùn)行相同的測試,以確定性能上的差異:. 配置1:200MHz、64MB RAM. 配置2:200MHz、128MB RAM. 配置3:266MHz、128MB RAM35檢查可靠性舉例確定系統(tǒng)在連續(xù)的高工作負(fù)載下的穩(wěn)定性級(jí)別。強(qiáng)制系統(tǒng)在短時(shí)間內(nèi)處理大量任務(wù),以模擬系統(tǒng)
8、在數(shù)周或數(shù)月的時(shí)間內(nèi)通常會(huì)遇到的活動(dòng)類型。36確定瓶頸舉例您可以運(yùn)行測試以確定系統(tǒng)的瓶頸,并確定哪些因素導(dǎo)致性能下降,例如,文件鎖定、資源爭用和網(wǎng)絡(luò)過載。37度量系統(tǒng)容量舉例查看現(xiàn)有系統(tǒng)中性能與負(fù)載間的關(guān)系,并確定出現(xiàn)響應(yīng)時(shí)間顯著延長的位置 “拐點(diǎn)”??梢源_定是否需要增加資源以支持額外的用戶。38測試流程步驟測試需求分析 測試案例制定 測試環(huán)境、工具、數(shù)據(jù)準(zhǔn)備 測試腳本錄制、編寫與調(diào)試負(fù)載壓力場景制定 測試執(zhí)行 結(jié)果分析與定位問題 測試報(bào)告與測試評(píng)估 39測試目的在真實(shí)環(huán)境下檢測系統(tǒng)性能,評(píng)估系統(tǒng)性能以及服務(wù)等級(jí)的滿足情況預(yù)見系統(tǒng)負(fù)載壓力承受力,在應(yīng)用實(shí)際部署之前,評(píng)估系統(tǒng)性能 幫助軟件廠商或
9、用戶分析系統(tǒng)瓶頸、優(yōu)化系統(tǒng) 40測試目的實(shí)現(xiàn)目的的測試方法: 性能檢測 性能調(diào)優(yōu) 41性能檢測在真實(shí)生產(chǎn)環(huán)境下,檢測系統(tǒng)性能,評(píng)估并報(bào)告整個(gè)系統(tǒng)的性能和健壯情況檢查服務(wù)等級(jí)的滿足情況對(duì)系統(tǒng)的未來容量作出預(yù)測和規(guī)劃 42性能調(diào)優(yōu)查找系統(tǒng)瓶頸的根本原因評(píng)估性能調(diào)整的效果在測試環(huán)境下再現(xiàn)性能問題 43選擇測試協(xié)議客戶端與直接壓力承受的服務(wù)器之間的通訊協(xié)議是選擇測試協(xié)議的唯一標(biāo)準(zhǔn) 44測試協(xié)議 Client/Server: MS SQL, ODBC, Oracle (2-tier), DB2 CLI, Sybase Ctlib, Sybase Dblib,infomix,Windows Sockets
10、及DNS定制: C templates, Visual Basic templates, Java templates, Javascript 及 VBscript. 分布式組件: COM/DCOM, Corba-Java, 及Rmi -Java.E-business: FTP, LDAP, Palm, SOAP, Web (HTTP/HTML), 及the dual Web/Winsocket.Enterprise Java Beans: EJB Testing及Rmi-Java.Legacy: Terminal Emulation (RTE).Mailing Services: Inter
11、net Messaging (IMAP), MS Exchange (MAPI), POP3, 及SMTP.Middleware: Jacada及Tuxedo (6, 7).Streaming: MediaPlayer及RealPlayer. Wireless: i-Mode, VoiceXML, 及WAP45編寫一個(gè)完整的測試方案 應(yīng)用在客戶端性能的測試 應(yīng)用在網(wǎng)絡(luò)上性能的測試 應(yīng)用在服務(wù)器上性能的測試一個(gè)測試方案的例子一個(gè)測試計(jì)劃的例子46測試指標(biāo)客戶端交易處理性能指標(biāo) 服務(wù)器資源監(jiān)控,例如: UNIX數(shù)據(jù)庫資源監(jiān)控,例如: OracleWeb服務(wù)器監(jiān)控,例如: Apache中間件監(jiān)控,例
12、如: TUXEDO等等47自動(dòng)化負(fù)載壓力測試?yán)没蜷_發(fā)負(fù)載壓力測試的自動(dòng)化測試方法,包括:程序、工具、流程等等。48自動(dòng)化負(fù)載壓力測試優(yōu)勢(shì)自動(dòng)化測試優(yōu)勢(shì)分析快速比手工操作絕對(duì)快可靠每一次運(yùn)行精確地執(zhí)行相同的操作,可以排除手工操作錯(cuò)誤可重復(fù)測試相同操作重復(fù)執(zhí)行時(shí)軟件如何響應(yīng)可編程的可以編程實(shí)現(xiàn)得到應(yīng)用系統(tǒng)隱藏信息的復(fù)雜測試綜合測試可以實(shí)現(xiàn)覆蓋應(yīng)用系統(tǒng)每個(gè)特征的一套綜合測試方案可重用的針對(duì)應(yīng)用系統(tǒng)的不同版本,測試腳本可重復(fù)使用,即使用戶界面發(fā)生變化49選擇自動(dòng)化負(fù)載壓力測試方法利用自動(dòng)化負(fù)載壓力測試工具 開放資源(OpenSource)測試 自主開發(fā)代碼測試 50自動(dòng)化負(fù)載壓力測試概念通過在一臺(tái)或
13、幾臺(tái)PC機(jī)上模擬成百或上千的虛擬用戶同時(shí)執(zhí)行業(yè)務(wù)的情景,對(duì)應(yīng)用程序進(jìn)行測試,通過可重復(fù)的、真實(shí)的測試能夠徹底地度量應(yīng)用的性能,確定問題所在。工程項(xiàng)目實(shí)踐證明,其測試結(jié)果與實(shí)際情況完全符合。51自動(dòng)化負(fù)載壓力測試實(shí)現(xiàn)機(jī)制自動(dòng)負(fù)載測試52自動(dòng)化負(fù)載壓力測試工具LoadRunner美國Mercury Interactive公司QALoad美國Compuware(康博)公司Rational Robot 美國IBM公司SILK PERFORMER V 美國Segue 公司Benchmark Factory美國Quest軟件公司W(wǎng)AS美國Mcrosoft 公司53自動(dòng)化負(fù)載壓力測試工具自動(dòng)化負(fù)載壓力測試工
14、具對(duì)比54自動(dòng)化負(fù)載壓力測試工具選擇依據(jù)模擬您的客戶機(jī)運(yùn)行多個(gè)模擬的客戶機(jī) 腳本化執(zhí)行并能編輯腳本 支持會(huì)話 可配置的用戶數(shù)量 報(bào)告成功、錯(cuò)誤和失敗 55自動(dòng)化負(fù)載壓力測試工具缺陷缺乏功能點(diǎn)的校驗(yàn)對(duì)有些控件支持得不好不能達(dá)到真實(shí)模擬負(fù)載腳本的支持不夠靈活報(bào)錯(cuò)定位不夠詳細(xì)56自動(dòng)化負(fù)載壓力測試工具盲點(diǎn)在負(fù)載測試中,不進(jìn)行功能校驗(yàn),就是當(dāng)功能錯(cuò)誤發(fā)生時(shí),測試工具不能夠記錄產(chǎn)生的功能性錯(cuò)誤,這就忽略了負(fù)載壓力情況下的功能不穩(wěn)定問題。在負(fù)載壓力測試過程中記錄所有虛擬用戶的操作及服務(wù)器的響應(yīng)是當(dāng)前負(fù)載壓力測試技術(shù)發(fā)展的最大挑戰(zhàn)。但測試過程中的附加記錄會(huì)導(dǎo)致資源消耗、操作行為增加以及產(chǎn)生大量日志等問題。
15、57開放資源(OpenSource)測試 開放系統(tǒng)測試體系OpenSTA ) TestMaker() Apache JMeter () 58開發(fā)測試工具舉例Web服務(wù)器通用性能測試系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)實(shí)際系統(tǒng)由四部分組成:模板文件數(shù)據(jù)文件性能測試程序結(jié)果處理程序59開發(fā)測試工具舉例系統(tǒng)結(jié)構(gòu)示意圖60開發(fā)測試工具舉例主流程圖61開發(fā)測試工具舉例通用應(yīng)用系統(tǒng)性能評(píng)測環(huán)境設(shè)計(jì)62開發(fā)測試工具舉例通用應(yīng)用系統(tǒng)性能評(píng)測環(huán)境設(shè)計(jì)63開發(fā)測試工具舉例通用應(yīng)用系統(tǒng)性能評(píng)測環(huán)境設(shè)計(jì)接口名稱功能接口函數(shù)原型(C語言描述)事務(wù)處理邏輯類型此接口提供應(yīng)用系統(tǒng)相關(guān)的事務(wù)類型ID,通常情況下應(yīng)用系統(tǒng)由多種事務(wù)組成,評(píng)測系統(tǒng)應(yīng)
16、該能夠區(qū)分它們Int Perf_GetTransactionID(void);接口初始化初始化應(yīng)用系統(tǒng)。諸如創(chuàng)建數(shù)據(jù)庫連接等操作在此接口中進(jìn)行int Perf_InitLib(void);執(zhí)行事務(wù)處理實(shí)際事務(wù)處理接口,事務(wù)執(zhí)行的起止時(shí)間和執(zhí)行狀態(tài)在此記錄int Perf_DoTransaction(void* pBuffer,int nBufferSize);接口資源釋放釋放應(yīng)用系統(tǒng)資源。諸如關(guān)閉數(shù)據(jù)庫連接等操作在此函數(shù)int Perf_FreeLib(void);64開發(fā)測試工具舉例通用應(yīng)用系統(tǒng)性能評(píng)測環(huán)境設(shè)計(jì)操作系統(tǒng)開發(fā)環(huán)境Win32(WindowsNT4/2000/XP)Visual C
17、+ 6.0 SP5SUN Solaris8(x86)Forte C+ 6 Update 2Linux(x86 kernel 2.4.7 glibc 2.2.4)KDevelop 2.065測試結(jié)果指標(biāo)分析客戶端負(fù)載壓力指標(biāo)為了完成一個(gè)任務(wù),用戶對(duì)應(yīng)用程序執(zhí)行的一組操作,例如登陸一個(gè)Web站點(diǎn)、搜索一個(gè)飛機(jī)票信息、在網(wǎng)上買一本書等等。虛擬并發(fā)用戶數(shù)(Total Virtual Users)交易響應(yīng)時(shí)間(Response Time) 每分鐘交易數(shù)(Trans Rate)吞吐量圖 (ThroughOut)66測試結(jié)果指標(biāo)分析客戶端負(fù)載壓力指標(biāo)-交易處理指標(biāo). 平均事務(wù)響應(yīng)時(shí)間圖. 每秒事務(wù)數(shù)圖. 每
18、秒事務(wù)總數(shù). 事務(wù)摘要圖. 事務(wù)性能摘要圖. 事務(wù)響應(yīng)時(shí)間(負(fù)載下)圖. 事務(wù)響應(yīng)時(shí)間(百分比)圖. 事務(wù)響應(yīng)時(shí)間(分布)圖67測試結(jié)果指標(biāo)分析客戶端負(fù)載壓力指標(biāo)-Web請(qǐng)求指標(biāo). 每秒點(diǎn)擊次數(shù)圖. 點(diǎn)擊次數(shù)摘要圖. 吞吐量圖. 吞吐量摘要圖. HTTP 狀態(tài)代碼摘要圖. 每秒HTTP 響應(yīng)數(shù)圖. 每秒下載頁面數(shù)圖. 每秒重試次數(shù)圖. 重試次數(shù)摘要圖. 連接數(shù)圖. 每秒連接數(shù)圖. 每秒SSL 連接數(shù)圖68測試結(jié)果指標(biāo)分析客戶端負(fù)載壓力指標(biāo)-Web頁面組件指標(biāo). 激活網(wǎng)頁細(xì)分圖. 頁面組件細(xì)分圖. 頁面組件細(xì)分(隨時(shí)間變化)圖. 頁面下載時(shí)間細(xì)分圖. 頁面下載時(shí)間細(xì)分(隨時(shí)間變化)圖. 第一次緩
19、沖細(xì)分時(shí)間圖. 第一次緩沖時(shí)間細(xì)分(隨時(shí)間變化)圖. 已下載組件大小圖69測試結(jié)果指標(biāo)分析服務(wù)器資源使用指標(biāo)-UNIX70測試結(jié)果指標(biāo)分析服務(wù)器資源使用指標(biāo)-Windows2000 Server71測試結(jié)果指標(biāo)分析服務(wù)器資源使用指標(biāo)-Windows2000 Server(續(xù))72測試結(jié)果指標(biāo)分析服務(wù)器資源使用指標(biāo)-Windows2000 Server(續(xù))看一個(gè)例子73測試結(jié)果指標(biāo)分析服務(wù)器資源使用指標(biāo)-數(shù)據(jù)庫SQLServer74測試結(jié)果指標(biāo)分析服務(wù)器資源使用指標(biāo)-中間件Tuxedo75測試結(jié)果指標(biāo)分析網(wǎng)絡(luò)監(jiān)控指標(biāo):吞吐量容量(信道容量或帶寬)利用率最優(yōu)利用率可提供負(fù)載有效率延遲延遲變化量響
20、應(yīng)時(shí)間76測試典型案例分析系統(tǒng)故障定位與分析最難的問題77系統(tǒng)瓶頸分析舉例經(jīng)驗(yàn)舉例1交易的響應(yīng)時(shí)間如果很長,遠(yuǎn)遠(yuǎn)超過系統(tǒng)性能需求,表示耗費(fèi)CPU的數(shù)據(jù)庫操作,例如排序,執(zhí)行aggregate functions(例如sum、min、max、count)等較多,可考慮是否有索引以及索引建立的是否合理;盡量使用簡單的表聯(lián)接;水平分割大表格等方法來降低該值。 78系統(tǒng)瓶頸分析舉例經(jīng)驗(yàn)舉例2分段排除錯(cuò)誤。測試工具可以模擬不同的虛擬用戶來單獨(dú)訪問Web服務(wù)器、應(yīng)用服務(wù)器和數(shù)據(jù)庫服務(wù)器,這樣,就可以在Web端測出的響應(yīng)時(shí)間減去以上各個(gè)分段測出的時(shí)間就可以知道瓶頸在哪并著手調(diào)優(yōu)。 79系統(tǒng)瓶頸分析舉例經(jīng)驗(yàn)舉
21、例3UNIX資源監(jiān)控(NT操作系統(tǒng)同理)中指標(biāo)內(nèi)存頁交換速率(Paging rate),如果該值偶爾走高,表明當(dāng)時(shí)有線程競爭內(nèi)存。如果持續(xù)很高,則內(nèi)存可能是瓶頸。也可能是內(nèi)存訪問命中率低。“S rate”和“S rate”也有類似的解釋。 80系統(tǒng)瓶頸分析舉例經(jīng)驗(yàn)舉例4UNIX資源監(jiān)控(NT操作系統(tǒng)同理)中指標(biāo)CPU占用率(CPU utilization),如果該值持續(xù)超過95%,表明瓶頸是CPU??梢钥紤]增加一個(gè)處理器或換一個(gè)更快的處理器 。合理使用的范圍在60%至70%。81系統(tǒng)瓶頸分析舉例經(jīng)驗(yàn)舉例5UNIX資源監(jiān)控(NT操作系統(tǒng)同理)中指標(biāo)磁盤交換率(Disk rate),如果該參數(shù)值一
22、直很高,表明I/O有問題。可考慮更換更快的硬盤系統(tǒng)、重新部署業(yè)務(wù)邏輯等,另外設(shè)置Tempdb in RAM,減低max async IO,max lazy writer IO等措施都會(huì)降低該值。 82系統(tǒng)瓶頸分析舉例經(jīng)驗(yàn)舉例6Tuxedo資源監(jiān)控中指標(biāo)隊(duì)列中的字節(jié)數(shù)(Bytes on queue),隊(duì)列長度應(yīng)不超過磁盤數(shù)的1.52倍。要提高性能,可增加磁盤。注意:一個(gè)Raid Disk實(shí)際有多個(gè)磁盤。83系統(tǒng)瓶頸分析舉例經(jīng)驗(yàn)舉例7SQLServer資源監(jiān)控中指標(biāo)緩存點(diǎn)擊率(Cache Hit Ratio),該值越高越好。如果持續(xù)低于80%,應(yīng)考慮增加內(nèi)存。 注意該參數(shù)值是從SQL Server
23、啟動(dòng)后,就一直累加記數(shù),所以運(yùn)行經(jīng)過一段時(shí)間后,該值將不能反映系統(tǒng)當(dāng)前值。 84優(yōu)化調(diào)整設(shè)置 CPU問題:考慮使用更高級(jí)的CPU代替目前的CPU對(duì)于多CPU,考慮CPU之間的負(fù)載分配考慮在其它體系上設(shè)計(jì)系統(tǒng),例如增加前置機(jī)、設(shè)置并行服務(wù)器等。85優(yōu)化調(diào)整設(shè)置 內(nèi)存和高速緩存內(nèi)存的優(yōu)化包括操作系統(tǒng)、數(shù)據(jù)庫、應(yīng)用程序的內(nèi)存優(yōu)化。過多的分頁與交換可能降低系統(tǒng)的性能內(nèi)存分配也是影響系統(tǒng)性能的主要原因保證保留列表具有較大的鄰接內(nèi)存塊調(diào)整數(shù)據(jù)塊緩沖區(qū)大?。ㄓ脭?shù)據(jù)塊的個(gè)數(shù)表示)是一個(gè)重要內(nèi)容將最頻繁使用的數(shù)據(jù)保存在存儲(chǔ)區(qū)中86優(yōu)化調(diào)整設(shè)置 磁盤(I/O)資源問題磁盤讀寫進(jìn)度對(duì)數(shù)據(jù)庫系統(tǒng)是至關(guān)重要的,數(shù)據(jù)庫對(duì)
24、象在物理設(shè)備上的合理分布能改善性能磁盤鏡像會(huì)減慢磁盤寫的速度通過把日志和數(shù)據(jù)庫對(duì)象分布在獨(dú)立的設(shè)備上可以提高系統(tǒng)的性能把不同的數(shù)據(jù)庫放在不同的硬盤上,可以提高讀寫速度。經(jīng)常把數(shù)據(jù)庫、回滾段、日志放在不同的設(shè)備上把表放在一塊硬盤上,把非簇的索引放在另一塊硬盤上,保證物理讀寫更快87優(yōu)化調(diào)整設(shè)置 調(diào)整配置參數(shù)包括操作系統(tǒng)和數(shù)據(jù)庫的參數(shù)配置并行操作資源限制的參數(shù)(并發(fā)用戶的數(shù)目、會(huì)話數(shù))影響資源開銷的參數(shù)與I/O有關(guān)的參數(shù)88優(yōu)化調(diào)整設(shè)置 優(yōu)化應(yīng)用系統(tǒng)網(wǎng)絡(luò)設(shè)置可以通過數(shù)組接口來減少網(wǎng)絡(luò)呼叫。不是一次提取一行,而是在單個(gè)往來往返中提取10行,這樣做效率較高調(diào)整會(huì)話數(shù)據(jù)單元的緩沖區(qū)大小共享服務(wù)進(jìn)程比專用
25、服務(wù)進(jìn)程提供較好的性能89故障定位與分析 一個(gè)測試實(shí)例90測試典型案例分析 數(shù)據(jù)庫服務(wù)器典型性能調(diào)優(yōu)與評(píng)估91數(shù)據(jù)庫服務(wù)器典型性能問題數(shù)據(jù)庫服務(wù)器性能問題及原因分析 單一類型事務(wù)響應(yīng)時(shí)間過長 數(shù)據(jù)庫服務(wù)器負(fù)載 糟糕的數(shù)據(jù)庫設(shè)計(jì) 事務(wù)粒度過大 批任務(wù)對(duì)普通用戶性能的影響 并發(fā)處理能力差 鎖沖突嚴(yán)重 資源鎖定造成的數(shù)據(jù)庫事務(wù)超時(shí) 數(shù)據(jù)庫死鎖 92數(shù)據(jù)庫服務(wù)器典型性能問題數(shù)據(jù)庫性能問題的一般解決辦法 監(jiān)視性能相關(guān)數(shù)據(jù);定位資源占用較大的事務(wù)并做出必要的優(yōu)化或調(diào)整;定位鎖沖突,修改鎖沖突發(fā)生嚴(yán)重的應(yīng)用邏輯;對(duì)規(guī)模較大的數(shù)據(jù)或者無法通過一般優(yōu)化解決的鎖沖突進(jìn)行分布。93Oracle與提高性能有關(guān)的特性
26、索引并行執(zhí)行簇與散列簇分區(qū)多線程服務(wù)器同時(shí)讀取多塊數(shù)據(jù) 94Oracle配置的關(guān)鍵參數(shù) MAX_DSPATCHERS:這個(gè)參數(shù)指定了系統(tǒng)允許同時(shí)進(jìn)行的調(diào)度進(jìn)程的最大數(shù)量。MAX_SHARED_SERVERS:這個(gè)參數(shù)指定了系統(tǒng)允許同時(shí)進(jìn)行的共享服務(wù)器進(jìn)程的最大數(shù)量。如果系統(tǒng)中出現(xiàn)的人為死鎖過于頻繁,那么管理員應(yīng)該增大這個(gè)參數(shù)的值。PARALLEL_ADAPTIVE_MULTI_USER:當(dāng)這個(gè)參數(shù)的值為TRUE時(shí),系統(tǒng)將啟動(dòng)一個(gè)能提高使用并行執(zhí)行的多用戶系統(tǒng)性能的自適應(yīng)算法。這個(gè)算法將根據(jù)查詢開始時(shí)的系統(tǒng)負(fù)載自動(dòng)降低查詢請(qǐng)求的并行度。95Oracle配置的關(guān)鍵參數(shù) PARLLEL_MIN_SE
27、RVERS:這個(gè)參數(shù)指定了實(shí)例并行執(zhí)行進(jìn)程的最小數(shù)量。其值就是實(shí)例啟動(dòng)時(shí)Oracle創(chuàng)建的并行執(zhí)行進(jìn)程數(shù)。PARLLEL_THREADS_PER_CPU:這個(gè)參數(shù)指定了實(shí)例默認(rèn)的并行度和并行自適應(yīng)以及負(fù)載平衡算法。它指明了并行執(zhí)行過程中一個(gè)CPU能處理的進(jìn)程或線程數(shù)。PARTITION_VIEW_ENABLED:這個(gè)參數(shù)指定了優(yōu)化器是否使用分區(qū)視圖。Oracle推薦用戶使用分區(qū)表(這是在Oracle8之后引入的)而不是分區(qū)視圖。分區(qū)視圖只是為了提供Oracle的后向兼容性。REVOVERY_PARALLELISM:這個(gè)參數(shù)指定了恢復(fù)數(shù)據(jù)庫系統(tǒng)時(shí)使用的進(jìn)程數(shù)。 96Oracle的索引 索引和降低
28、系統(tǒng)處理的數(shù)據(jù)量 索引和更新 在字段選擇性很低的情況下適用索引97Oracle的并行執(zhí)行特性 RDBMS的絕大多數(shù)操作都可分為以下3類:被CPU限制的操作:這類操作的速度和單CPU運(yùn)行速度一樣。通過并行化操作,多個(gè)CPU可并行處理系統(tǒng)負(fù)載,因此可以更快完成該操作。被I/O限制的操作:這類操作花了絕大部分時(shí)間等待系統(tǒng)完成I/O操作。當(dāng)系統(tǒng)中同時(shí)出現(xiàn)多個(gè)I/O請(qǐng)求時(shí),絕大多數(shù)RAID控制器將很好工作。另外,當(dāng)一個(gè)線程需要等待完成I/O操作時(shí),可充分利用CPU來處理另一線程的CPU部分。被競爭限制的操作:并行處理不能改善由資源競爭所限制的操作。98Oracle的并行執(zhí)行特性 應(yīng)當(dāng)首先根據(jù)如下一些因素
29、考慮并行度 :計(jì)算機(jī)的CPU能力:CPU的數(shù)量和能力將影響系統(tǒng)能運(yùn)行的查詢進(jìn)程數(shù)量。系統(tǒng)處理大量進(jìn)程的能力:一些操作系統(tǒng)能處理很多并發(fā)進(jìn)程,而另一些操作系統(tǒng)則沒有這方面的能力。系統(tǒng)負(fù)載:如果系統(tǒng)現(xiàn)在的運(yùn)行已經(jīng)達(dá)到了極限,那么對(duì)并行度的調(diào)整不會(huì)有太大效果。如果系統(tǒng)運(yùn)行已達(dá)其能力極限的90%,那么太多的查詢進(jìn)程將使系統(tǒng)不堪重負(fù)。系統(tǒng)處理的查詢數(shù)量:如果系統(tǒng)的大部分操作是更新操作,但仍有少量的重要查詢存在,那么開發(fā)人員可能希望系統(tǒng)運(yùn)行多個(gè)查詢進(jìn)程。系統(tǒng)的I/O能力:如果磁盤上的數(shù)據(jù)是分片或是使用磁盤陣列存儲(chǔ)的,那么系統(tǒng)能夠處理多個(gè)并行查詢。操作類型:系統(tǒng)是否需要處理很多的全表掃描或排序?并行查詢服務(wù)
30、器非常有助于這類操作。99Oracle的并行執(zhí)行特性 并行查詢處理 并行創(chuàng)建索引 并行加載數(shù)據(jù) 并行恢復(fù) 100Oracle的并行執(zhí)行特性 關(guān)于并行度的一些建議 :諸如排序之類的需要大量CPU資源的操作應(yīng)當(dāng)采用較低的并行度。其原因是這類受限于CPU的操作已經(jīng)充分利用了CPU,而不需等待系統(tǒng)的I/O操作。諸如全表掃描之類的需要大量磁盤I/O的操作應(yīng)當(dāng)采用較高的并行度。需要等待磁盤I/O的操作越多,系統(tǒng)就越能受益于并行操作。如果系統(tǒng)中有大量的并發(fā)進(jìn)程,那么應(yīng)當(dāng)采用較低的并行度。因?yàn)樘嗟倪M(jìn)程將使系統(tǒng)不堪重負(fù)。 101Oracle的簇與散列簇 有利 不利102Oracle的同時(shí)讀取多塊數(shù)據(jù) 當(dāng)系統(tǒng)執(zhí)
31、行表掃描時(shí),Oracle具備同時(shí)讀取多個(gè)數(shù)據(jù)塊的能力,這種能力提高了系統(tǒng)的I/O速度。通過同時(shí)讀取多塊數(shù)據(jù),Oracle能夠從磁盤上讀取更大的數(shù)據(jù)塊,從而避免了對(duì)磁盤上數(shù)據(jù)進(jìn)行搜索的操作。通過降低磁盤搜索和讀取更大的數(shù)據(jù)塊,可以降低系統(tǒng)的I/O開銷和CPU開銷。 103Oracle的分區(qū) 分區(qū)方案:Range Partitioning:這種方案根據(jù)數(shù)據(jù)的范圍,比如月、年等等對(duì)表中的數(shù)據(jù)進(jìn)行分區(qū)。List Partitioning:這種方案和Range Partitioning分區(qū)方案很類似,但這種方案是按照數(shù)據(jù)的值而不是數(shù)據(jù)的范圍來進(jìn)行分區(qū)劃分的。Hash Partitioning:這種分區(qū)方
32、案使用散列函數(shù)來實(shí)現(xiàn)對(duì)數(shù)據(jù)的自動(dòng)分區(qū)。Sub- Partitioning:這種方法就是開發(fā)人員熟悉的復(fù)合分區(qū)方法。這種方法允許開發(fā)人員同時(shí)使用多種分區(qū)方案。104Oracle的分區(qū) 分區(qū)有以下幾方面的好處 :對(duì)能被分區(qū)的大尺寸表進(jìn)行掃描時(shí),分區(qū)可降低I/O操作和CPU的使用率??稍诜謪^(qū)的層次上而不是表的層次上加載數(shù)據(jù)。能以刪除分區(qū)的方式刪除數(shù)據(jù),而不必使用SELECT語句來刪除大量數(shù)據(jù)。對(duì)用戶和應(yīng)用程序而言,分區(qū)是完全透明的。可在分區(qū)層次上而不是在表層次上維護(hù)數(shù)據(jù)。105Oracle的多線程服務(wù)器 用戶可通過專用服務(wù)器進(jìn)程連接到Oracle實(shí)例,也可以通過多線程服務(wù)器進(jìn)程連接到Oracle實(shí)例
33、。因?yàn)槊恳粋€(gè)專用服務(wù)器進(jìn)程都將占用大量內(nèi)存資源和系統(tǒng)資源,所以有必要對(duì)多用戶連接采用多線程服務(wù)器進(jìn)程。 多線程服務(wù)器進(jìn)程允許多個(gè)用戶使用一定數(shù)量的共享服務(wù)器進(jìn)程。共享服務(wù)器進(jìn)程使用共享緩沖池對(duì)用戶請(qǐng)求進(jìn)行排隊(duì)并返回?cái)?shù)據(jù),從而大大減少CPU和內(nèi)存的使用。 106測試典型案例分析硬件配置與系統(tǒng)性能測試實(shí)例107測試典型案例分析服務(wù)器集群與系統(tǒng)性能測試實(shí)例108案例測試經(jīng)驗(yàn)交流負(fù)載均衡與系統(tǒng)性能測試實(shí)例109案例測試經(jīng)驗(yàn)交流負(fù)載均衡基礎(chǔ)知識(shí)負(fù)載均衡策略:靜態(tài)方式、動(dòng)態(tài)方式:負(fù)載均衡針對(duì)的應(yīng)用負(fù)載均衡記錄文件用戶表回話保持概念回話保持方式負(fù)載均衡器布置110測試典型案例分析案例測試經(jīng)驗(yàn)交流111案例測
34、試經(jīng)驗(yàn)交流一個(gè)文檔、郵件接收與發(fā)送系統(tǒng):業(yè)務(wù)“下傳文檔”錄制不全,本地保存與打開不能夠錄制上。Weblogic監(jiān)控需要做的準(zhǔn)備工作是系統(tǒng)不能登陸,IE問題Windows 2000 Server的資源監(jiān)控把握3個(gè)重點(diǎn)Unix資源監(jiān)控,如果LoadRunner無法監(jiān)控 7.5的license加到7.8上,出現(xiàn)監(jiān)控counter全部丟失的現(xiàn)象在結(jié)果文件analysis中直接可以得到excel格式的結(jié)果112案例測試經(jīng)驗(yàn)交流一個(gè)多媒體處理系統(tǒng):出現(xiàn)業(yè)務(wù)“登陸”無法并發(fā)的現(xiàn)象 “登陸”無法并發(fā)并不影響后面交易的并發(fā)執(zhí)行采用correlation技術(shù)實(shí)現(xiàn)壓力對(duì)于“查詢”操作驗(yàn)證檢查結(jié)果是否正確。QALoa
35、d和LoadRunner所錄的腳本不一致QALoad所錄腳本并發(fā),交易都成功,但報(bào)400及500錯(cuò)誤113案例測試經(jīng)驗(yàn)交流一個(gè)打掃碼信息處理系統(tǒng):Winsock連接要考慮是否有必要做并發(fā)性能測試?還是需要做疲勞測試?默認(rèn)的分析中thinktime時(shí)間沒有去掉加壓前系統(tǒng)的性能指標(biāo)應(yīng)該關(guān)注,否則沒有參考依據(jù),例如CPU、內(nèi)存、Disk I/O等。指標(biāo)Disk Time在磁盤陣列時(shí)失效,其值大于100,應(yīng)注意監(jiān)控“idle time”指標(biāo)。114案例測試經(jīng)驗(yàn)交流一個(gè)工作流系統(tǒng)的選型測試:測試數(shù)據(jù)的準(zhǔn)備集群的驗(yàn)證115案例測試經(jīng)驗(yàn)交流一個(gè)稅務(wù)測試:1. 關(guān)閉視圖降低系統(tǒng)的交易平均響應(yīng)時(shí)間;2. 并發(fā)測
36、試過程中,當(dāng)大規(guī)模并發(fā)時(shí)候,出現(xiàn)服務(wù)器拒絕連接的情況,connection refused(10061),被測試系統(tǒng)為WEBLOGIC應(yīng)用服務(wù)器,調(diào)整weblogic配置參數(shù)backlog的值,可以克服該問題;3. 索引使用不當(dāng);4. 代理的吞吐能力影響并發(fā)用戶數(shù)116案例測試經(jīng)驗(yàn)交流一個(gè)IC卡處理系統(tǒng):中間件客戶端連接數(shù)隊(duì)列阻塞問題數(shù)據(jù)庫優(yōu)化選項(xiàng)問題負(fù)載均衡問題117案例測試經(jīng)驗(yàn)交流工具不能支持的被測對(duì)象:Oracle FormSMTPSSLNC118案例測試經(jīng)驗(yàn)交流負(fù)載壓力性能指標(biāo)的區(qū)別(CPU):LoadRunnerVmstat命令I(lǐng)ostat命令Mpstat命令Top命令119案例測試
37、經(jīng)驗(yàn)交流不同的工具監(jiān)控性能指標(biāo)(CPU):最大并發(fā)用戶數(shù)最大連接數(shù)最大在線用戶數(shù)最大注冊(cè)用戶數(shù)120測試案例介紹并發(fā)性能測試幾個(gè)應(yīng)用實(shí)例 實(shí)例1:計(jì)費(fèi)帳務(wù)系統(tǒng)V3.0 測試類型:并發(fā)、疲勞 系統(tǒng)運(yùn)行模式:三層結(jié)構(gòu)中間件TUXEDO、數(shù)據(jù)庫服務(wù)器操作系統(tǒng)UNIX、數(shù)據(jù)庫Oracle 監(jiān)測的測試指標(biāo)包括:交易處理性能、UNIX資源、TUXEDO資源 并發(fā)用戶數(shù):50 測試工具: LoadRunner7.5.1 解決的問題:業(yè)務(wù)執(zhí)行平均響應(yīng)時(shí)間在100秒左右,經(jīng)過調(diào)優(yōu)后,平均響應(yīng)時(shí)間降為10秒 例圖如下121測試案例介紹銷帳,并發(fā)用戶數(shù)50,平均響應(yīng)時(shí)間122測試案例介紹實(shí)例2:加油IC卡試點(diǎn)工程核
38、心軟件V2.0 測試類型:并發(fā) 系統(tǒng)運(yùn)行模式:發(fā)卡網(wǎng)點(diǎn)子系統(tǒng)采用三層結(jié)構(gòu)的運(yùn)行模 式,零管子系統(tǒng)采用C/S運(yùn)行模式。中間件TUXEDO、數(shù)據(jù)庫服務(wù)器操作系統(tǒng)UNIX、數(shù)據(jù)庫Sybase 監(jiān)測的測試指標(biāo)包括:交易處理性能、UNIX資源、TUXEDO資源 并發(fā)用戶數(shù):銷售信息查詢100,單用戶卡充值170 測試工具:QALoad、 LoadRunner123測試案例介紹實(shí)例2:加油IC卡試點(diǎn)工程核心軟件V2.0 (續(xù)) 解決的問題:銷售信息查詢,當(dāng)記錄條數(shù)達(dá)到時(shí),系統(tǒng)在15分鐘內(nèi)無任何響應(yīng) 。經(jīng)分析確定為系統(tǒng)數(shù)據(jù)庫的架構(gòu)存在問題。 例圖如下:124測試案例介紹1100用戶 250用戶 330用戶
39、420用戶 510用戶 125測試案例介紹實(shí)例3:高速公路聯(lián)網(wǎng)收費(fèi)系統(tǒng)V1.1 測試類型:并發(fā)、疲勞系統(tǒng)運(yùn)行模式: 該軟件為C/S結(jié)構(gòu),數(shù)據(jù)庫Informix7.3 ,中間件(自行開發(fā))Winsock,各級(jí)服務(wù)器均為IBM系列服務(wù)器監(jiān)測的測試指標(biāo)包括: UNIX資源并發(fā)用戶數(shù):100測試工具:QALoad、 LoadRunner解決的問題:CPU占用率基本保持在65,在并發(fā)用戶數(shù)為100,交易數(shù)為100的情況下達(dá)到82%,最大值達(dá)到90以上??梢奀PU占用率將來有可能會(huì)成為系統(tǒng)瓶頸疲勞測試丟失數(shù)據(jù)763條,中間件的穩(wěn)定性有待進(jìn)一步提高 例圖如下:126測試案例介紹0309100_05F:虛擬用
40、戶數(shù)100 0309100_060:虛擬用戶數(shù)100309100_061:虛擬用戶數(shù)30 0309100_062:虛擬用戶數(shù)50圖:入口車道往結(jié)算中心上傳交易響應(yīng)時(shí)間分布圖127測試案例介紹實(shí)例4:多媒體數(shù)據(jù)庫 V1.0 測試類型:并發(fā)、疲勞系統(tǒng)運(yùn)行模式:B/S運(yùn)行模式,三層結(jié)構(gòu),web服務(wù)器為Apache,后臺(tái)各服務(wù)器操作系統(tǒng)為UNIX或者Linux,數(shù)據(jù)庫為Oracle監(jiān)測的測試指標(biāo)包括: UNIX(Linux)、Oracle以及Apache資源并發(fā)用戶數(shù):200測試工具:QALoad、 LoadRunner解決的問題:當(dāng)并發(fā)用戶數(shù)超過200時(shí),監(jiān)控到HTTP 500、connect以及超
41、時(shí)錯(cuò)誤,且web服務(wù)器報(bào)內(nèi)存溢出錯(cuò)誤,系統(tǒng)應(yīng)進(jìn)一步提高性能,以支持更大并發(fā)用戶數(shù)。 例圖如下: 128測試案例介紹129測試案例介紹實(shí)例5:業(yè)務(wù)流程管理平臺(tái)V1.0 測試類型:并發(fā)、疲勞系統(tǒng)運(yùn)行模式:B/S運(yùn)行模式,三層結(jié)構(gòu),web服務(wù)器為WebSphere ,后臺(tái)各服務(wù)器操作系統(tǒng)為Windows2000 Server ,數(shù)據(jù)庫為DB2監(jiān)測的測試指標(biāo)包括:數(shù)據(jù)庫服務(wù)器、應(yīng)用服務(wù)器、Web服務(wù)器的network interface、Windows2000 Server performance、數(shù)據(jù)庫DB2、WebSphere等資源并發(fā)用戶數(shù):500測試工具:QALoad、 LoadRunner解
42、決的問題:并發(fā)用戶數(shù)為500時(shí)的系統(tǒng)交易響應(yīng)時(shí)間在不可接受的范圍內(nèi),數(shù)據(jù)庫服務(wù)器的資源占用預(yù)計(jì)會(huì)成為系統(tǒng)運(yùn)行瓶頸。 例圖如下: 130測試案例介紹1.業(yè)務(wù):wokflow,總并發(fā)用戶數(shù):100; 2. 業(yè)務(wù):wokflow,總并發(fā)用戶數(shù):300;3. 業(yè)務(wù):wokflow,總并發(fā)用戶數(shù):500; 4. 業(yè)務(wù):homepage,總并發(fā)用戶數(shù):100;5. 業(yè)務(wù):homepage,總并發(fā)用戶數(shù):300; 6. 業(yè)務(wù):homepage,總并發(fā)用戶數(shù):500;7. 業(yè)務(wù):mail,總并發(fā)用戶數(shù):100; 8. 業(yè)務(wù):mail,總并發(fā)用戶數(shù):300;9. 業(yè)務(wù):mail,總并發(fā)用戶數(shù):500; 10.
43、業(yè)務(wù):mailsend,總并發(fā)用戶數(shù):100;11. 業(yè)務(wù):mailsend,總并發(fā)用戶數(shù):300; 12. 業(yè)務(wù):mailsend,總并發(fā)用戶數(shù):500131測試工具上機(jī)實(shí)習(xí)負(fù)載壓力測試工具:LoadRunner7.8上機(jī)實(shí)習(xí)內(nèi)容:BSCS自己開發(fā)測試腳本資源監(jiān)控132測試工具的使用技巧面向目標(biāo)的測試方案參數(shù)池技術(shù) 將事務(wù)插入到Vuser腳本 將集合點(diǎn)插入到Vuser腳本 動(dòng)態(tài)數(shù)據(jù)關(guān)聯(lián) IP數(shù)據(jù)池 Web站點(diǎn)經(jīng)驗(yàn)點(diǎn)滴 腳本調(diào)試技術(shù) 測試工具配置技巧 加載GUI腳本Oracle故障診斷特殊的測試類型133面向目標(biāo)的測試方案虛擬IP數(shù)據(jù)池用戶目標(biāo)類型 每秒點(diǎn)擊次數(shù)、每分鐘頁面數(shù)或每秒事務(wù)數(shù) 事務(wù)
44、響應(yīng)時(shí)間目標(biāo)類型 134參數(shù)池技術(shù)(1)135參數(shù)池技術(shù)(2)136Manual Correlation 提問:系統(tǒng)的輸出值需要為后續(xù)操作提供輸入:系統(tǒng)產(chǎn)生的SessionID;每次訪問Web頁面的動(dòng)態(tài)URL;表單提交期間錄制的Field(有時(shí)會(huì)隱藏)這些值只對(duì)當(dāng)前會(huì)話有效。解決辦法:從一個(gè)操作步驟中撲捉輸出值該值用于另一個(gè)步驟的輸入137Manual Correlation這里我們提供幾種關(guān)聯(lián)數(shù)據(jù)的方法:手工關(guān)聯(lián)錄制結(jié)束后自動(dòng)關(guān)聯(lián)錄制過程中自動(dòng)關(guān)聯(lián)138Manual Correlation在Vuser腳本中關(guān)聯(lián)動(dòng)態(tài)數(shù)據(jù)步驟:確定需要撲捉的值找到所撲捉值的左右邊界標(biāo)識(shí)符決定應(yīng)該使用哪個(gè)邊界將函
45、數(shù)web_reg_save_param加入腳本在函數(shù)中加入?yún)?shù)名稱、左邊界標(biāo)識(shí)符、右邊界標(biāo)識(shí)符以及函數(shù)事件在每次腳本運(yùn)行時(shí)參數(shù)化動(dòng)態(tài)數(shù)據(jù)校驗(yàn)執(zhí)行結(jié)果139IP數(shù)據(jù)池運(yùn)行負(fù)載生成器上的“IP 向?qū)А碧砑又付〝?shù)量的IP 地址。為UNIX 負(fù)載生成器計(jì)算機(jī)手動(dòng)配置新的IP 地址。重新啟動(dòng)計(jì)算機(jī)。如有必要,用新地址來更新服務(wù)器的路由表。在Controller 中啟用這項(xiàng)功能。 140Web應(yīng)用測試測試策略 設(shè)計(jì)測試 開發(fā)測試應(yīng)用測試 141Web應(yīng)用測試策略按系統(tǒng)架構(gòu):客戶端測試、網(wǎng)絡(luò)上測試、服務(wù)器端測試按面向?qū)ο螅汗δ軠y試、服務(wù)測試、安全測試、數(shù)據(jù)庫測試按質(zhì)量特性:功能測試、性能測試、安全性測試、兼
46、容性測試和易用性測試按開發(fā)階段:設(shè)計(jì)測試、開發(fā)測試、運(yùn)行測試142Web應(yīng)用設(shè)計(jì)測試總體架構(gòu)設(shè)計(jì)的測試客戶端設(shè)計(jì)的測試服務(wù)器端設(shè)計(jì)的測試143Web應(yīng)用總體架構(gòu)設(shè)計(jì)的測試采用瘦客戶端或胖客戶端是否適合需求確定Web架構(gòu)的組成部分是否滿足需求服務(wù)器的配置及分布是否滿足需求144Web應(yīng)用總體架構(gòu)設(shè)計(jì)的測試序號(hào)模型單元1單元2單元31單單元模型基于NT的Web服務(wù)器基于NT的應(yīng)用服務(wù)器基于NT的數(shù)據(jù)庫服務(wù)器2雙單元模型基于NT的Web服務(wù)器基于NT的應(yīng)用服務(wù)器基于NT的數(shù)據(jù)庫服務(wù)器3三單元模型基于NT的Web服務(wù)器基于NT的應(yīng)用服務(wù)器基于NT的Web服務(wù)器基于NT的應(yīng)用服務(wù)器基于NT的數(shù)據(jù)庫服務(wù)器
47、4單單元模型基于UNIX的Web服務(wù)器基于UNIX的應(yīng)用服務(wù)器基于UNIX的數(shù)據(jù)庫服務(wù)器5雙單元模型基于UNIX的Web服務(wù)器基于UNIX的應(yīng)用服務(wù)器基于UNIX的數(shù)據(jù)庫服務(wù)器6三單元模型基于NT的Web服務(wù)器基于NT的應(yīng)用服務(wù)器基于NT的Web服務(wù)器基于NT的應(yīng)用服務(wù)器基于UNIX的數(shù)據(jù)庫服務(wù)器145Web應(yīng)用客戶端設(shè)計(jì)的測試功能設(shè)置信息組織結(jié)構(gòu)設(shè)計(jì) 頁面設(shè)計(jì)146Web應(yīng)用服務(wù)器端設(shè)計(jì)的測試功能設(shè)置容量規(guī)劃安全系統(tǒng)設(shè)計(jì) 數(shù)據(jù)庫設(shè)計(jì)147Web應(yīng)用開發(fā)測試代碼測試組件測試服務(wù)器端設(shè)計(jì)的測試148Web應(yīng)用運(yùn)行測試功能測試易用性測試負(fù)載壓力測試客戶端配置與兼容性測試安全性測試149Web應(yīng)用安
48、全性測試部署與基礎(chǔ)結(jié)構(gòu)輸入驗(yàn)證身份驗(yàn)證授權(quán)配置管理敏感數(shù)據(jù)回話管理加密參數(shù)操作異常管理審核與日值記錄150Web站點(diǎn)經(jīng)驗(yàn)點(diǎn)滴在執(zhí)行客戶端并發(fā)性能測試的過程中,需要同時(shí)監(jiān)控?cái)?shù)據(jù)庫服務(wù)器、Web服務(wù)器以及網(wǎng)絡(luò)資源等使用情況,以便對(duì)系統(tǒng)的性能做全面評(píng)估 錄制腳本和手工編寫腳本相結(jié)合 設(shè)置數(shù)據(jù)池,實(shí)現(xiàn)變量加載業(yè)務(wù)批量執(zhí)行 151Web站點(diǎn)經(jīng)驗(yàn)點(diǎn)滴模擬用戶數(shù)的遞增 合理設(shè)置交易之間時(shí)間間隔 模擬IP地址變量的技術(shù) 超時(shí)(timeout)的設(shè)置 并發(fā)用戶連續(xù)執(zhí)行交易數(shù)的設(shè)置 錯(cuò)誤處理152Web站點(diǎn)經(jīng)驗(yàn)點(diǎn)滴利用QALoad的ActiveData技術(shù)采用復(fù)合交易測試方案盡量將執(zhí)行負(fù)載測試的機(jī)器合理分布 并發(fā)
49、用戶數(shù)量極限點(diǎn)加壓機(jī)器的CPU使用率也有必要監(jiān)控 設(shè)置并發(fā)點(diǎn) HTML與URL錄制方式153腳本調(diào)試技術(shù)Winsock并發(fā)性能測試 關(guān)鍵技術(shù) : 在腳本中如何用變量來代替定值,即處理Winsock應(yīng)用程序數(shù)據(jù)流。 看看下面的實(shí)例腳本 !154原始腳本PLAYER_INFO *s_info;/* Declare Variables */SET_ABORT_FUNCTION(abort_function);DEFINE_TRANS_TYPE(wsk-AdvancedTech_1.c);/ Checkpoints have been included by the convert processDe
50、faultCheckpointsOn();DO_WSK_Init(s_info);SetTimeout(20); /* Wait up to 20 seconds for eachexpected pattern */SYNCHRONIZE();BEGIN_TRANSACTION();DO_WSK_Socket(S1, AF_INET, SOCK_STREAM, IPPROTO_IP);DO_WSK_Bind(S1, ANY_ADDR, ANY_PORT);DO_WSK_Connect(S1, 25, 2100, AF_INET);/ The session id returned by th
51、e server is/ unique to each connection/* 21bytes: SessionID=jrt90847rn */DO_WSK_Expect(S1, n);/ This unique id is then used for subsequent/ requests/* 34 bytes */DO_WSK_Send(S1,SessionID=jrt90847rn:BBA);/* 15 bytes: ID Accepted#rn */DO_WSK_Expect(S1, n);DO_WSK_Closesocket(S1);END_TRANSACTION();REPOR
52、T(SUCCESS);EXIT();return(0);155修改后的腳本PLAYER_INFO *s_info;/* Declare Variables */char Buffer64;char SendBuffer64;int nBytesReceived = 0;SET_ABORT_FUNCTION(abort_function);DEFINE_TRANS_TYPE(wsk-AdvancedTech_1.c);/ Checkpoints have been included by the convert processDefaultCheckpointsOn();DO_WSK_Init(
53、s_info);SetTimeout(20); /* Wait up to 20 seconds for eachexpected pattern */SYNCHRONIZE();BEGIN_TRANSACTION();DO_WSK_Socket(S1, AF_INET, SOCK_STREAM, IPPROTO_IP);DO_WSK_Bind(S1, ANY_ADDR, ANY_PORT);DO_WSK_Connect(S1, 25, 2100, AF_INET);/ The reply from the server is read into/ the Buffer variable. W
54、e will then have/ the unique Session ID for this connection./ Also need to null terminate the buffer/ after receiving./DO_WSK_Recv(S1, Buffer, 64, 0, &nBytesReceived);BuffernBytesRecieved = 0;/* 21bytes: SessionID=jrt90847rn */DO_WSK_Expect(S1, n);/ Finally, substitute the Session ID received from/
55、the server with the one coded in the script./sprintf(SendBuffer, %s:BBA,Buffer);DO_WSK_Send(S1, SendBuffer);/* 34 bytes */DO_WSK_Send(S1,SessionID=jrt90847:BBA);/* 15 bytes: ID Accepted#rn */DO_WSK_Expect(S1, n);Advanced Scripting Techniques for WinSock 7-5DO_WSK_Closesocket(S1);END_TRANSACTION();RE
56、PORT(SUCCESS);EXIT();return(0);156腳本調(diào)試技術(shù)SQLServer并發(fā)性能測試 關(guān)鍵技術(shù) : 從存儲(chǔ)過程中撲獲一個(gè)值利用檢索到的值作為一個(gè)參數(shù)傳遞給存儲(chǔ)過程 看看下面的實(shí)例腳本 !157腳本調(diào)試技術(shù)存儲(chǔ)過程定義如下create procedure inc_test_sp(first_param int)asbeginselect second_param = first_param + 1end158腳本代碼如下:strcpy(sql_statement, /* 1 */execute inc_test_sp sample_param =01 );DO_substr(sql_statement, 1, 100 );BEGIN_CHECKPOINT(); /* #1: Stored Procedure */DO_dbcmd(0, sql_statement);DO_dbsqlexec( 0 );while (DO_dbGetResults(0);END_CHECKPOINT(25); /* #25: Stored Pr
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 車輛在線庫存管理制度
- 長效管理日常管理制度
- 營銷業(yè)務(wù)管理制度考試
- 高校管制刀具管理制度
- 食堂生食刀具管理制度
- 進(jìn)口食品備案管理制度
- 鍋爐乙炔吹灰管理制度
- 路邊小店老板管理制度
- 裝備研制流程管理制度
- 長期應(yīng)付賬款管理制度
- 適老化住宅改造服務(wù)行業(yè)深度調(diào)研及發(fā)展戰(zhàn)略咨詢報(bào)告
- 2025年鄭州黃河護(hù)理職業(yè)學(xué)院單招職業(yè)技能測試題庫及答案1套
- 《水利工程白蟻防治技術(shù)規(guī)程SLT 836-2024》知識(shí)培訓(xùn)
- GB/T 45236-2025化工園區(qū)危險(xiǎn)品運(yùn)輸車輛停車場建設(shè)規(guī)范
- 新地基基礎(chǔ)-基樁靜荷載試驗(yàn)考試復(fù)習(xí)題庫(含答案)
- 《致敬英雄》課件
- 房地產(chǎn)開發(fā)項(xiàng)目資金監(jiān)管協(xié)議
- 持續(xù)集成與自動(dòng)化部署(CICD)-深度研究
- 無人機(jī)護(hù)林巡檢實(shí)施方案-LSJ-2019022-六視角科技
- 9 短詩三首 公開課一等獎(jiǎng)創(chuàng)新教學(xué)設(shè)計(jì)
- 急性缺血性卒中再灌注治療指南2024解讀
評(píng)論
0/150
提交評(píng)論