測試經(jīng)典學(xué)習(xí)文檔_第1頁
測試經(jīng)典學(xué)習(xí)文檔_第2頁
測試經(jīng)典學(xué)習(xí)文檔_第3頁
測試經(jīng)典學(xué)習(xí)文檔_第4頁
測試經(jīng)典學(xué)習(xí)文檔_第5頁
已閱讀5頁,還剩166頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、高級性能測試 1課程內(nèi)容介紹 測試策略制定測試結(jié)果指標(biāo)分析測試典型案例分析 測試技術(shù)討論測試工具的使用技巧2測試策略制定概念測試計劃測試流程包括哪些步驟測試要達到什么目的選擇什么協(xié)議進行測試如何編寫一個完整的測試方案 測試指標(biāo)包括哪些內(nèi)容自動化負載壓力測試策略3測試結(jié)果指標(biāo)分析客戶端負載壓力指標(biāo) 服務(wù)器資源使用指標(biāo)網(wǎng)絡(luò)監(jiān)控指標(biāo)4測試典型案例分析系統(tǒng)故障定位與分析數(shù)據(jù)庫服務(wù)器典型性能調(diào)優(yōu)與評估Oracle數(shù)據(jù)庫性能調(diào)優(yōu)案例測試經(jīng)驗交流5測試工具的使用技巧負載壓力測試工具:LoadRunner8.0功能回歸測試工具:WinRunner7.6測試管理工具:TestDirector8 .06性能測試

2、系統(tǒng)的性能是一個很大的概念,覆蓋面非常廣泛,對一個軟件系統(tǒng)而言包括執(zhí)行效率、資源占用、穩(wěn)定性、安全性、兼容性、可擴展性、可靠性等等,我們這里重點討論的負載壓力是系統(tǒng)性能的一個重要方面。 性能測試用來保證產(chǎn)品發(fā)布后系統(tǒng)的性能滿足用戶需求。性能測試在軟件質(zhì)量保證中起重要作用。 7負載測試負載測試是確定在各種工作負載下系統(tǒng)的性能,目標(biāo)是測試當(dāng)負載逐漸增加時,系統(tǒng)組成部分的相應(yīng)輸出項,例如通過量、響應(yīng)時間、CPU負載、內(nèi)存使用等如何決定系統(tǒng)的性能,例如穩(wěn)定性和響應(yīng)等。負載測試通常描述一種特定類型的壓力測試,即增加用戶數(shù)量以對應(yīng)用程序進行壓力測試。8壓力測試 壓力測試通過確定一個系統(tǒng)的瓶頸或者不能接收的

3、性能點,來獲得系統(tǒng)能提供的最大的服務(wù)級別的測試。通俗地講,壓力測試是為了發(fā)現(xiàn)在什么條件下您的應(yīng)用程序的性能會變得不可接受。9負載壓力測試負載壓力測試是性能測試的重要組成部分,負載壓力測試包括:并發(fā)性能測試(重點)疲勞強度測試大數(shù)據(jù)量測試 10負載壓力測試11負載壓力測試并發(fā)性能測試 考察客戶端應(yīng)用的性能,測試的入口是客戶端并發(fā)性能測試的過程,是一個負載測試和壓力測試的過程。即逐漸增加并發(fā)虛擬用戶數(shù)負載,直到系統(tǒng)的瓶頸或者不能接收的性能點,通過綜合分析交易執(zhí)行指標(biāo)、資源監(jiān)控指標(biāo)等來確定系統(tǒng)并發(fā)性能的過程。并發(fā)性能測試是負載壓力測試中的重要內(nèi)容。 12負載壓力測試疲勞強度測試 通常是采用系統(tǒng)穩(wěn)定運

4、行情況下能夠支持的最大并發(fā)用戶數(shù)或 者日常運行用戶數(shù),持續(xù)執(zhí)行一段時間業(yè)務(wù),通過綜合分析交易執(zhí)行指標(biāo)和資源監(jiān)控指標(biāo)來確定系統(tǒng)處理最大工作量強度性能的過程。 疲勞強度測試案例制定的原則是保證系統(tǒng)長期不間斷運行的業(yè)務(wù)量,并且應(yīng)該盡量去滿足該條件。 13負載壓力測試大數(shù)據(jù)量測試 大數(shù)據(jù)量測試的兩種類型 獨立的數(shù)據(jù)量測試 針對某些系統(tǒng)存儲、傳輸、統(tǒng)計、查詢等業(yè)務(wù)進行大 數(shù)據(jù)量測試 綜合數(shù)據(jù)量測試 和壓力性能測試、負載性能測試、并發(fā)性能測試、疲勞性能測試相結(jié)合的綜合測試方案 14測試計劃 分析應(yīng)用程序 定義測試目標(biāo) 計劃方案實施檢查測試目標(biāo) 15制定測試計劃的目的構(gòu)建能夠精確地模擬您的工作環(huán)境的測試方案

