




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、0性能測試培訓:測試工具張開翼 2011-05-091性能測試培訓:測試工具張開翼 2011-05-092u 講座大綱3在之前的講座,已經介紹了什么是性能測試、如何設計性能測試。本次培訓介紹測試工具即用什么來實現性能測試。 廣義來說,性能測試工具是指性能測試過程中使用到的所有工具??梢苑譃椋罕O視工具和驅動工具。監視工具是指在執行測試過程中,獲得被測對象性能參數的工具。驅動工具是指能夠錄制和生成腳本、設置和部署場景、產生并發用戶和向系統施加持續壓力的工具。性能性能監視器監視器 Windows 性能監視器是一個 Microsoft 管理控制臺 (MMC) 管理單元,它結合了性能日志和警報、服務器性
2、能審查程序和系統監視器的功能。 性能監視器提供的圖形界面用于自定義數據收集器集和事件跟蹤會話。監視每個單獨應用程序和進程,以評估其占用的可用資源量。實現原理:操作系統底層驅動實現組成:監視部分(系統監視器)監視部分(系統監視器)和和數據收集部分(計數器日志)數據收集部分(計數器日志)啟動:運行啟動:運行perfmon5監視部分:(系統監視器)配置方法:監視對象/顯示方式/顯示類別圖表中的紅色豎線在不斷向右移動,它表示圖表的更新過程。監視的缺點是:監視周期只有1分40秒時長,并且數據不能連續輸出到文件中。不能做后續分析。數據收集部分:(計數器日志)配置方法:添加目標/添加路徑/日志文件/運行方式
3、優點:可以設定采樣頻率,指定時長或者手工控制采樣時長不間斷地采集性能數據,并且可以多種格式存儲數據,滿足不同的需求,便于事后分析。6可以通過編寫程序來訪問所有的可以通過編寫程序來訪問所有的Windows性能計數器。性能計數器。方法方法1:直接訪問注冊表性能計數器信息。通過注冊表函數,如RegOpenKeyEx、RegQueryvalueEx、RegCloseKey等。值得注意的是,這里雖然使用的是注冊表函數,但性能數據并不存儲在注冊表數據庫中。方法方法2:利用性能數據幫助器(PDH, Performance Data Helper) API (Pdh.dll)來訪問性能計數器信息。詳細研究參考
4、:http:/ PerfMonitor,可以方便快捷地收集性能數據。工具參數:工具參數:Non-hatled clock Cycles無暫停時鐘周期無暫停時鐘周期Retried Instructions重試指令重試指令Cycles per Instructions(CPI)表示每條計算機指令執行所需的時鐘周期Instructions per Cycles (IPC)CPU每一時鐘周期內所執行的指令多少Bus Clock Cycles總線時鐘周期總線時鐘周期UOPS Per Cycles表示每個時鐘周期的表示每個時鐘周期的UOPS數以上共以上共18個參數個參數8工具原理:Windows 事件跟蹤
5、 (ETW) 是操作系統提供的一個高速通用的跟蹤工具,收集系統范圍的數據并分析所有資源(CPU、磁盤、網絡和內存,使用內核中實現的緩沖和日志記錄機制,提供對用戶模式應用程序和內核模式設備驅動程序引發的事件的跟蹤機制。日志記錄機制使用處理器的緩沖區,由異步寫線程將這些緩沖區寫入磁盤。9驅動程序與應用程序間的信息交互。驅動程序用以訪問底層硬件,應用程序實現人機交互,驅動程序和應用程序之間需要實現相應的信息交互,實現信息讀取和控制。IRP: I/O 請求包(I/O Request Packets)。上層應用程序與底層驅動程序通信時,應用程序會發出I/O請求,操作系統將相應的I/O請求轉換成相應的IR
6、P,不同的IRP會根據類型被分派到不同的派遣例程中進行處理。函數包括以下API函數; 相應的API函數能夠激發驅動程序的消息。接口接口API函數函數 驅動程序的中驅動程序的中IRP對應功能對應功能CreateFileIRP_MJ_CREATE用于打開驅動程序CloseHandleIRP_MJ_CLOSE關閉驅動程序ReadFileIRP_MJ_READ用于從驅動程序中讀取數據WriteFileIRP_MJ_WRITE用以往驅動程序中寫入數據DeviceIoControlIRP_MJ_DEVICE_CONTROL通過定義各種 ITL_CODE來實現應用程序與驅動程序間的通訊函數,并可以傳遞各種參
7、數和數據10Process ExplorerProcess Explorer 是一款免費的增強型任務管理器。它能讓使用者了是一款免費的增強型任務管理器。它能讓使用者了解看不到的在后臺執行的處理程序解看不到的在后臺執行的處理程序,可以使用它方便地管理你的程序進程可以使用它方便地管理你的程序進程。 Process Explorer能監視,掛起,重啟,強行終止任何程序,包括系統級別的不允許隨便終止的關鍵進程和十分隱蔽的頑固木馬。 除此之外,它還詳盡地顯示計算機信息: CPU使用,虛擬內存,物理內存,I/O使用,網絡使用,磁盤使用情況,可以顯示一個程序調用了哪些動態鏈接庫DLL,句柄,模塊,系統進程。
8、以目錄樹的方式查看進程之間的歸屬關系,可以對進程進行調試??梢圆榭催M程的路徑,以及公司,版本等詳細信息。11Process Explorer 的顯示有兩個子窗口所組成,窗口上方會顯示出當前活躍的程序進程,包括它們的詳細描述,窗口下方則會顯示出通過資源管理器模式運行的應用程序的相關信息,以及它們所調用的DLL和打開的句柄。工具優點:1、不僅可以檢查被測程序本身,還可以通過線程查看程序調用的DLL和有數據交互的其他程序。有助于故障定位和資源消耗分析。2、CPU使用率歷史的波形圖,綠色部分的縱坐標是當時的內核線程用戶線程CPU占用總和,下面的紅色部分則專門用來警示內核線程的CPU占用。若有系統進程占
9、用CPU就顯示紅色或紅多綠少,需要警惕硬件或驅動有問題了。例如:Realtek某網卡驅動有問題,Interrupts和DPCs兩進程(外設中斷請求相關)持續占用CPU,系統進程占用CPU就顯示紅色;如果上下翻頁或快速移動鼠標時CPU飆升,紅色部分占了大半,推測顯卡或芯片組的驅動有問題了。12NetLimiter工具介紹:網絡流量控制軟件。通過它,您可以直接來控制每個程序對Internet的訪問以及流量分配情況。1、可以精確統計每個進程的帶寬資源占用,包括實時和歷史統計。2、通過限速功能,模擬某些帶寬要求的測試場景。工具原理:Netlimiter安裝的時候是從最底層的硬件驅動安裝。意味著Netl
10、imiter計流量的時候是以從驅動層抓取的數據包為依據。 提示:歷史統計部分,從工具安裝并啟動后生效。13LoadRunner,是一種預測系統行為和性能的負載測試工具。通過以模擬上千萬用戶實施并發負載及實時性能監測的方式來確認和查找問題。測試對象:目前主要是應用在B/S架構的性能測試。通過LoadRunner執行壓力測試,當有500個虛擬用戶在并發執行業務時,對服務端施加的壓力和500個實際客戶施加的壓力是相同的。Loadrunner14性能測試工具LoadRunner包含以下部件:u虛擬用戶腳本生成器(Virtual User Generator)捕獲最終用戶業務流程和創建自動性能測試腳本,
11、即我們在以后說的產生測試腳本u壓力產生器(Player)壓力產生器用于根據壓力調度系統的命令,產生實際的負載u用戶代理(Agent)協調不同負載機上虛擬用戶,產生步調一致的虛擬用戶u壓力調度和監控系統(Conductor)壓力調度工具可以根據用戶的場景要求,設置不同的Vu數量等 監控系統主要是用于對數據庫、服務器的性能計數器等的監控u壓力結果分析工具(Analysis)壓力結果分析工具 主要是將獲取的性能計數器的信息,生成相應的分析圖LR-組成15LR-結構圖16LR-工具特性-概念在LoadRunner的腳本編寫中,有兩個重要的概念:事務、思考時間事務是LoadRunner度量度量系統性能指
12、標性能指標的唯一手段。通常事務時間所反映的是一個操作過程的響應時間。Vuser 思考時間模擬實際用戶在不同操作之間等待的時間。測量與計算測量與計算每秒運行事務數=并發用戶/(響應時間+思考時間)服務器吞吐量 =并發用戶* 單個事務吞吐量* 響應時間/(響應時間+思考時間) 舉例來說,模擬1,000個真正用戶使用2秒響應時間和20秒思考時間情況,服務器吞吐量:單個事務吞吐量x 1000 x 2 / ( 2 + 20 ) = 91 x 單個事務吞吐量17X軸:并發用戶數Y軸:思考響應時間Z軸:每秒運行事務數以三維圖顯示 “每秒運行事務數”與“并發用戶數 ” 和“每個事務的思考響應時間“的關系。請分
13、析在什么情況下, “每秒運行事務”為?18模塊工作原理:u虛擬用戶腳本生成器 代理(Proxy)是客戶端和服務器端之間的中介人,LoadRunner就是通過代理方式截獲客戶端和服務器之間交互的數據流。虛擬用戶通過腳本控制,發出無圖形界面的應用程序接口調用。LR-虛擬用戶腳本生成器 客戶端服務端業務客戶端服務端代理解析業務腳本19LR-工具特性-參數化 對Vuser腳本進行參數化的好處:1、減小腳本的大小2、提供了使用不同的腳本的值執行腳本的能力參數化涉及兩個任務:1、用參數替換Vuser腳本的常量值2、為參數設置屬性和數據源在Loadrunner錄制腳本及執行的過程中,經常會用到變量參數化來進
14、行一些不同組合及唯一性值的設定。例如論壇會員登錄,100個用戶同時登錄,登錄的用戶名應該都是唯一的。基于腳本視圖中創建參數。選擇要參數化的字符,右鍵菜單“替換新參數”或“使用已經存在的參數替換”。配置參數名稱、參數類型、參數初始值。方法1.通過參數屬性向導完成參數配置。方法2.Loadrunner允許利用參數化從已經存在的數據庫中導入數據。20LR-壓力產生器 虛擬用戶,通過執行腳本完成事務。LoadRunner 提供了多種 Vuser 技術,通過這些技術可以在使用不同類型的客戶端/ 服務器體系結構時生成服務器負載。Loadrunner controller使用驅動程序mdrv (多線程驅動進
15、程(Multi-threaded Driver Process)運行Vuser。用戶可以在controller的run-time setting中選擇Vuser的運行方式, 是多進程方式or多線程方式。以線程方式來運行虛擬用戶: “單行/多行腳本” 決定系統啟動的進程數的多少。假設并發用戶設置為30,如果是單行30個用戶,系統只需啟動一個進程;假設并發用戶設置為30,如果是多行(40行),每行一個用戶,系統就需要啟動40個進程;以進程方式來運行虛擬用戶:進程數是一定的,就是并發用戶的總數。21進程方式和線程方式的優缺點:按照進程方式運行:每個用戶都將啟動一個mdrv進程,多個mdrv進程會占用
16、大量內存及其他系統資源,這就限制了可以在任一負載生成器上運行的并發用戶數的數量,因為負載機的資源(內存及其他系統資源)是有限的。按照線程方式運行:在默認情況下,controller為每50個用戶僅啟動一個mdrv進程,而每個用戶都按線程方式來運行,這些線程用戶將共享父進程的內存段,這就節省了大量內存空間,從而可以在一個負載生成器上運行更多的用戶。同一個測試場景,用線程并發就會出現超時失敗或報錯,而用進程并發就沒錯。原因:線程的資源是從進程資源中分配出來的,因此同一個進程中的多個線程會有共享的內存空間,假設a線程要用資源就必須等待b線程釋放,而b線程也在等待其他資源釋放才能繼續,這樣就會出現這個
17、問題。22LR-用戶代理 用戶代理是運行在負載機上的進程,該進程與產生負載壓力的進程或是線程協作,接受調度系統的命令,調度產生負載壓力的進程或線程。前置條件:首先能Ping通那些測試機,其次那些測試機必須安裝遠程代理調度程序(進程)和LoadRunner 代理。場景計劃:加壓/持續時間/減壓。23LR-工具特性-集合點集合點的用處對于LoadRunner來說意義非常大,它可以設置多個虛擬用戶等待到一個點,同時觸發一個事務,以達到模擬真實環境下同時多個用戶操作,同時模擬負載,實現性能測試的最終目的。 注:只能向 Action 部分(而不是 init 或 end 部分)添加集合點。24LR-壓力調
18、度和監控系統壓力調度:根據用戶的場景要求,設置不同的Vu數量 定義運行虛擬用戶的主機。 定義運行測試所需的虛擬用戶數量。 向各個群組分配腳本。執行管理計劃,手動或定時執行自動化流程,可以在用戶離開時運行腳本。監控系統:統計壓力產生器和服務器的資源占用。統計響應時間在各個階段的分解占用。監控方式:1、進入被監視windows系統,開啟以下2個服務Remote Procedure Call(RPC) 和Remote Registry Service。2、得到服務器的管理員權限,在安裝LR的機器上,可以去連接。3、在controller 中,Windows Resources窗口中右擊鼠標選擇Add
19、 Measurements,添加被監控windows的IP地址,選擇所屬系統,然后選擇需要監控的指標就可以開始監控了。25LR-工具特性-IP欺騙功能背景:1、當某個IP的訪問過于頻繁,或者訪問量過大時,服務器會拒絕訪問請求。2、某些服務器配置了負載均衡,使用同一個IP不能測出系統的實際性能。3、有一些網站會限制同一個用戶同一個IP 的登陸。目的:使每個主機“欺騙”服務器,以為這是使用許多不同的IP地址。實現方式:IP向導程序(ipwizard.exe在LR bin中)是用來在每個負載生成器主機上,定義多個IP地址。IP向導程序會創建一個批處理文件,該文件更新IP表。IP的分配和用戶正在運行的
20、方式一致。如果用戶作為一個進程在運行,那么IP分配作為一個進程來做,如果用戶作為一個線程在運行, 那么IP分配作為一個線程來做。步驟:1、創建/讀取IP列表。2、在配置中啟動IP欺騙。3、釋放已設置的IP。loadrunner在做IP欺騙時,真實的虛擬了IP地址,該IP地址均真實存在,可以ping通,可以建立網絡鏈接,在不使用時必須進行釋放,否則這些IP地址將一直存在。26LR-壓力結果分析工具 一旦測試完畢后,LoadRunner收集匯總所有的測試數據,提供高級的分析和報告工具,以便迅速查找到性能問題并追溯原由。 使用LoadRunner的Web 交易細節監測器,可以對事務響應時間進行細分。
21、A.GUI客戶端客戶端APIB.外部外部InternetWANC.前向前端的前向前端的Web服務器服務器D.Internet 防火墻防火墻路由器路由器E.負載平衡器負載平衡器F.中間件中間件(應用服務器)(應用服務器)G.數據庫數據庫服務器服務器27對壓力測試響應時間分析:測試場景:針對某個網站,測試中分別使用10/25/50/75/100 幾個不同級別的并發用戶數量執行訪問,統計事務的響應時間。針對每個數量級別的測試用戶,并發用戶全部啟動。通過監控系統可以獲得針對響應時間、并發用戶的統計數據。通過壓力結果分析器生成分析圖,或將參數通過EXCEL統計,以不同視角顯示,供測試工程師分析。90用戶
22、響應時間:把響應時間從小到大順序排序,那么90的請求的響應時間在這個范圍之內。為什么要有為什么要有90用戶響應時間?僅僅有平均事務響應時間是不夠的。用戶響應時間?僅僅有平均事務響應時間是不夠的。假如有一次測試,總共有假如有一次測試,總共有100個請求被響應,其中最小響應時間為個請求被響應,其中最小響應時間為0.02秒,最大秒,最大響應時間為響應時間為110秒,平均事務響應時間為秒,平均事務響應時間為4.7秒,你會不會想到最小和最大響應秒,你會不會想到最小和最大響應時間如此大的偏差是否會導致平均值本身并不可信?時間如此大的偏差是否會導致平均值本身并不可信?28壓力測試響應時間分析:顏色代表并發用
23、戶數,縱軸單位毫秒,代表業務響應時間。橫軸代表指定比例用戶(例如90%的用戶)從上面的圖表中可以看到,當并發用戶數量為10時:最小響應時間最小響應時間最大響應時間最大響應時間平均響應時間平均響應時間90%用戶響應時間用戶響應時間31080212406.29488729假如有兩組測試結果,響應時間分別是假如有兩組測試結果,響應時間分別是 1,3,5,10,16 和和 5,6,7,8,9,它們的平均值都是,它們的平均值都是7,你認為哪次測試的結果更理想?,你認為哪次測試的結果更理想?NUM MEANSTD DEVMINMAX90TH響應成功的請求數量響應時間的平均值標準差最小值最大值90用戶響應時
24、間576.0411613.6571.58598.630壓力測試響應時間分析:表格中顏色代表響應時間,橫軸代表并發用戶數,縱軸代表響應時間不同事務數量占事務總數的百分比。當并發用戶數量為10時,超過95的用戶都可以在5秒內得到響應;請對并發用戶數量為25的情況,進行分析。31判斷應用程序的問題:判斷應用程序的問題:如果系統由于應用程序代碼效率低下或者系統結構設計有缺陷而導致大量的上下文切換(context switches/sec顯示的上下文切換次數太高)那么就會占用大量的系統資源,如果系統的吞吐量降低并且CPU的使用率很高,并且此現象發生時切換水平在15000以上,那么意味著上下文切換次數過高
25、.請對上圖分析,是否程序設計存在缺陷?32判斷判斷CPU瓶頸:瓶頸:如果processor queue length(處理器作業列隊長度)顯示的隊列長度保持不變(=2個) 并且處理器的利用率%Processortime超過90%,那么很可能存在處理器瓶頸。如果發現processor queue length顯示的隊列長度超過2,而處理器的利用率卻一直很低,或許更應該去解決處理器阻塞問題。請對上圖分析, CPU能否滿足程序需要?33判斷內存泄露問題:判斷內存泄露問題:Windows資源監控中,如果ProcessPrivate Bytes計數器和ProcessWorking Set計數器的值在長時間內持續升高,同時MemoryAvailable bytes計數器的值持續降低,則很可能存在內存泄漏。請對上圖分析,被測對象是否有內存泄露?提示:內存泄露問題經常出現在服務長時間運轉的時候,由于部分程序對內存沒有釋放,而將內存慢慢耗盡.也是提醒大家對系統穩定性測試的關注。34誤區誤區1 1:認為性能測試就是用性能測試工具執行測試:認為性能測試
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025至2031年中國亞克力鉆貼行業投資前景及策略咨詢研究報告
- 2025至2030年中國集成木材數據監測研究報告
- 2025家電加盟合同模板
- 2025至2030年中國軟式脖套/頸圈數據監測研究報告
- 2025標準勞動合同書范本
- 2025至2030年中國石英異型管數據監測研究報告
- 非開挖裂縫修復施工方案
- 2025至2030年中國氟鈦酸銨數據監測研究報告
- 水上攔污浮筒施工方案
- 高中地理初高中知識銜接
- 2025福建省泉州市房屋租賃合同范本
- 4.3.1 呼吸道對空氣的處理 課件人教版(2024)七年級下冊
- 中華遺產考試題目及答案
- 全廠設施色彩、標志牌統一規定
- 2024年保安員資格考試初級理論知識試題庫【模擬題】
- 物業電工安全培訓
- 浙江國企招聘2025上半年湖州市交通投資集團有限公司招聘11人筆試參考題庫附帶答案詳解
- 湖南省炎德英才名校聯考聯合體2024-2025學年高二下學期3月月考-化學+答案
- 騰訊財經筆試題庫及答案
- 2025年安徽省示范高中皖北協作區第27屆聯考物理+答案
- 工程招標代理服務方案
評論
0/150
提交評論