負載壓力測試工具實踐課件_第1頁
負載壓力測試工具實踐課件_第2頁
負載壓力測試工具實踐課件_第3頁
負載壓力測試工具實踐課件_第4頁
負載壓力測試工具實踐課件_第5頁
已閱讀5頁,還剩57頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

負載壓力測試工具實踐February231目錄一、負載壓力測試工具二、負載壓力測試流程三、負載壓力測試心得四、負載壓力測試實踐2負載壓力測試工具HP公司(原MI)LoadrunnerIBM公司(原Rational)RationalPerformanceTesterCompuware公司QAloadMicrosoft公司WAS3負載壓力測試工具體系結構圖4負載壓力測試工具應用組件5負載壓力測試工具VuGen虛擬用戶生成器(VUGen)完成腳本記錄。VUGen是在客戶桌面上運行的部件,它捕獲實際客戶應用和服務器之間的通訊。VUGen通過將各種用戶請求發(fā)送至服務器來完全模擬一個真實用戶的實際行為。VUGen能支持Netscape和InternetExplorer瀏覽器,或任何其它第三方的支持代理服務器設置的瀏覽器。完成錄制后,一個測試腳本就生成了6負載壓力測試工具ControllerLoadRunner控制器提供一組性能監(jiān)測器,在負載測試過程中監(jiān)測系統(tǒng)各層面的每一部件的性能。通過記錄整個系統(tǒng)所有性能數據,測試人員可以將這些信息對應最終用戶的負載和響應時間,以定位瓶頸所在。LoadRunner為網絡、網絡服務器和大多數的常規(guī)Web服務器,應用服務器和數據庫服務器提供性能監(jiān)測。性能監(jiān)測以一種完全不干擾被測系統(tǒng)的方式進行,最大限度地減少對性能的影響。所有的這些監(jiān)測器都與硬件、操作系統(tǒng)無關,特別是不需要在目標服務器上安裝任何探針軟件。7負載壓力測試工具AnalysisLoadRunner的Analysis提供一個集成環(huán)境,集中收集所有在測試周期中產生的數據。由于這個工具功能強大且使用簡單,測試人員可以創(chuàng)建跨場景的圖表數據比較,增強數據分析的能力和速度。8負載壓力測試工具LoadGeneratoragentLoadGenerator是負載生成器,在多臺機器上運行vuService方式運行agent可以運行全部類型(GUI(WinRunner,QuickTestProfessional,etc.)orGUI-likescripts(Citrix,SAPGUI,etc.)的vuser腳本,運行magentservice.exe程序。Process方式運行agent可以模擬更多vuser,但是不能夠運行(GUIandSAPVusers),運行magentproc.exe程序。兩種模式切換

cd\PROGRA~1\MERCUR~1\MERCUR~1\LAUNCH~1\bin

magentservice.exe-remove;asprocessmagentservice.exe-install;asserver9負載壓力測試工具recording&scripting生成的腳本文件位置缺省情況下.htm和資源文件存放在X:\ProgramFiles\MercuryInteractive\LoadRunner\scripts每個腳本運行設置的配置文件vuser.cfg放在每個vuser腳本目錄(thinktime,iterations,log,web)vuser.usp文件包括了腳本運行邏輯數據文件位置:缺省情況系統(tǒng)保存它們到腳本目錄運行結果文件C:\DocumentsandSettings\Tester.LOADTEST\LocalSettings\Temp--Tester.LOADTEST為當前用戶名10負載壓力測試工具在“虛擬用戶發(fā)生器”中:執(zhí)行單用戶操作ServerClientApp在“控制臺”中運行已錄制的腳本,多個用戶并發(fā)訪問服務器VirtualUsersServer單用戶與并發(fā)用戶11目錄一、負載壓力測試工具二、負載壓力測試流程三、負載壓力測試心得四、負載壓力測試實踐12負載壓力測試流程系統(tǒng)分析建立虛擬用戶腳本建立負載測試場景運行測試,同步監(jiān)測應用性能分析結果13負載壓力測試流程系統(tǒng)分析性能測試需求分析測試數據分析測試用例制定系統(tǒng)結構掌握,包括:網絡拓撲結構服務器拓撲結構服務器負載平衡測試機要求測試工具要求14創(chuàng)建腳本1、選擇VirtualUserGenerator,vugen主窗口打開2、選擇File>New3、從ProtocolType列表中選擇協(xié)議4、點StartRecording按狃負載壓力測試流程156、對于win32應用程序:Programtorecord:輸入需要記錄的win32應用程序ProgramArguments:對上面指定的應用程序指定一個可執(zhí)行的命令參數,例如:如果上面的應用程序為plus32.exe,你在這里指定一個參數peter@neptune,這個將連接用戶peter到服務器neptune當在開始plus32.exe的時候。WorkingDirectory:為應用程序指定一個工作路徑

創(chuàng)建腳本5、對于internet應用程序:Programtorecord:選擇瀏覽器或者需要記錄的internet應用程序URLAddress:指定一個需要開始的url地址WorkingDirectory:為應用程序指定一個工作路徑

負載壓力測試流程16創(chuàng)建腳本1、結束錄制,轉換到vuser_end,執(zhí)行關閉程序。2、在記錄工具條上點StopRecording3、點save來保存記錄的部分4、可以將整個腳本保存為壓縮文件;可以只保存runtime文件負載壓力測試流程17負載壓力測試流程知識點_Protocol正確的協(xié)議選擇將決定著測試能否正常執(zhí)行并且得到預期的測試結果18負載壓力測試流程知識點_transaction用于衡量某個事務的性能,需要在action的開始和結束位置插入這樣一個范圍,工具運行到該事務的開始點時,工具就會開始計時,直到運行到該事務的結束點,計時結束。19負載壓力測試流程知識點_rendezvous是一個并發(fā)訪問的點,在測試中,可能會要求系統(tǒng)能夠承受1000人同時提交數據,可以通過在提交數據操作前面加入集合點,這樣當虛擬用戶運行到提交數據的集合點時,工具就會檢查同時有多少用戶運行到集合點,如果不到1000人,工具就會命令已經到集合點的用戶在此等待,當在集合點等待的用戶達到1000人時,工具命令1000人同時去提交數據,達到并發(fā)訪問的目的20負載壓力測試流程知識點_Parameter用變量代替常量,所有的性能測試盡可能考慮參數化,不參數化的測試結果將不能模擬實際運行情況,導致測試結果出現(xiàn)偏差21負載壓力測試流程關聯(lián)數據CorrelatedDataisdatawhichissenttotheclientformtheserver,andlatersendbacktotheserverbytheclient所謂的關聯(lián)就是把腳本中某些寫死的數據,轉變成服務器所發(fā)送的、動態(tài)的、每次都不一樣的數據。工具提供二種方式找出需要做關聯(lián)的值:自動關聯(lián)和手動關聯(lián),包括:ManualcorrelationAutomaticcorrelationafterrecordingAutomaticcorrelationduringrecording關聯(lián)函數:web_reg_save_param22負載壓力測試流程自動關聯(lián)VuGen內建自動關聯(lián)引擎,可以自動找出需要關聯(lián)的值,并且使用關聯(lián)函數建立關聯(lián)自動關聯(lián)提供下列二種機制:RulesCorrelation:在錄制過程中VuGen會根據制定的規(guī)則,實時自動找出要關聯(lián)的值。規(guī)則來源有兩種:內建、使用者自定CorrelationStudio:則是在執(zhí)行腳本后才會建立關聯(lián),也就是說當錄制完腳本后,腳本至少須被執(zhí)行過一次才會作用。CorrelationStudio會嘗試找出錄制時與執(zhí)行時,服務器響應內容的差異部分,藉以找出需要關聯(lián)的數據,并建立關聯(lián)23負載壓力測試流程自動關聯(lián)RuleCorrelation1、在RecordingOptions菜單,選擇InternetProtocol>Correlation,勾選Enablecorrelationduringrecording,啟用關聯(lián)2、假如錄制的應用系統(tǒng)屬于內建關聯(lián)規(guī)則的系統(tǒng),請勾選相對應的應用系統(tǒng)?;蛘咭部梢葬槍︿浿频膽孟到y(tǒng)加入新的關聯(lián)規(guī)則3、設定當工具偵測到符合關聯(lián)規(guī)則的數據時,要如何處理:跳出一個訊息對話窗口,詢問您是否要建立關聯(lián)直接自動建立關聯(lián)錄制腳本24負載壓力測試流程自動關聯(lián)CorrelationStudioCorrelationStudio會嘗試找出錄制時與執(zhí)行時,服務器響應內容的差異部分,藉以找出需要關聯(lián)的數據,建立關聯(lián)使用CorrelationStudio的步驟如下:1、錄制腳本并執(zhí)行2、執(zhí)行完畢后,VuGen會跳出下面的ScanActionforCorrelation窗口,詢問您是否要掃描腳本并建立關聯(lián),掃描完后,可以在腳本下方的CorrelationResults中看到掃描的結果3、對其中的掃描進行關聯(lián)如果沒有彈出,需要選擇【Tools】->【GeneralOption】選中的Correlation,選中ShowScanforcorrlerationspopupafterreplayofVuser即可25負載壓力測試流程手動關聯(lián)1、錄制兩份業(yè)務執(zhí)行過程的腳本2、使用WinDiff工具比較兩份腳本的區(qū)別3、使用web_reg_save_param函數手動建立關聯(lián)有時候手動關聯(lián)更可靠26負載壓力測試流程手動關聯(lián)舉例找出要捕捉的變量找出要捕捉的變量的左右邊界找出文本邊界在請求要捕捉變量的頁面前,增加web_reg_save_param函數增加parameter名,左右邊界等在腳本里對每次出現(xiàn)的該動態(tài)變量數值用該參數代替驗證是否能正確執(zhí)行27負載壓力測試流程如何找出要捕捉的變量用相同步驟錄制2個腳本若捕捉的動態(tài)變量是: --依賴于某輸入數據,,重錄制時要改變該數據 --不依賴于任何輸入數據,則用相同數據重新錄制比較腳本 Tools>ComparewithVuser比較不同的行并高亮顯示(wdiff.exe)28負載壓力測試流程找出要捕捉的變量的左右邊界從wdiff里拷貝第1個腳本的動態(tài)變量到notepad中在執(zhí)行日志中,雙擊引起錯誤的行,則指針跳到腳本樹的相關行上并打開該html頁面找出邊界(推薦在TREEVIEW中的HTMLView中,而不是在SCRIPTVIEW):打開查找對話框(Ctrl+F),將wdiff中拷貝的字符串粘貼到查找對話框并進行查找LB應盡可能的唯一,RB不應出現(xiàn)在捕捉的字符串中在錄制日志中查找邊界29負載壓力測試流程找出文本邊界在ExecutionLog中查找出現(xiàn)位置:只在回放前Run-TimeSettings里選中了Datareturnedfromserver時生效30負載壓力測試流程在腳本中增加函數在請求變量值前增加函數web_reg_save_param()在回放中,當VuGen執(zhí)行了web_reg_save_param(),發(fā)生3件事情:1.VuGen創(chuàng)建parameter2.當下一步執(zhí)行時,VuGen搜索HTML頁面源代碼,尋找左右邊界中間的文本3.找到變量值后,VuGen將其存到指定parameter中,這樣,以后當VuGen遇到腳本里引用了該parameter名后,就插入存儲的變量數值31負載壓力測試流程在腳本中增加函數如果你不確認在哪步獲取了變量值,那么:在ExecutionLog里,查找左邊界雙擊ExecutionLog里的該行,跳到對應的ScripteView或TreeView里對應的位置插入web_reg_save_param()輸入parameter名和屬性后,點OKVuGen就插入正確了32負載壓力測試流程增加函數參數Web_reg_save_param(“param_name”,”LB=“,”RB=“,ORD=“,LAST);命名parameter從HTML中拷貝邊界文本增加Executionlog里出現(xiàn)的序號到ORD參數中33負載壓力測試流程參數化腳本中的變量值選擇Edit>Replace.在FindWhat文本框里拷貝或輸入錄制時的變量值在ReplaceWith

文本框里輸入parameter名(必須和web_reg_save_param函數里定義的一樣,用{}包圍)點FindNext

查找當工具找到后,點ReplaceAll

按鈕34負載壓力測試流程舉例web_reg_save_param("CpyID", "LB/IC=javascript:openInfo(window,", "RB/IC=,'{Company}',", "Ord=1", "NotFound=Error", LAST);Web_url(“”,”URL=/bdma/nextStep.do?cpyId={CpyID}&year={Year}&month={Mon}”,LAST);Web_submit_data(“”,”Name=companyId","Value={CpyID}",ENDITEM,LAST);35建立負載測試場景1、手動創(chuàng)建一個場景2、面向目標的場景負載壓力測試流程36建立負載測試場景通過Schedule的設置完成對性能測試運行設計。如:模擬用戶遞增的情況;模擬用戶自動運行等負載壓力測試流程37建立負載測試場景帶寬、瀏覽器、網關等的設置負載壓力測試流程38建立負載測試場景測試用機的全面調用(別忘了“\\測試用機”用administrator登錄)負載壓力測試流程39建立負載測試場景對某個系統(tǒng)進行多個功能同時操作的性能測試同樣的腳本在多個測試用機上模擬運行….負載壓力測試流程40負載壓力測試流程建立負載測試場景可以增加包括服務器系統(tǒng)資源、應用服務器的利用情況等的所有視圖41負載壓力測試流程執(zhí)行測試在Run選項卡中點擊StartScenario運行腳本,腳本運行時添加的計數器將顯示時實監(jiān)測的數據,如圖:右上角出現(xiàn)紅色的區(qū)域,顯示有錯誤出現(xiàn),或者有失敗的事務處理點擊Errors行的紅色區(qū)域,則彈出所有錯誤信息的窗口42負載壓力測試流程結果分析事件統(tǒng)計報表錯誤匯總報告整體統(tǒng)計結果43負載壓力測試流程結果分析增加一個新的視圖:Web資源視圖系統(tǒng)資源視圖等等44負載壓力測試流程結果分析指標的交叉擬合45目錄一、負載壓力測試工具二、負載壓力測試流程三、負載壓力測試心得四、負載壓力測試實踐46負載壓力測試心得

具體問題具體分析(由于不同的應用系統(tǒng),不同的測試目的,不同的性能關注點)查找瓶頸時按以下順序,由易到難服務器硬件瓶頸-〉網絡瓶頸-〉操作系統(tǒng)瓶頸(參數配置)-〉服務器軟件瓶頸(參數配置,數據庫,web服務器等)-〉應用瓶頸(SQL語句、數據庫設計、業(yè)務邏輯、算法等)以上過程并不是每個分析中都需要的,要根據測試目的和要求來確定分析的深度。對一些要求低的,我們分析到應用系統(tǒng)在將來大的負載壓力(并發(fā)用戶數、數據量)下,系統(tǒng)的硬件瓶頸在哪兒就夠了。分段排除法很有效47負載壓力測試心得根據測試結果收集到的監(jiān)控指標數據根據場景運行過程中的錯誤提示信息48負載壓力測試心得實例:Error:Failedtoconnecttoserver"0:8080":[10060]ConnectionError:timedoutError:Server"0"hasshutdowntheconnectionprematurely分析:A、應用服務死掉:程序或者數據庫的問題B、應用服務沒有死:應用服務參數設置問題許多客戶端連接Weblogic應用服務器被拒絕,而在服務器端沒有錯誤顯示,則有可能是Weblogic中的server元素的AcceptBacklog屬性值設得過低。如果連接時收到connectionrefused消息,說明應提高該值,每次增加25%C、數據庫的連接:1、在應用服務的性能參數可能太小了2、數據庫啟動的最大連接數(跟硬件的內存有關)49負載壓力測試心得最大并發(fā)用戶數:應用系統(tǒng)在當前環(huán)境(硬件環(huán)境、網絡環(huán)境、軟件環(huán)境(參數配置))下能承受的最大并發(fā)用戶數如果出現(xiàn)了大于3個用戶的業(yè)務操作失敗,或出現(xiàn)了服務器shutdown的情況,則說明在當前環(huán)境下,系統(tǒng)承受不了當前并發(fā)用戶的負載壓力,那么最大并發(fā)用戶數就是前一個沒有出現(xiàn)這種現(xiàn)象的并發(fā)用戶數如果測得的最大并發(fā)用戶數到達了性能要求,且各服務器資源情況良好,業(yè)務操作響應時間也達到了用戶要求,那么OK。否則,需根據各服務器的資源情況和業(yè)務操作響應時間進一步分析原因所在50負載壓力測試心得業(yè)務操作響應時間:分析運行情況應從平均事務響應時間圖和事務性能摘要圖開始。使用“事務性能摘要”圖,可以確定在方案執(zhí)行期間響應時間過長的事務細分事務并分析每個頁面組件的性能。查看過長的事務響應時間是由哪些頁面組件引起的?問題是否與網絡或服務器有關如果服務器耗時過長,使用相應的服務器圖確定有問題的服務器度量并查明服務器性能下降的原因。如果網絡耗時過長,使用“網絡監(jiān)視器”圖確定導致性能瓶頸的網絡問題51負載壓力測試心得內存:UNIX資源監(jiān)控中的內存頁交換速率(Pagingrate),如果該值偶爾走高,表明當時有線程競爭內存。如果持續(xù)很高,則內存可能是瓶頸。也可能是內存訪問命中率低Windows資源監(jiān)控中,如果Process\PrivateBytes計數器和Process\WorkingSet計數器的值在長時間內持續(xù)升高,同時Memory\Availablebytes計數器的值持續(xù)降低,則很可能存在內存泄漏在Unix/linux操作系統(tǒng),當CPU利用率低,但是事務響應時間仍然較長時,還需要觀察I/OWait的變化,以鑒別是否因為I/O導致CPU利用率低52負載壓力測試心得內存成為性能瓶頸的征兆:

很高的換頁率(highpageoutrate)進程進入不活動狀態(tài)交換區(qū)所有磁盤的活動次數過高很高的全局系統(tǒng)CPU利用率內存不夠出錯(outofmemoryerrors)53負載壓力測試心得處理器:UNIX資源監(jiān)控(Windows操作系統(tǒng)同理)中的指標CPU占用率(CPUutilization),如果該值持續(xù)超過95%,表明瓶頸是CPU??梢钥紤]增加一個處理器或換一個更快的處理器。如果服務器專用于SQLServer,可接受的最大上限是80-85%,合理使用的范圍在60%至70%Windows資源監(jiān)控中,如果System\ProcessorQueueLength大于2,而處理器利用率(ProcessorTime)一直很低,則存在著處理器阻塞54負載壓力測試心得CPU成為性能瓶頸的征兆:

很慢的響應時間(slowresponsetime)CPU空閑時間為零(zeropercentidleCPU)過高的用戶占用CPU時間(highpercentuserCPU)過高的系統(tǒng)占用CPU時間(highpercentsystemCPU)長時間的有很長的運行進程隊列(largerunqueuesizesustainedovertime)55負載壓力測試心得磁盤I/O:UNIX資源監(jiān)控(Windows操作系統(tǒng)同理)中的指標磁盤交換率(Diskrate),如果該參數值一直很高,表明I/O有問題??煽紤]更換更快的硬盤系統(tǒng)Windows資源監(jiān)控中,如果DiskTime和Avg.DiskQueueLength的值很高,而PageReads/sec頁面讀取操作速率很低,則可能存在磁盤瓶頸56負載壓力測試心得I/O成為性能瓶頸的征兆:過高的磁盤利用率(highdiskutilization)太長的磁盤等待隊列(largediskqueuelength)等待磁盤I/O的時間所占的百分率太高(largepercentageoftimewaitingfordiskI/O)太高的物理I/O速率:largephysicalI/Orate(notsufficientinitself)過低的緩存命中率(lowbuffercachehitratio(notsufficientinitself))太長的運行進程隊列,但CPU卻空閑(largerunqueuewithidleCPU)57負載壓力測試心得1、如果自由內存接近于0而且?guī)炜齑婊驍祿值淇齑娴拿新市∮?.90,那么需要增加SHARED_POOL_SIZE的大小快存(共享SQL區(qū))和數據字典快存的命中率:select(sum(pins-reloads))/sum(pins)fromv$l

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論