5、。 了解測試需要的資源。 以可度量的指標(biāo)定義測試成功條件。 16分析應(yīng)用程序確定系統(tǒng)組件描述系統(tǒng)配置 分析使用模型 任務(wù)分布 17確定系統(tǒng)組件客戶機、網(wǎng)絡(luò)、中間件和服務(wù)器 18描述系統(tǒng)配置連接到系統(tǒng)的用戶數(shù)應(yīng)用程序客戶端計算機的配置情況(硬件、內(nèi)存、操作系統(tǒng)、軟件、開發(fā)工具等)使用的數(shù)據(jù)庫和Web 服務(wù)器的類型(硬件、數(shù)據(jù)庫類型、操作系統(tǒng)、文件服務(wù)器等)服務(wù)器與應(yīng)用程序客戶端之間的通信方式前端客戶端與后端服務(wù)器之間的中間件配置和應(yīng)用程序服務(wù)器可能影響響應(yīng)時間的其他網(wǎng)絡(luò)組件(調(diào)制解調(diào)器等)19分析使用模型考慮哪些用戶使用系統(tǒng)每種類型用戶的數(shù)量每個用戶的典型任務(wù) 20任務(wù)分布確定數(shù)據(jù)庫活動峰值期的

6、發(fā)生時間負載峰值期間的典型活動 21定義測試目標(biāo)22定義測試目標(biāo)以可度量的指標(biāo)制定目標(biāo)確定測試的時間 23確定測試的時間24計劃方案實施定義性能度量的范圍定義Vuser活動 選擇Vuser 選擇測試硬件和軟件25定義性能度量的范圍度量應(yīng)用程序中不同點的響應(yīng)時間。根據(jù)測試目標(biāo)確定在哪里運行虛擬用戶運行哪些虛擬用戶26應(yīng)用程序中不同點的響應(yīng)時間度量端到端的響應(yīng)時間:27應(yīng)用程序中不同點的響應(yīng)時間度量網(wǎng)絡(luò)和服務(wù)器響應(yīng)時間: 28應(yīng)用程序中不同點的響應(yīng)時間度量GUI 響應(yīng)時間:GUI 響應(yīng)時間= 端到端響應(yīng)時間- 網(wǎng)絡(luò)和服務(wù)器響應(yīng)時間 29應(yīng)用程序中不同點的響應(yīng)時間度量服務(wù)器響應(yīng)時間:30應(yīng)用程序中不

7、同點的響應(yīng)時間度量中間件到服務(wù)器的響應(yīng)時間:31選擇Vuser32選擇測試硬件和軟件硬件和軟件應(yīng)該具有強大的性能和足夠快的運行速度,以模擬所需數(shù)量的虛擬用戶 。33檢查測試目標(biāo)度量最終用戶響應(yīng)時間 定義最優(yōu)的硬件配置 檢查可靠性 確定瓶頸 度量系統(tǒng)容量 34定義最優(yōu)的硬件配置舉例例如,您可以設(shè)置三種不同的服務(wù)器配置,并針對各個配置運行相同的測試,以確定性能上的差異:. 配置1:200MHz、64MB RAM. 配置2:200MHz、128MB RAM. 配置3:266MHz、128MB RAM35檢查可靠性舉例確定系統(tǒng)在連續(xù)的高工作負載下的穩(wěn)定性級別。強制系統(tǒng)在短時間內(nèi)處理大量任務(wù),以模擬系統(tǒng)

8、在數(shù)周或數(shù)月的時間內(nèi)通常會遇到的活動類型。36確定瓶頸舉例您可以運行測試以確定系統(tǒng)的瓶頸,并確定哪些因素導(dǎo)致性能下降,例如,文件鎖定、資源爭用和網(wǎng)絡(luò)過載。37度量系統(tǒng)容量舉例查看現(xiàn)有系統(tǒng)中性能與負載間的關(guān)系,并確定出現(xiàn)響應(yīng)時間顯著延長的位置 “拐點”??梢源_定是否需要增加資源以支持額外的用戶。38測試流程步驟測試需求分析 測試案例制定 測試環(huán)境、工具、數(shù)據(jù)準(zhǔn)備 測試腳本錄制、編寫與調(diào)試負載壓力場景制定 測試執(zhí)行 結(jié)果分析與定位問題 測試報告與測試評估 39測試目的在真實環(huán)境下檢測系統(tǒng)性能,評估系統(tǒng)性能以及服務(wù)等級的滿足情況預(yù)見系統(tǒng)負載壓力承受力,在應(yīng)用實際部署之前,評估系統(tǒng)性能 幫助軟件廠商或

9、用戶分析系統(tǒng)瓶頸、優(yōu)化系統(tǒng) 40測試目的實現(xiàn)目的的測試方法: 性能檢測 性能調(diào)優(yōu) 41性能檢測在真實生產(chǎn)環(huán)境下,檢測系統(tǒng)性能,評估并報告整個系統(tǒng)的性能和健壯情況檢查服務(wù)等級的滿足情況對系統(tǒng)的未來容量作出預(yù)測和規(guī)劃 42性能調(diào)優(yōu)查找系統(tǒ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編寫一個完整的測試方案 應(yīng)用在客戶端性能的測試 應(yīng)用在網(wǎng)絡(luò)上性能的測試 應(yīng)用在服務(wù)器上性能的測試一個測試方案的例子一個測試計劃的例子46測試指標(biāo)客戶端交易處理性能指標(biāo) 服務(wù)器資源監(jiān)控,例如: UNIX數(shù)據(jù)庫資源監(jiān)控,例如: OracleWeb服務(wù)器監(jiān)控,例如: Apache中間件監(jiān)控,例

12、如: TUXEDO等等47自動化負載壓力測試?yán)没蜷_發(fā)負載壓力測試的自動化測試方法,包括:程序、工具、流程等等。48自動化負載壓力測試優(yōu)勢自動化測試優(yōu)勢分析快速比手工操作絕對快可靠每一次運行精確地執(zhí)行相同的操作,可以排除手工操作錯誤可重復(fù)測試相同操作重復(fù)執(zhí)行時軟件如何響應(yīng)可編程的可以編程實現(xiàn)得到應(yīng)用系統(tǒng)隱藏信息的復(fù)雜測試綜合測試可以實現(xiàn)覆蓋應(yīng)用系統(tǒng)每個特征的一套綜合測試方案可重用的針對應(yīng)用系統(tǒng)的不同版本,測試腳本可重復(fù)使用,即使用戶界面發(fā)生變化49選擇自動化負載壓力測試方法利用自動化負載壓力測試工具 開放資源(OpenSource)測試 自主開發(fā)代碼測試 50自動化負載壓力測試概念通過在一臺或

13、幾臺PC機上模擬成百或上千的虛擬用戶同時執(zhí)行業(yè)務(wù)的情景,對應(yīng)用程序進行測試,通過可重復(fù)的、真實的測試能夠徹底地度量應(yīng)用的性能,確定問題所在。工程項目實踐證明,其測試結(jié)果與實際情況完全符合。51自動化負載壓力測試實現(xiàn)機制自動負載測試52自動化負載壓力測試工具LoadRunner美國Mercury Interactive公司QALoad美國Compuware(康博)公司Rational Robot 美國IBM公司SILK PERFORMER V 美國Segue 公司Benchmark Factory美國Quest軟件公司W(wǎng)AS美國Mcrosoft 公司53自動化負載壓力測試工具自動化負載壓力測試工

14、具對比54自動化負載壓力測試工具選擇依據(jù)模擬您的客戶機運行多個模擬的客戶機 腳本化執(zhí)行并能編輯腳本 支持會話 可配置的用戶數(shù)量 報告成功、錯誤和失敗 55自動化負載壓力測試工具缺陷缺乏功能點的校驗對有些控件支持得不好不能達到真實模擬負載腳本的支持不夠靈活報錯定位不夠詳細56自動化負載壓力測試工具盲點在負載測試中,不進行功能校驗,就是當(dāng)功能錯誤發(fā)生時,測試工具不能夠記錄產(chǎn)生的功能性錯誤,這就忽略了負載壓力情況下的功能不穩(wěn)定問題。在負載壓力測試過程中記錄所有虛擬用戶的操作及服務(wù)器的響應(yīng)是當(dāng)前負載壓力測試技術(shù)發(fā)展的最大挑戰(zhàn)。但測試過程中的附加記錄會導(dǎo)致資源消耗、操作行為增加以及產(chǎn)生大量日志等問題。

15、57開放資源(OpenSource)測試 開放系統(tǒng)測試體系OpenSTA ) TestMaker() Apache JMeter () 58開發(fā)測試工具舉例Web服務(wù)器通用性能測試系統(tǒng)的設(shè)計與實現(xiàn)實際系統(tǒng)由四部分組成:模板文件數(shù)據(jù)文件性能測試程序結(jié)果處理程序59開發(fā)測試工具舉例系統(tǒng)結(jié)構(gòu)示意圖60開發(fā)測試工具舉例主流程圖61開發(fā)測試工具舉例通用應(yīng)用系統(tǒng)性能評測環(huán)境設(shè)計62開發(fā)測試工具舉例通用應(yīng)用系統(tǒng)性能評測環(huán)境設(shè)計63開發(fā)測試工具舉例通用應(yīng)用系統(tǒng)性能評測環(huán)境設(shè)計接口名稱功能接口函數(shù)原型(C語言描述)事務(wù)處理邏輯類型此接口提供應(yīng)用系統(tǒng)相關(guān)的事務(wù)類型ID,通常情況下應(yīng)用系統(tǒng)由多種事務(wù)組成,評測系統(tǒng)應(yīng)

16、該能夠區(qū)分它們Int Perf_GetTransactionID(void);接口初始化初始化應(yīng)用系統(tǒng)。諸如創(chuàng)建數(shù)據(jù)庫連接等操作在此接口中進行int Perf_InitLib(void);執(zhí)行事務(wù)處理實際事務(wù)處理接口,事務(wù)執(zhí)行的起止時間和執(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)性能評測環(huán)境設(shè)計操作系統(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)分析客戶端負載壓力指標(biāo)為了完成一個任務(wù),用戶對應(yīng)用程序執(zhí)行的一組操作,例如登陸一個Web站點、搜索一個飛機票信息、在網(wǎng)上買一本書等等。虛擬并發(fā)用戶數(shù)(Total Virtual Users)交易響應(yīng)時間(Response Time) 每分鐘交易數(shù)(Trans Rate)吞吐量圖 (ThroughOut)66測試結(jié)果指標(biāo)分析客戶端負載壓力指標(biāo)-交易處理指標(biāo). 平均事務(wù)響應(yīng)時間圖. 每秒事務(wù)數(shù)圖. 每

18、秒事務(wù)總數(shù). 事務(wù)摘要圖. 事務(wù)性能摘要圖. 事務(wù)響應(yīng)時間(負載下)圖. 事務(wù)響應(yīng)時間(百分比)圖. 事務(wù)響應(yīng)時間(分布)圖67測試結(jié)果指標(biāo)分析客戶端負載壓力指標(biāo)-Web請求指標(biāo). 每秒點擊次數(shù)圖. 點擊次數(shù)摘要圖. 吞吐量圖. 吞吐量摘要圖. HTTP 狀態(tài)代碼摘要圖. 每秒HTTP 響應(yīng)數(shù)圖. 每秒下載頁面數(shù)圖. 每秒重試次數(shù)圖. 重試次數(shù)摘要圖. 連接數(shù)圖. 每秒連接數(shù)圖. 每秒SSL 連接數(shù)圖68測試結(jié)果指標(biāo)分析客戶端負載壓力指標(biāo)-Web頁面組件指標(biāo). 激活網(wǎng)頁細分圖. 頁面組件細分圖. 頁面組件細分(隨時間變化)圖. 頁面下載時間細分圖. 頁面下載時間細分(隨時間變化)圖. 第一次緩

19、沖細分時間圖. 第一次緩沖時間細分(隨時間變化)圖. 已下載組件大小圖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ù))看一個例子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)利用率可提供負載有效率延遲延遲變化量響

20、應(yīng)時間76測試典型案例分析系統(tǒng)故障定位與分析最難的問題77系統(tǒng)瓶頸分析舉例經(jīng)驗舉例1交易的響應(yīng)時間如果很長,遠遠超過系統(tǒng)性能需求,表示耗費CPU的數(shù)據(jù)庫操作,例如排序,執(zhí)行aggregate functions(例如sum、min、max、count)等較多,可考慮是否有索引以及索引建立的是否合理;盡量使用簡單的表聯(lián)接;水平分割大表格等方法來降低該值。 78系統(tǒng)瓶頸分析舉例經(jīng)驗舉例2分段排除錯誤。測試工具可以模擬不同的虛擬用戶來單獨訪問Web服務(wù)器、應(yīng)用服務(wù)器和數(shù)據(jù)庫服務(wù)器,這樣,就可以在Web端測出的響應(yīng)時間減去以上各個分段測出的時間就可以知道瓶頸在哪并著手調(diào)優(yōu)。 79系統(tǒng)瓶頸分析舉例經(jīng)驗舉

21、例3UNIX資源監(jiān)控(NT操作系統(tǒng)同理)中指標(biāo)內(nèi)存頁交換速率(Paging rate),如果該值偶爾走高,表明當(dāng)時有線程競爭內(nèi)存。如果持續(xù)很高,則內(nèi)存可能是瓶頸。也可能是內(nèi)存訪問命中率低。“S rate”和“S rate”也有類似的解釋。 80系統(tǒng)瓶頸分析舉例經(jīng)驗舉例4UNIX資源監(jiān)控(NT操作系統(tǒng)同理)中指標(biāo)CPU占用率(CPU utilization),如果該值持續(xù)超過95%,表明瓶頸是CPU??梢钥紤]增加一個處理器或換一個更快的處理器 。合理使用的范圍在60%至70%。81系統(tǒng)瓶頸分析舉例經(jīng)驗舉例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等措施都會降低該值。 82系統(tǒng)瓶頸分析舉例經(jīng)驗舉例6Tuxedo資源監(jiān)控中指標(biāo)隊列中的字節(jié)數(shù)(Bytes on queue),隊列長度應(yīng)不超過磁盤數(shù)的1.52倍。要提高性能,可增加磁盤。注意:一個Raid Disk實際有多個磁盤。83系統(tǒng)瓶頸分析舉例經(jīng)驗舉例7SQLServer資源監(jiān)控中指標(biāo)緩存點擊率(Cache Hit Ratio),該值越高越好。如果持續(xù)低于80%,應(yīng)考慮增加內(nèi)存。 注意該參數(shù)值是從SQL Server

23、啟動后,就一直累加記數(shù),所以運行經(jīng)過一段時間后,該值將不能反映系統(tǒng)當(dāng)前值。 84優(yōu)化調(diào)整設(shè)置 CPU問題:考慮使用更高級的CPU代替目前的CPU對于多CPU,考慮CPU之間的負載分配考慮在其它體系上設(shè)計系統(tǒng),例如增加前置機、設(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ù)塊的個數(shù)表示)是一個重要內(nèi)容將最頻繁使用的數(shù)據(jù)保存在存儲區(qū)中86優(yōu)化調(diào)整設(shè)置 磁盤(I/O)資源問題磁盤讀寫進度對數(shù)據(jù)庫系統(tǒng)是至關(guān)重要的,數(shù)據(jù)庫對

24、象在物理設(shè)備上的合理分布能改善性能磁盤鏡像會減慢磁盤寫的速度通過把日志和數(shù)據(jù)庫對象分布在獨立的設(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ù)目、會話數(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ò)呼叫。不是一次提取一行,而是在單個往來往返中提取10行,這樣做效率較高調(diào)整會話數(shù)據(jù)單元的緩沖區(qū)大小共享服務(wù)進程比專用

25、服務(wù)進程提供較好的性能89故障定位與分析 一個測試實例90測試典型案例分析 數(shù)據(jù)庫服務(wù)器典型性能調(diào)優(yōu)與評估91數(shù)據(jù)庫服務(wù)器典型性能問題數(shù)據(jù)庫服務(wù)器性能問題及原因分析 單一類型事務(wù)響應(yīng)時間過長 數(shù)據(jù)庫服務(wù)器負載 糟糕的數(shù)據(jù)庫設(shè)計 事務(wù)粒度過大 批任務(wù)對普通用戶性能的影響 并發(fā)處理能力差 鎖沖突嚴(yán)重 資源鎖定造成的數(shù)據(jù)庫事務(wù)超時 數(shù)據(jù)庫死鎖 92數(shù)據(jù)庫服務(wù)器典型性能問題數(shù)據(jù)庫性能問題的一般解決辦法 監(jiān)視性能相關(guān)數(shù)據(jù);定位資源占用較大的事務(wù)并做出必要的優(yōu)化或調(diào)整;定位鎖沖突,修改鎖沖突發(fā)生嚴(yán)重的應(yīng)用邏輯;對規(guī)模較大的數(shù)據(jù)或者無法通過一般優(yōu)化解決的鎖沖突進行分布。93Oracle與提高性能有關(guān)的特性

26、索引并行執(zhí)行簇與散列簇分區(qū)多線程服務(wù)器同時讀取多塊數(shù)據(jù) 94Oracle配置的關(guān)鍵參數(shù) MAX_DSPATCHERS:這個參數(shù)指定了系統(tǒng)允許同時進行的調(diào)度進程的最大數(shù)量。MAX_SHARED_SERVERS:這個參數(shù)指定了系統(tǒng)允許同時進行的共享服務(wù)器進程的最大數(shù)量。如果系統(tǒng)中出現(xiàn)的人為死鎖過于頻繁,那么管理員應(yīng)該增大這個參數(shù)的值。PARALLEL_ADAPTIVE_MULTI_USER:當(dāng)這個參數(shù)的值為TRUE時,系統(tǒng)將啟動一個能提高使用并行執(zhí)行的多用戶系統(tǒng)性能的自適應(yīng)算法。這個算法將根據(jù)查詢開始時的系統(tǒng)負載自動降低查詢請求的并行度。95Oracle配置的關(guān)鍵參數(shù) PARLLEL_MIN_SE

27、RVERS:這個參數(shù)指定了實例并行執(zhí)行進程的最小數(shù)量。其值就是實例啟動時Oracle創(chuàng)建的并行執(zhí)行進程數(shù)。PARLLEL_THREADS_PER_CPU:這個參數(shù)指定了實例默認的并行度和并行自適應(yīng)以及負載平衡算法。它指明了并行執(zhí)行過程中一個CPU能處理的進程或線程數(shù)。PARTITION_VIEW_ENABLED:這個參數(shù)指定了優(yōu)化器是否使用分區(qū)視圖。Oracle推薦用戶使用分區(qū)表(這是在Oracle8之后引入的)而不是分區(qū)視圖。分區(qū)視圖只是為了提供Oracle的后向兼容性。REVOVERY_PARALLELISM:這個參數(shù)指定了恢復(fù)數(shù)據(jù)庫系統(tǒng)時使用的進程數(shù)。 96Oracle的索引 索引和降低

28、系統(tǒng)處理的數(shù)據(jù)量 索引和更新 在字段選擇性很低的情況下適用索引97Oracle的并行執(zhí)行特性 RDBMS的絕大多數(shù)操作都可分為以下3類:被CPU限制的操作:這類操作的速度和單CPU運行速度一樣。通過并行化操作,多個CPU可并行處理系統(tǒng)負載,因此可以更快完成該操作。被I/O限制的操作:這類操作花了絕大部分時間等待系統(tǒng)完成I/O操作。當(dāng)系統(tǒng)中同時出現(xiàn)多個I/O請求時,絕大多數(shù)RAID控制器將很好工作。另外,當(dāng)一個線程需要等待完成I/O操作時,可充分利用CPU來處理另一線程的CPU部分。被競爭限制的操作:并行處理不能改善由資源競爭所限制的操作。98Oracle的并行執(zhí)行特性 應(yīng)當(dāng)首先根據(jù)如下一些因素

29、考慮并行度 :計算機的CPU能力:CPU的數(shù)量和能力將影響系統(tǒng)能運行的查詢進程數(shù)量。系統(tǒng)處理大量進程的能力:一些操作系統(tǒng)能處理很多并發(fā)進程,而另一些操作系統(tǒng)則沒有這方面的能力。系統(tǒng)負載:如果系統(tǒng)現(xiàn)在的運行已經(jīng)達到了極限,那么對并行度的調(diào)整不會有太大效果。如果系統(tǒng)運行已達其能力極限的90%,那么太多的查詢進程將使系統(tǒng)不堪重負。系統(tǒng)處理的查詢數(shù)量:如果系統(tǒng)的大部分操作是更新操作,但仍有少量的重要查詢存在,那么開發(fā)人員可能希望系統(tǒng)運行多個查詢進程。系統(tǒng)的I/O能力:如果磁盤上的數(shù)據(jù)是分片或是使用磁盤陣列存儲的,那么系統(tǒng)能夠處理多個并行查詢。操作類型:系統(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ā)進程,那么應(yīng)當(dāng)采用較低的并行度。因為太多的進程將使系統(tǒng)不堪重負。 101Oracle的簇與散列簇 有利 不利102Oracle的同時讀取多塊數(shù)據(jù) 當(dāng)系統(tǒng)執(zhí)

31、行表掃描時,Oracle具備同時讀取多個數(shù)據(jù)塊的能力,這種能力提高了系統(tǒng)的I/O速度。通過同時讀取多塊數(shù)據(jù),Oracle能夠從磁盤上讀取更大的數(shù)據(jù)塊,從而避免了對磁盤上數(shù)據(jù)進行搜索的操作。通過降低磁盤搜索和讀取更大的數(shù)據(jù)塊,可以降低系統(tǒng)的I/O開銷和CPU開銷。 103Oracle的分區(qū) 分區(qū)方案:Range Partitioning:這種方案根據(jù)數(shù)據(jù)的范圍,比如月、年等等對表中的數(shù)據(jù)進行分區(qū)。List Partitioning:這種方案和Range Partitioning分區(qū)方案很類似,但這種方案是按照數(shù)據(jù)的值而不是數(shù)據(jù)的范圍來進行分區(qū)劃分的。Hash Partitioning:這種分區(qū)方

32、案使用散列函數(shù)來實現(xiàn)對數(shù)據(jù)的自動分區(qū)。Sub- Partitioning:這種方法就是開發(fā)人員熟悉的復(fù)合分區(qū)方法。這種方法允許開發(fā)人員同時使用多種分區(qū)方案。104Oracle的分區(qū) 分區(qū)有以下幾方面的好處 :對能被分區(qū)的大尺寸表進行掃描時,分區(qū)可降低I/O操作和CPU的使用率。可在分區(qū)的層次上而不是表的層次上加載數(shù)據(jù)。能以刪除分區(qū)的方式刪除數(shù)據(jù),而不必使用SELECT語句來刪除大量數(shù)據(jù)。對用戶和應(yīng)用程序而言,分區(qū)是完全透明的。可在分區(qū)層次上而不是在表層次上維護數(shù)據(jù)。105Oracle的多線程服務(wù)器 用戶可通過專用服務(wù)器進程連接到Oracle實例,也可以通過多線程服務(wù)器進程連接到Oracle實例

33、。因為每一個專用服務(wù)器進程都將占用大量內(nèi)存資源和系統(tǒng)資源,所以有必要對多用戶連接采用多線程服務(wù)器進程。 多線程服務(wù)器進程允許多個用戶使用一定數(shù)量的共享服務(wù)器進程。共享服務(wù)器進程使用共享緩沖池對用戶請求進行排隊并返回數(shù)據(jù),從而大大減少CPU和內(nèi)存的使用。 106測試典型案例分析硬件配置與系統(tǒng)性能測試實例107測試典型案例分析服務(wù)器集群與系統(tǒng)性能測試實例108案例測試經(jīng)驗交流負載均衡與系統(tǒng)性能測試實例109案例測試經(jīng)驗交流負載均衡基礎(chǔ)知識負載均衡策略:靜態(tài)方式、動態(tài)方式:負載均衡針對的應(yīng)用負載均衡記錄文件用戶表回話保持概念回話保持方式負載均衡器布置110測試典型案例分析案例測試經(jīng)驗交流111案例測

34、試經(jīng)驗交流一個文檔、郵件接收與發(fā)送系統(tǒng):業(yè)務(wù)“下傳文檔”錄制不全,本地保存與打開不能夠錄制上。Weblogic監(jiān)控需要做的準(zhǔn)備工作是系統(tǒng)不能登陸,IE問題Windows 2000 Server的資源監(jiān)控把握3個重點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)驗交流一個多媒體處理系統(tǒng):出現(xiàn)業(yè)務(wù)“登陸”無法并發(fā)的現(xiàn)象 “登陸”無法并發(fā)并不影響后面交易的并發(fā)執(zhí)行采用correlation技術(shù)實現(xiàn)壓力對于“查詢”操作驗證檢查結(jié)果是否正確。QALoa

35、d和LoadRunner所錄的腳本不一致QALoad所錄腳本并發(fā),交易都成功,但報400及500錯誤113案例測試經(jīng)驗交流一個打掃碼信息處理系統(tǒng):Winsock連接要考慮是否有必要做并發(fā)性能測試?還是需要做疲勞測試?默認的分析中thinktime時間沒有去掉加壓前系統(tǒng)的性能指標(biāo)應(yīng)該關(guān)注,否則沒有參考依據(jù),例如CPU、內(nèi)存、Disk I/O等。指標(biāo)Disk Time在磁盤陣列時失效,其值大于100,應(yīng)注意監(jiān)控“idle time”指標(biāo)。114案例測試經(jīng)驗交流一個工作流系統(tǒng)的選型測試:測試數(shù)據(jù)的準(zhǔn)備集群的驗證115案例測試經(jīng)驗交流一個稅務(wù)測試:1. 關(guān)閉視圖降低系統(tǒng)的交易平均響應(yīng)時間;2. 并發(fā)測

36、試過程中,當(dāng)大規(guī)模并發(fā)時候,出現(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)驗交流一個IC卡處理系統(tǒng):中間件客戶端連接數(shù)隊列阻塞問題數(shù)據(jù)庫優(yōu)化選項問題負載均衡問題117案例測試經(jīng)驗交流工具不能支持的被測對象:Oracle FormSMTPSSLNC118案例測試經(jīng)驗交流負載壓力性能指標(biāo)的區(qū)別(CPU):LoadRunnerVmstat命令I(lǐng)ostat命令Mpstat命令Top命令119案例測試

37、經(jīng)驗交流不同的工具監(jiān)控性能指標(biāo)(CPU):最大并發(fā)用戶數(shù)最大連接數(shù)最大在線用戶數(shù)最大注冊用戶數(shù)120測試案例介紹并發(fā)性能測試幾個應(yīng)用實例 實例1:計費帳務(wù)系統(tǒng)V3.0 測試類型:并發(fā)、疲勞 系統(tǒng)運行模式:三層結(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)時間在100秒左右,經(jīng)過調(diào)優(yōu)后,平均響應(yīng)時間降為10秒 例圖如下121測試案例介紹銷帳,并發(fā)用戶數(shù)50,平均響應(yīng)時間122測試案例介紹實例2:加油IC卡試點工程核

38、心軟件V2.0 測試類型:并發(fā) 系統(tǒng)運行模式:發(fā)卡網(wǎng)點子系統(tǒng)采用三層結(jié)構(gòu)的運行模 式,零管子系統(tǒng)采用C/S運行模式。中間件TUXEDO、數(shù)據(jù)庫服務(wù)器操作系統(tǒng)UNIX、數(shù)據(jù)庫Sybase 監(jiān)測的測試指標(biāo)包括:交易處理性能、UNIX資源、TUXEDO資源 并發(fā)用戶數(shù):銷售信息查詢100,單用戶卡充值170 測試工具:QALoad、 LoadRunner123測試案例介紹實例2:加油IC卡試點工程核心軟件V2.0 (續(xù)) 解決的問題:銷售信息查詢,當(dāng)記錄條數(shù)達到時,系統(tǒng)在15分鐘內(nèi)無任何響應(yīng) 。經(jīng)分析確定為系統(tǒng)數(shù)據(jù)庫的架構(gòu)存在問題。 例圖如下:124測試案例介紹1100用戶 250用戶 330用戶

39、420用戶 510用戶 125測試案例介紹實例3:高速公路聯(lián)網(wǎng)收費系統(tǒng)V1.1 測試類型:并發(fā)、疲勞系統(tǒng)運行模式: 該軟件為C/S結(jié)構(gòu),數(shù)據(jù)庫Informix7.3 ,中間件(自行開發(fā))Winsock,各級服務(wù)器均為IBM系列服務(wù)器監(jiān)測的測試指標(biāo)包括: UNIX資源并發(fā)用戶數(shù):100測試工具:QALoad、 LoadRunner解決的問題:CPU占用率基本保持在65,在并發(fā)用戶數(shù)為100,交易數(shù)為100的情況下達到82%,最大值達到90以上。可見CPU占用率將來有可能會成為系統(tǒng)瓶頸疲勞測試丟失數(shù)據(jù)763條,中間件的穩(wěn)定性有待進一步提高 例圖如下:126測試案例介紹0309100_05F:虛擬用

40、戶數(shù)100 0309100_060:虛擬用戶數(shù)100309100_061:虛擬用戶數(shù)30 0309100_062:虛擬用戶數(shù)50圖:入口車道往結(jié)算中心上傳交易響應(yīng)時間分布圖127測試案例介紹實例4:多媒體數(shù)據(jù)庫 V1.0 測試類型:并發(fā)、疲勞系統(tǒng)運行模式:B/S運行模式,三層結(jié)構(gòu),web服務(wù)器為Apache,后臺各服務(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時,監(jiān)控到HTTP 500、connect以及超

41、時錯誤,且web服務(wù)器報內(nèi)存溢出錯誤,系統(tǒng)應(yīng)進一步提高性能,以支持更大并發(fā)用戶數(shù)。 例圖如下: 128測試案例介紹129測試案例介紹實例5:業(yè)務(wù)流程管理平臺V1.0 測試類型:并發(fā)、疲勞系統(tǒng)運行模式:B/S運行模式,三層結(jié)構(gòu),web服務(wù)器為WebSphere ,后臺各服務(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時的系統(tǒng)交易響應(yīng)時間在不可接受的范圍內(nèi),數(shù)據(jù)庫服務(wù)器的資源占用預(yù)計會成為系統(tǒng)運行瓶頸。 例圖如下: 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測試工具上機實習(xí)負載壓力測試工具:LoadRunner7.8上機實習(xí)內(nèi)容:BSCS自己開發(fā)測試腳本資源監(jiān)控132測試工具的使用技巧面向目標(biāo)的測試方案參數(shù)池技術(shù) 將事務(wù)插入到Vuser腳本 將集合點插入到Vuser腳本 動態(tài)數(shù)據(jù)關(guān)聯(lián) IP數(shù)據(jù)池 Web站點經(jīng)驗點滴 腳本調(diào)試技術(shù) 測試工具配置技巧 加載GUI腳本Oracle故障診斷特殊的測試類型133面向目標(biāo)的測試方案虛擬IP數(shù)據(jù)池用戶目標(biāo)類型 每秒點擊次數(shù)、每分鐘頁面數(shù)或每秒事務(wù)數(shù) 事務(wù)

44、響應(yīng)時間目標(biāo)類型 134參數(shù)池技術(shù)(1)135參數(shù)池技術(shù)(2)136Manual Correlation 提問:系統(tǒng)的輸出值需要為后續(xù)操作提供輸入:系統(tǒng)產(chǎn)生的SessionID;每次訪問Web頁面的動態(tài)URL;表單提交期間錄制的Field(有時會隱藏)這些值只對當(dāng)前會話有效。解決辦法:從一個操作步驟中撲捉輸出值該值用于另一個步驟的輸入137Manual Correlation這里我們提供幾種關(guān)聯(lián)數(shù)據(jù)的方法:手工關(guān)聯(lián)錄制結(jié)束后自動關(guān)聯(lián)錄制過程中自動關(guān)聯(lián)138Manual Correlation在Vuser腳本中關(guān)聯(lián)動態(tài)數(shù)據(jù)步驟:確定需要撲捉的值找到所撲捉值的左右邊界標(biāo)識符決定應(yīng)該使用哪個邊界將函

45、數(shù)web_reg_save_param加入腳本在函數(shù)中加入?yún)?shù)名稱、左邊界標(biāo)識符、右邊界標(biāo)識符以及函數(shù)事件在每次腳本運行時參數(shù)化動態(tài)數(shù)據(jù)校驗執(zhí)行結(jié)果139IP數(shù)據(jù)池運行負載生成器上的“IP 向?qū)А碧砑又付〝?shù)量的IP 地址。為UNIX 負載生成器計算機手動配置新的IP 地址。重新啟動計算機。如有必要,用新地址來更新服務(wù)器的路由表。在Controller 中啟用這項功能。 140Web應(yīng)用測試測試策略 設(shè)計測試 開發(fā)測試應(yīng)用測試 141Web應(yīng)用測試策略按系統(tǒng)架構(gòu):客戶端測試、網(wǎng)絡(luò)上測試、服務(wù)器端測試按面向?qū)ο螅汗δ軠y試、服務(wù)測試、安全測試、數(shù)據(jù)庫測試按質(zhì)量特性:功能測試、性能測試、安全性測試、兼

46、容性測試和易用性測試按開發(fā)階段:設(shè)計測試、開發(fā)測試、運行測試142Web應(yīng)用設(shè)計測試總體架構(gòu)設(shè)計的測試客戶端設(shè)計的測試服務(wù)器端設(shè)計的測試143Web應(yīng)用總體架構(gòu)設(shè)計的測試采用瘦客戶端或胖客戶端是否適合需求確定Web架構(gòu)的組成部分是否滿足需求服務(wù)器的配置及分布是否滿足需求144Web應(yīng)用總體架構(gòu)設(shè)計的測試序號模型單元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è)計的測試功能設(shè)置信息組織結(jié)構(gòu)設(shè)計 頁面設(shè)計146Web應(yīng)用服務(wù)器端設(shè)計的測試功能設(shè)置容量規(guī)劃安全系統(tǒng)設(shè)計 數(shù)據(jù)庫設(shè)計147Web應(yīng)用開發(fā)測試代碼測試組件測試服務(wù)器端設(shè)計的測試148Web應(yīng)用運行測試功能測試易用性測試負載壓力測試客戶端配置與兼容性測試安全性測試149Web應(yīng)用安

48、全性測試部署與基礎(chǔ)結(jié)構(gòu)輸入驗證身份驗證授權(quán)配置管理敏感數(shù)據(jù)回話管理加密參數(shù)操作異常管理審核與日值記錄150Web站點經(jīng)驗點滴在執(zhí)行客戶端并發(fā)性能測試的過程中,需要同時監(jiān)控數(shù)據(jù)庫服務(wù)器、Web服務(wù)器以及網(wǎng)絡(luò)資源等使用情況,以便對系統(tǒng)的性能做全面評估 錄制腳本和手工編寫腳本相結(jié)合 設(shè)置數(shù)據(jù)池,實現(xiàn)變量加載業(yè)務(wù)批量執(zhí)行 151Web站點經(jīng)驗點滴模擬用戶數(shù)的遞增 合理設(shè)置交易之間時間間隔 模擬IP地址變量的技術(shù) 超時(timeout)的設(shè)置 并發(fā)用戶連續(xù)執(zhí)行交易數(shù)的設(shè)置 錯誤處理152Web站點經(jīng)驗點滴利用QALoad的ActiveData技術(shù)采用復(fù)合交易測試方案盡量將執(zhí)行負載測試的機器合理分布 并發(fā)

49、用戶數(shù)量極限點加壓機器的CPU使用率也有必要監(jiān)控 設(shè)置并發(fā)點 HTML與URL錄制方式153腳本調(diào)試技術(shù)Winsock并發(fā)性能測試 關(guān)鍵技術(shù) : 在腳本中如何用變量來代替定值,即處理Winsock應(yīng)用程序數(shù)據(jù)流。 看看下面的實例腳本 !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ù) : 從存儲過程中撲獲一個值利用檢索到的值作為一個參數(shù)傳遞給存儲過程 看看下面的實例腳本 !157腳本調(diào)試技術(shù)存儲過程定義如下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等.壓縮文件請下載最新的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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論