版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、軟件性能測試軟件性能測試性能測試概要第一章認識LoadRunner第二章VuGen錄制Vuser腳本第三章Controller創(chuàng)建運行場景第四章Analysis分析結果第五章課程內(nèi)容課程內(nèi)容1、為什么要做性能測試?1、客戶有明確要求。2、公司內(nèi)部想知道目前系統(tǒng)的性能狀況。3、找出系統(tǒng)性能瓶頸。4、了解系統(tǒng)在長時間的壓力下性能情況。2、性能測試定義 性能測試是通過自動化測試工具模擬多種正常、峰值以及異常負載條件來對系統(tǒng)的各項性能指標進行測試 。 性能關注點 時間(用戶使用的響應時間) 空間(資源消耗情況)3、性能測試范圍 p 性能范圍(廣義) 系統(tǒng)的性能是一個很大的概念,覆蓋面非常廣泛,對一個軟
2、件系統(tǒng)而言包括:執(zhí)行效率、資源占用、系統(tǒng)穩(wěn)定性、安全性、兼容性、可靠性、可擴展性。p 負載測試 通過測試系統(tǒng)在資源超負荷情況下的表現(xiàn),以發(fā)現(xiàn)設計上的錯誤或驗證系統(tǒng)的負載能力。負載測試的目標目標是確定并確保系統(tǒng)在超出最大預期工作量的情況下仍能正常運行。p 壓力測試 對系統(tǒng)不斷施加壓力的測試,是通過確定一個系統(tǒng)的瓶頸或者不能接收的性能點,來獲得系統(tǒng)能提供的最大服務級別的測試。壓力測試是為了發(fā)現(xiàn)在什么條件下您的應用程序的性能會變得不可接受。負載測試、壓力測試和性能測試的區(qū)別 負載測試負載測試是模擬實際軟件系統(tǒng)所承受的負載條件的系統(tǒng)負荷,通過不斷加載(如逐漸增加模擬用戶的數(shù)量)或其它加載方式來觀察不同
3、負載下系統(tǒng)的響應時間和數(shù)據(jù)吞吐量、系統(tǒng)占用的資源(如CPU、內(nèi)存)等,以檢驗系統(tǒng)的行為和特性,以發(fā)現(xiàn)系統(tǒng)可能存在的性能瓶頸、內(nèi)存泄漏、不能實時同步等問題。 壓力測試壓力測試是在強負載(大數(shù)據(jù)量、大量并發(fā)用戶等)下的測試,查看應用系統(tǒng)在峰值使用情況下操作行為,從而有效地發(fā)現(xiàn)系統(tǒng)的某項功能隱患、系統(tǒng)是否具有良好的容錯能力和可恢復能力。壓力測試分為高負載下的長時間(如24小時以上)的穩(wěn)定性壓力測試和極限負載情況下導致系統(tǒng)崩潰的破壞性壓力測試。 性能測試性能測試是為獲取或驗證系統(tǒng)性能指標而進行測試。多數(shù)情況下,性能測試會在不同負載情況下進行。66、性能測試的類別(其他) 配置測試配置測試主要是通過測試
4、找到系統(tǒng)各項資源的最佳分配原則。例如我們可以不停的調(diào)整oracle的內(nèi)存來決定cpu和內(nèi)存的匹配情況。(當前配置-調(diào)優(yōu)-未來業(yè)務增長) 容量測試 測試系統(tǒng)能夠處理的最大會話能力。確定系統(tǒng)可處理同時在線的最大用戶數(shù),通常和數(shù)據(jù)庫有關。 可靠性測試 加載一定的業(yè)務壓力(比如直到Cpu資源在70-90的使用率)的情況下,運行一段時間,檢查系統(tǒng)是否穩(wěn)定。 失敗測試 對于有冗余備份和負載均衡的系統(tǒng),通過這樣的測試來檢驗如果系統(tǒng)局部發(fā)生故障用戶是否能夠繼續(xù)使用系統(tǒng),用戶受到多大的影響。4、性能測試指標(一) 事務(事務(TransactionTransaction ) 在web性能測試中,一個事務表示一個
5、“從用戶web ServerDBweb server用戶”的過程,一般的響應時間都是針對事務而言的。 響應時間(響應時間(Response TimeResponse Time) 響應時間指的是從客戶端發(fā)起一個請求開始,到客戶端接收到從服務器端返回的響應結束,這個過程所耗費的時間。在某些工具中,響應時間通常會稱為 “TTLB”,即“time to last byte”,意思是從發(fā)起一個請求開始,到客戶端收到最后一個字節(jié)的響應所耗費的時間。響應時間的單位一般為“秒”或者“毫秒”。一個公式可以表示:響應時間= 網(wǎng)絡響應時間 + 應用程序響應時間 。 點擊率(客戶端點擊率(客戶端 Hit RateHi
6、t Rate) Hit Rate:是指每秒發(fā)送的HTTP請求的數(shù)量,點擊率越大對server造成的壓力就越大。4、性能測試指標(二) 吞吐量吞吐量(ThroughputThroughput)吞吐量指的是單位時間內(nèi)處理的客戶端請求數(shù)量。通常情況下,吞吐量用請求數(shù)/秒或者頁面數(shù)/秒來衡量。從業(yè)務角度看,吞吐量也可以用訪問人數(shù)/天 或者頁面訪問量/天來衡量。 并發(fā)用戶并發(fā)用戶(Concurrent users)(Concurrent users)并發(fā)數(shù)是指同時進行請求的客戶的數(shù)量,并發(fā)數(shù)用于模擬用戶的真實負載情況(并發(fā)情況是對系統(tǒng)最大的考驗),并發(fā)數(shù)同時使用系統(tǒng)的用戶數(shù)。 同一時刻 對服務器有負載(
7、注意:全部用戶、在線用戶、并發(fā)用戶三者之間的區(qū)別)4、性能測試指標(三) 資源利用率資源利用率(內(nèi)存、CPU、網(wǎng)絡、I/O的利用率等 Resource utilizationResource utilization)資源利用率指的是對不同系統(tǒng)資源的使用程度,例如服務器的CPU(s),內(nèi)存,網(wǎng)絡帶寬等。資源利用率通常以占用最大值的百分比n%來衡量。105、 2/5/10原則一當用戶能夠在2秒以內(nèi)得到響應時,會感覺系統(tǒng)的響應很快二當用戶在2-5秒之間得到響應時,會感覺系統(tǒng)的響應速度還可以三當用戶在5-10秒以內(nèi)得到響應時,會感覺系統(tǒng)的響應速度很慢,但是還可以接受四而當用戶在超過10秒后仍然無法得到
8、響應時,會感覺系統(tǒng)糟透了,或者認為系統(tǒng)已經(jīng)失去響應,而選擇離開這個Web站點,或者發(fā)起第二次請求。7、性能測試實施過程(一)一 了解被測試項目的性能測試需求二 分析被測試項目的性能測試需求三 編寫性能測試計劃/測試用例四 腳本維護(編寫程序)五 執(zhí)行腳本(執(zhí)行程序)六 分析結果七 性能調(diào)優(yōu)9、性能測試工具 商業(yè) Mercury Loadrunner(現(xiàn)為HP) Rational Performance Tester SeagueSilkTest RadviewWebLoad 免費 Microsoft Web Application Stress Tool Microsoft Applicati
9、on Center Test 開源 OpenSTA Jmeter Grinder性能測試概要第一章認識LoadRunner第二章VuGen錄制Vuser腳本第三章Controller創(chuàng)建運行場景第四章Analysis分析結果第五章課程內(nèi)容課程內(nèi)容1、 LoadRunner簡介l LoadRunner是Mercury Interactive公司開發(fā)的用于測試應用程序性能的工具。通過LoadRunner,可以在可控制的峰值負載條件下測試系統(tǒng)。l LoadRunner可以模擬產(chǎn)生分布在網(wǎng)絡中的數(shù)千個虛擬用戶(Vuser),通過使用最少的硬件資源,提供一致的、可重復的、可度量的負載,像實際用戶一樣使用
10、您的應用程序, 并生成評估應用程序性能所需的信息(以報告、圖等形式)。安裝注意事項:安裝注意事項: 操作系統(tǒng)最好為Windows 2000 安裝前最好關閉其他應用程序 安裝文件存放路徑及安裝路徑中不能包含中文不出現(xiàn)空格,中文,括號Tomcat6.0Pro gram(x86) License的問題,參見安裝包中的破解方法。LoadRunner的使用事項 使用IE6.0進行錄制(其他瀏覽器會產(chǎn)生無法預知的兼容性問題) 安裝后不能錄制的解決方法參見LR打開錄制無法彈出IE處理方法2、LoadRunner的安裝及使用3、LoadRunner組成結構 VuGen:(Virtual User Genera
11、tor)虛擬用戶腳本產(chǎn)生器 Controller:壓力調(diào)度和監(jiān)控系統(tǒng) 控制器(創(chuàng)建場景、場景設計、場景監(jiān)控) 負載器(注意:控制器和負載器不能同一臺機器,一定要分開) Analysis:壓力結果分析工具4、LoadRunner運行原理5、LoadRunner腳本核心內(nèi)容l事務l集合點l參數(shù)化l檢查點l動態(tài)控制l關聯(lián)性能測試概要第一章認識LoadRunner第二章VuGen錄制Vuser腳本第三章Controller創(chuàng)建運行場景第四章Analysis分析結果第五章課程內(nèi)容課程內(nèi)容1、Vuser的概念p 虛擬用戶生成器(也稱為VuGen)實際上是一套針對各種應用程序類型和通信協(xié)議,開發(fā)調(diào)試 Vus
12、er 腳本的工具。 p VuGen能夠錄制、編輯Vuser 腳本,并且可以生成各種函數(shù),來定義您在錄制會話過程中執(zhí)行的操作,還可以運行這些腳本。p Vuser LoadRunner生成的模擬用戶實際操作的虛擬用戶。Vuser 通過執(zhí)行典型業(yè)務流程模擬實際用戶的操作。增加 Vuser 的數(shù)量可以增大系統(tǒng)上的負載。LoadRunner 擁有各種 Vuser 類型,每一類型都適合于特定的負載測試環(huán)境。 2、Vuser的類型(協(xié)議)應用程序部署解決方案:Citrix ICA客戶端/服務器: DB2 CLI、DNS、Informix、MS SQL Server、ODBC、Oracle(2 層)、Syba
13、se Ctlib、Sybase Dblib 和 Windows Sockets 協(xié)議。自定義:C 模板、Visual Basic 模板、Java 模板、Javascript 和 VBScript 類型的腳本。分布式組件:適用于 COM/DCOM、Corba-Java 和 Rmi-Java 協(xié)議。電子商務:FTP、LDAP、Palm、PeopleSoft 8 mulit-lingual、SOAP、Web Web (HTTP/HTML)(HTTP/HTML) 和雙 Web/Win Socket 協(xié)議。Enterprise Java Bean:EJB 測試和 Rmi-Java 協(xié)議。ERP/CRM:
14、Baan、Oracle NCA、Peoplesoft-Tuxedo、SAP-Web、SAPGUI、Siebel-DB2 CLI、Siebel-MSSQL、Siebel-Web 和 Siebel-Oracle 協(xié)議。傳統(tǒng):終端仿真 (RTE)。郵件服務:Internet 郵件訪問協(xié)議 (IMAP)、MS Exchange (MAPI)、POP3 和 SMTP。中間件:Jacada 和 Tuxedo(6、7)協(xié)議。流數(shù)據(jù):Media Player (MMS) 和 Real 協(xié)議。無線:i-Mode、VoiceXML 和 WAP 協(xié)議。3、新建Vuser腳本啟動LoadRunner,選擇“Creat
15、e/Edit Script”,打開VuGen,創(chuàng)建一個新的Vuser腳本注意:使用LR時,最好將分辨率設為1024*768,否則有些菜單顯示不完全4、選擇系統(tǒng)通訊協(xié)議LRClientServerl LR根據(jù)協(xié)議識別,QTP根據(jù)對象l 我們怎么知道用什么協(xié)議呢?5、Vuser腳本的基本組成(一)p 創(chuàng)建的每個Vuser腳本都至少包括三部分:一個Vuser_init、一個或多個Action、一個Vuser_end。p LR語言:C、LR自身語言5、Vuser腳本的基本組成(二)腳本部分腳本部分錄制部分錄制部分執(zhí)行時間執(zhí)行時間說明說明Vuser_init登陸到服務器初始化Vuser加載腳本時,執(zhí)行一
16、次Actions客戶端活動Vuser處于運行狀態(tài)可設置運行參數(shù),重復執(zhí)行Vuser_end注銷過程Vuser完成或停止結束腳本運行時,執(zhí)行一次6、錄制Vuser腳本(一)根據(jù)被測對象選擇應用類型選擇被錄制的應用程序,瀏覽器的一般選擇IE6.0,其他瀏覽器可能會存在問題。在URL中添加要測試的web站點的地址設置錄制腳本的存放路徑Record into Action中選擇把錄制的站點放到腳本的哪一個部分Record the application startup 意思是應用程序一旦啟動就錄制腳本;如果不選此項,也可以在應用程序運行過程中選擇開發(fā)錄制腳本。Options中進行錄制前的選項設置6、錄
17、制Vuser腳本(二)6、錄制Vuser腳本(三)基于瀏覽器的應用程序推薦使用HTML-based Script,腳本中采用HTML 頁面的形式來表示,這種方式的Script腳本容易維護,容易理解。不是基于瀏覽器的應用程序推薦使用URL-based Script,腳本中的表示采用基于URL 的方式,不是很好閱讀。 如果基于瀏覽器的應用程序中包含了JavaScript,并且該Script向服務器產(chǎn)生了請求,也要使用URL-based Script的方式錄制。基于瀏覽器的應用程序使用了HTTPS安全協(xié)議,也要使用URL-based Script的方式錄制。選取哪種錄制方式,遵循以下原則:6、錄制V
18、user腳本(四)6、錄制Vuser腳本(五) 通知Vugen去重新設置每個action之間的Http context,缺省是需要的。 保存一個本地的snapshot,可以加速顯示 把html的title放到web_reg_find函數(shù)里面 支持的字符集標準 Http header的錄制,我們采用缺省即可,不需要用web_add_header去錄制非標準的header信息。 對錄制的content的內(nèi)容進行filter,不作為resource處理的。6、錄制Vuser腳本(六)6、錄制Vuser腳本(七)點擊“Start Record”開始錄制腳本6、錄制Vuser腳本(八)注意:錄制過程中不
19、要使用瀏覽器的后退功能,LR支持的不是很好開始、運行、結束、暫停錄制編譯腳本創(chuàng)建Action插入Text檢查點插入事務“起始點”插入事務“結束點”插入集合點插入注釋改變錄制的Option設置7、增強Vuser腳本-事務事務(Transaction)事務(Transaction)我們?yōu)榱硕攘糠掌黜憫付ǖ腣user請求所用的時間,需要在任務的開始和結束位置插入這樣一個函數(shù),這樣就定義了一個事務,LoadRunner 運行到該事務的開始點時,LoadRunner 就會開始計時,直到運行到該事務的結束點,計時結束。這個事務的運行時間在測試結果中會有反映。插入事務操作可以在錄制過程中進行,也可以在錄
20、制結束后進行。每一個腳本中,可標記的事務數(shù)量不受限制,但是名稱不能相同,且事務的開始與結束必須匹配。u自動插入u手動插入/開始事務:事務名lr_start_transaction(“l(fā)ogin”);/結束事務:事務名,事務狀態(tài)lr_end_transaction(“l(fā)ogin” ,LR_AUTO);7、增強Vuser腳本-插入Text/Image檢查點(1)l 在進行壓力測試時,為了檢查Web服務器返回的網(wǎng)頁是否正確,VuGen允許我們插入Text/Image 檢查點,這些檢查點驗證網(wǎng)頁上是否存在指定的Text或Image,還可以測試在比較大的壓力測試環(huán)境中,被測的網(wǎng)站功能是否保持正確。l 插
21、入檢查點在樹模式下進行插入操作(檢查頁面之前)l 舉例說明:系統(tǒng)登錄-要測試200人同時進行登錄,但是在應用程序里面沒有正確的關閉數(shù)據(jù)庫的連接,導致登錄100人后,建立了100個數(shù)據(jù)庫連接,第101一個人登錄的時候,由于超出數(shù)據(jù)庫連接的最大數(shù),所以,程序拋出了一個數(shù)據(jù)庫異常。但是LR接收到了客戶端的請求并且做出了響應,所以loadrunner會認為程序是正確執(zhí)行的,但是事實卻并非如此。l 注意:LR只會判斷Transaction是否被執(zhí)行,而不會判斷你獲得的結果是否正確。而我們需要判斷的往往是正確執(zhí)行該次操作(事務)并獲得正確的結果。為了保證測試時結果的正確性,一定要添加檢查點。7、增強Vus
22、er腳本-插入Text/Image檢查點(2)注意:使用Tree View來增加檢查點會比較方便、直觀;推薦在錄制腳本過程中增加檢查點7、增強Vuser腳本-插入Text/Image檢查點(3)l 插入Text 檢查點(推薦使用web_reg_find)l web_find與web_reg_find的區(qū)別-Web_find只適合html靜態(tài)頁面的檢查,效率低,很少用。-web_reg_find在緩存中查找內(nèi)容,效率高。7、增強Vuser腳本-插入Text/Image檢查點(4)web_reg_find設置Text檢查點屬性 /LR中顯示的腳本 web_reg_find(Text=vince,S
23、aveCount=count,Search=Body,LAST); Text:被搜索的字符串 SaveCount:用count保存搜索到的字符串的次數(shù) Search:搜索范圍7、增強Vuser腳本-插入Text/Image檢查點(5)設置Image檢查點屬性/LR中顯示的腳本web_image_check(web_image_check,“Src=images/QQ.jpg,LAST);7、增強Vuser腳本-動態(tài)控制/利用web_reg_find的SaveCount中的count計數(shù)判斷測試結果if(atoi(lr_eval_string(count)=1)lr_end_transactio
24、n(login, LR_PASS); lr_message(Test OK); elselr_end_transaction(login, LR_FAIL);lr_message(Test NG); /lr_eval_string(“count”)讀參數(shù)值/atoi()轉(zhuǎn)化數(shù)據(jù)類型7、增強Vuser腳本-關聯(lián)(1)n為什么需要關聯(lián)語句: 許多應用程序和網(wǎng)站都是按當前日期和時間來標識會話。如果嘗試重放腳本,該操作將會失敗,因為當前時間與錄制的時間不同,通過關聯(lián)語句可以保存動態(tài)數(shù)據(jù),并且在整個運行方案過程中使用這些數(shù)據(jù)。例如:當你回放一次后,LR會自動錄找你錄制的時候和回放時候的差別,找出動態(tài)數(shù)據(jù)
25、,并作成參數(shù)。例如當用戶登錄時,會產(chǎn)生一個Session id號,訪問結束后,該Session id便會失效。錄制的時候,在腳本里面獲取到了該Session id,但當再回放的時候,這個Session id已經(jīng)無效了,所以,需要把這個Session id作為一個動態(tài)數(shù)據(jù),當?shù)顷懙臅r候,便獲取一個新的有效的Session id,然后通過web_reg_save_param(“WCSParam_Text2”,“LB=ProcessID=”,“RB=;”,“Ord=1”,“RelFrameId=1”,“Search=body”,LAST);函數(shù)保存下來7、增強Vuser腳本-關聯(lián)(2)關聯(lián)方法自動關
26、聯(lián)(Ctrl+F8)手動關聯(lián)手動關聯(lián)步驟錄制腳本(兩個業(yè)務完全一致)比較腳本(ToolWdiff)找到需要關聯(lián)的內(nèi)容找左右邊界值(ServerResponse)添加規(guī)則7、增強Vuser腳本-關聯(lián)(3)int web_reg_save_param (const char * ParamName, , LAST);第一部分:參數(shù)名字,用雙引號括起,逗號分開;第二部分:List of Attributes,包括:LB、RB、RelFrameID、Ord、Search、SaveOffset、SaveLen等。第三部分:LAST,結束標志。LB是左邊界,RB是右邊界:比如程序中有這么一個賦值,Proc
27、essID =A53625E18440FCE81F26DCE712E65EBA; 如果 ProcessID 的值是動態(tài)的,我想使用動態(tài)變量,那我設定查找左邊界為LB=ProcessID=,右邊界為 ;的字符,如果找到了,就替換成變量.Search:是指查找范圍,就是說在哪里查找這些值,可以取這樣幾個值,我們一般設為ALL,Body等。Headers (Search only the headers),Body (search only Body data, not headers),Noresource (search only the html body, excluding all hea
28、ders and resources),ALL (search Body and headers). The default value is ALL.RelFrameID: The hierarchy level of the HTML page relative to the requested URL.一般取1ORD: This parameter, also known as Instance, indicates the ordinal or instance of the match. 一般取 17、增強Vuser腳本-參數(shù)化(1)u對Vuser腳本進行參數(shù)化的目的:1、唯一性約束
29、(注冊賬戶)2、日期約束(訂票日期限制)3、數(shù)據(jù)約束(數(shù)據(jù)庫數(shù)據(jù),航班動態(tài))4、緩存約束(相同的賬戶登錄和不同賬戶登錄測試結果不一樣)u參數(shù)化包括兩項任務:1、在腳本中用參數(shù)取代常量值2、設置參數(shù)的屬性以及數(shù)據(jù)源7、增強Vuser腳本-參數(shù)化(2)選中要替換的值,然后點鼠標右鍵, 選擇“Replace with a parameter.”,出現(xiàn)以下窗口7、增強Vuser腳本-參數(shù)化(3)參數(shù)類型解釋:DateTime:在需要輸入日期/時間的地方,可以用DateTime類型來替代,其屬性設置也很簡單,選擇一種格式即可,當然也可以定制格式。Group Name:在實際運行中,LoadRunner使
30、用該虛擬用戶所在的Vuser Group 來代替,但是在VuGen 中運行時,Group Name將會是None。Load Generator Name:在實際運行中,LoadRunner 使用該虛擬用戶所在Load Generator的機器名來代替。Iteration Number:在實際運行中,LoadRunner 使用該測試腳本當前循環(huán)的次數(shù)代替。Random Number:隨機數(shù),在屬性設置中可以設置產(chǎn)生隨機數(shù)的范圍。Unique Number:唯一的數(shù),在屬性設置中可以設置第一個數(shù)以及遞增數(shù)的大小。注意:使用參數(shù)類型Unique Number必須注意可以接受的最大數(shù)。例如:某個文本框
31、能接受的最大數(shù)為99,當使用參數(shù)類型時,設置第一個數(shù)為1,遞增的數(shù)為1,但100 個虛擬用戶同時運行時,第100虛擬用戶輸入的將是100,這樣腳本運行將會出錯。注意:這里說的遞增意思是各個用戶取第一個值的遞增數(shù),每個用戶相鄰的兩次循環(huán)之間的差值為1。舉例說明:假如起始數(shù)為1,遞增為5,那么第一個用戶第一次循環(huán)取值1,第二次循環(huán)取值2;第二個用戶第一次循環(huán)取值為6,第二次為7,依次類推。Vuser ID:在實際運行中LoadRunner使用該虛擬用戶的ID 來代替,該ID是由Controller來控制的。但是在VuGen 中運行時,Vuser ID 將會是1。User Defined Funct
32、ion:從用戶開發(fā)的dll文件提取數(shù)據(jù)。File:需要在屬性設置中編輯文件,添加內(nèi)容,也可以從現(xiàn)成的數(shù)據(jù)庫中取數(shù)據(jù)。7、增強Vuser腳本-參數(shù)化(4)點擊“Vuser”菜單中“Parameter List”按鈕,打開參數(shù)列表窗口,可以創(chuàng)建、修改腳本中所有參數(shù)7、增強Vuser腳本-參數(shù)化(5)參數(shù)文件注意事項:1、參數(shù)化文件不能過大,最大不能超過15M2、文本文件要多出一行7、增強Vuser腳本-參數(shù)化(6)【Select next row】有以下幾種選擇:多個VU如何取值Sequential:按照順序一行行的讀取,每一個虛擬用戶都會按照相同的順序讀取Random:在每次循環(huán)里隨機的讀取一個
33、,但是在循環(huán)中一直保持不變Unique:每個VU取唯一的值。 注意:使用Unique類型必須注意數(shù)據(jù)表有足夠多的數(shù),比如Controller 中設定20個虛擬用戶進行5次循環(huán),那么編號為1的虛擬用戶取前5個數(shù),編號為2的虛擬用戶取6-10的數(shù),依次類推,這樣數(shù)據(jù)表中至少要有100個數(shù)據(jù),否則Controller 運行過程中會返回一個錯誤?!綰pdate value on】有如下幾種選擇:多次迭代如何取值Once: 在所有的反復中都使用同一個值,each iteration: 則每次反復都要取新值,each occurrence:則只要發(fā)現(xiàn)該參數(shù)就要重新取值,也就是如果一個action中有多個該
34、參數(shù),每遇到一個就要重新取一個值。輸出參數(shù)值:lr_output_message(User: %snn, lr_eval_string(UserName);7、增強Vuser腳本-集合點集合點(Rendezvous)集合點:是一個并發(fā)訪問的點,在測試計劃中,可能會要求系統(tǒng)能夠承受1000 人同時提交數(shù)據(jù),在LoadRunner 中可以通過在提交數(shù)據(jù)操作前面加入集合點,這樣當虛擬用戶運行到提交數(shù)據(jù)的集合點時,LoadRunner 就會檢查同時有多少用戶運行到集合點,如果不到1000 人,LoadRunner 就會命令已經(jīng)到集合點的用戶在此等待,當在集合點等待的用戶達到1000 人時,LoadRu
35、nner 命令1000 人同時去提交數(shù)據(jù),達到并發(fā)訪問的目的。 lr_rendezvous(login);注意:注意:1 1、集合點經(jīng)常和事務結合起來使用,常放在事務的前面;、集合點經(jīng)常和事務結合起來使用,常放在事務的前面;2 2、集合點只能插入到、集合點只能插入到ActionAction部分,部分,vuser_initvuser_init和和vuser_endvuser_end中不中不能插入集合點;能插入集合點;7、增強Vuser腳本-其他u 注釋:可以插入注釋來描述活動或關于某個操作的信息/* * 費用查詢 */u 模擬用戶思考時間:我們把用戶在連續(xù)的兩個操作之間的等待時間稱之為“思考時間
36、” lr_think_time();u 消息函數(shù):lr_debuge_message將調(diào)試消息發(fā)送到輸出窗口lr_error_message將錯誤消息發(fā)送到輸出窗口lr_get_debuge_message 檢索當前的消息類 lr_log_message將輸出消息直接發(fā)送到output.txt 文件,此文件位于vuser腳本目錄下,為了防止輸出信息干擾TCP/IP通信lr_output_message 將消息發(fā)送到輸出窗口lr_message將消息發(fā)送到Vuser日志和輸出窗口注意:不要在事務中輸出消息,因為這有可能使事務執(zhí)行時間變長,扭曲事務結果注意:不要在事務中輸出消息,因為這有可能使事務
37、執(zhí)行時間變長,扭曲事務結果8、Run-Time Setting-迭代通過配置運行時的設置,可以模擬不同的用戶活動運行邏輯1、迭代2、操作塊3、順序4、權重8、Run-Time Setting-迭代迭代次數(shù):LoadRunner可以按指定的次數(shù)重復執(zhí)行Actions。操作塊:操作塊是腳本內(nèi)單獨的操作組,可以包含vuser_init、vuser_action、vuser_end,可以單獨設置每個塊的屬性。順序:可以設置腳本內(nèi)的操作順序,是按順序運行還是隨機。權重:對于隨機運行的操作塊,可以設置塊內(nèi)每個操作的權重或百分比。注意:如果在Controller中設置了方案持續(xù)時間,那么將覆蓋迭代設置。就意
38、味著如果持續(xù)時間為5分鐘,那么Vuser將在5分鐘內(nèi)完成任意多次迭代,即使運行設置也只設置了一次迭代。8、Run-Time Setting-運行步設置8、Run-Time Setting-運行日志注意:1、一般在編輯、錄制Vuser腳本時,建議開啟日志記錄。2、在腳本中包含參數(shù)傳遞、或參數(shù)值改變時,建議開啟“Parameter substitution”,將輸出參數(shù)值到Exception Log窗口。3、在進行并發(fā)測試時,為了避免影響系統(tǒng)運行速度,建議關閉日志記錄。8、Run-Time Setting-思考時間注意:ThinkTime的設置會影響服務器的壓力,如果忽略的話壓力最大。8、Run-
39、Time Setting-其他設置性能測試概要第一章認識LoadRunner第二章VuGen錄制Vuser腳本第三章Controller創(chuàng)建運行場景第四章Analysis分析結果第五章課程內(nèi)容課程內(nèi)容1、設置場景(一)u運行場景描述在測試活動中所發(fā)生的各種事件。u一個運行場景包括:一個運行虛擬用戶活動的LoadGenerator機器列表,一個測試腳本的列表以及大量的虛擬用戶和虛擬用戶組。1、設置場景(二)LR包含兩種場景類型:u Manual Scenario:該項要完全手動的設置場景,這項下面還可以設置為每一個腳本分配要運行的虛擬用戶的百分比,可在Controller的Scenario菜單下
40、設置。u Goal Oriented Scenario:如果你的測試計劃是要達到某個性能指標,比如:每秒多少點擊,每秒多少transactions,能到達多少VU,某個Transaction在某個范圍VU(5001000)內(nèi)的反應時間等等,那么就可以使用面向目標的場景。1、設置場景(三)Design:設計測試場景的靜態(tài)部分,設置模擬用戶生成器、模擬用戶數(shù)量、 模擬用戶組等。Run:設計測試的動態(tài)部分,主要指添加性能計數(shù)器,在腳本運行的過程中可以通過這些計數(shù)器反饋數(shù)據(jù)。VU的百分比重要:根據(jù)業(yè)務運行情況來定(業(yè)界、后臺)2、添加腳本3、設置Schedule(一) 建立了測試場景后,我們可以對Ed
41、it Schedule進行設置,設置測試開始執(zhí)行的時間,對于手動設的測試還可以設定它的持續(xù)時間,以及何時起用或禁止調(diào)用模擬用戶。3、設置Schedule(二)3、設置Schedule(三) 場景設計技巧 每隔30秒增加VU 測試15-30Min 釋放VU與增加對稱 設置相關依賴4、Load Generator Machines(一)點擊 Generators 按鈕后,出現(xiàn) Load Generators對話框點擊 Details 按鈕后,配置Generator4、Load Generator Machines(二) 如何確定需要多少臺負載器 OS 協(xié)議 LR版本 內(nèi)存(mmdir進程查看) 控
42、制器如何控制負載機運行:Tool代理 如何設置負載機Run:二進制文件傳輸信息 運行設置: ThinkTime為3S-5S 進程/線程:根據(jù)被測系統(tǒng)設計來定5、設置集合點及其策略如果在腳本中設置了集合點,還需要在Controller中設置集合點策略。在菜單中調(diào)出設置集合點策略的窗口.,腳本運行的時候,在這里可以看到VU的狀態(tài)。(當VU顯示模式在Vuser Group Mode下才能設置) 6、分析及監(jiān)視場景(一)為了監(jiān)視服務器的運行狀況(Database Server、Web Server等),需要添加性能計數(shù)器6、分析及監(jiān)視場景(二)狀態(tài)狀態(tài)含義含義關閉(Down)Vuser處于關閉狀態(tài)掛起
43、(Pending) Vuser初始化已就緒,正在等待可用的負載生成器,或者正在向負載生成器傳輸文件初始化(Init)Vuser正在進行初始化就緒(Ready)Vuser已經(jīng)執(zhí)行了腳本的初始化部分,可以開始運行正在運行(Run)Vuser正在運行。正在負載生成器上執(zhí)行 Vuser 腳本集合點(Rendezvous)Vuser已經(jīng)到達了集合點,正在等待釋放完成并通過(Passed) Vuser已結束運行。腳本執(zhí)行通過完成但失?。‵ailed)Vuser已結束運行。腳本執(zhí)行失敗錯誤(Error)Vuser發(fā)生了錯誤。要了解錯誤的完整說明,請查看“輸出”窗口或“Vuser”對話框中的“狀態(tài)”字段逐步退
44、出(Gradula Exiting)Vuser正在運行退出前的最后一次迭代退出(Exiting)Vuser運行結束,正在退出停止(Stopped)設置“停止”命令后, Vuser 即停止狀態(tài)概要狀態(tài)概要含義含義場景狀態(tài)(Scenario Status)場景處于“正在運行”狀態(tài),還是處于“關閉”狀態(tài)正在運行的Vuser(Running Vusers)負載生成器計算機上正在執(zhí)行的 Vuser數(shù)已用時間(Elapsed Time)指自場景開始運行到現(xiàn)在所用的時間每秒點擊次數(shù)(Hits/Second)指每個 Vuser 運行期間,每秒對所測試網(wǎng)站的點擊次數(shù)(HTTP請求數(shù))通過的事務數(shù)場景運行到現(xiàn)在成
45、功通過的事務數(shù)失敗的事務數(shù)場景運行到現(xiàn)在失敗的事務數(shù)錯誤數(shù)場景運行到現(xiàn)在發(fā)生錯誤的Vuser數(shù)運行狀態(tài)及狀態(tài)概要說明6、分析及監(jiān)視場景(三)LR只能監(jiān)視它支持的服務器的資源,它支持大部分常見的服務器。p System Resource:包括windows平臺,Unix平臺等p Web Server:包括Apache、IIS、Sun的iplanet等p Application server:包括Weblogic、WebSphere等p Database server:包括DB2,Oracle,Sql server,Sybase等p Java: ejb,J2ee等,需要一個ejbdetector.
46、jar文件6、分析及監(jiān)視場景(四)對Windows(Win2k server)的監(jiān)視:對windows的監(jiān)視相對比較簡單,監(jiān)視前首先需要用有管理員權限的帳號連接被監(jiān)server,例如: net use qa-test /user:donny ,輸入密碼。然后就可以添加計數(shù)器,比較常用的計數(shù)器有:Memory:Available Mbytes 物理內(nèi)存的可用數(shù)(單位 Mbytes)至少要有10% 的物理內(nèi)存值Processor:%Processor Time CPU 使用率。這是查看處理器飽和狀況的最佳計數(shù)器。顯示所有 CPU 的線程處理時間。如果一個或多個處理器的該數(shù)值持續(xù)超過 90%,則表示
47、此測試的負載對于目前的硬件過于沉重。為多處理器服務器添加該計數(shù)器的 0 到 x 個實例。Processor Queue Length:是指處理列隊中的線程數(shù),小于2。處理器瓶頸會導致該值持續(xù)大于 2。Context Switches/sec:如果切換次數(shù)到5000*CPU個數(shù)和10000*CPU個數(shù)中,說明它忙于切換線程。Network Interface:Bytes Total/sec 為發(fā)送和接收字節(jié)的速率,包括幀字符在內(nèi)。判斷網(wǎng)絡連接速度是否是瓶頸,可以用該計數(shù)器的值和目前網(wǎng)絡的帶寬比較。SQL Server2000:%Processor Time,CPU 使用率General Stat
48、istics:Logins/sec,這是每秒登錄到 SQL Server 的計數(shù)。SQL Statistics: Batch Requests/sec,每秒收到的 Transact-SQL 命令批數(shù)。這一統(tǒng)計信息受所有約束(如I/O、用戶數(shù)、高速緩存大小、請求每秒收到的 Transact-SQL 命令批數(shù)。這一統(tǒng)計信息受所有約束(如I/O、用戶數(shù)、高速緩存大小、請求的復雜程度等)影響。批請求數(shù)值高意味著吞吐量很好。性能測試概要第一章認識LoadRunner第二章VuGen錄制Vuser腳本第三章Controller創(chuàng)建運行場景第四章Analysis分析結果第五章課程內(nèi)容課程內(nèi)容1、分析測試結果
49、(一)u場景運行結束之后,需要使用Analysis組件分析結果。Analysis可以在“開始程序”菜單中啟動,也可以在Controller中啟動。uLR的報表分析功能也異常強大,有各種各樣的報表,甚至可以將單個報表組合,也可以導出到Excel文件和Html文件。1、分析測試結果(二)pDNS解析時間:瀏覽器訪問一個網(wǎng)站的時候,一般用的是域名,需要dns服務器把這個域名解析為IP,這個過程就是域名解析時間,如果我們在局域網(wǎng)內(nèi)直接使用IP訪問的話,就沒有這個時間了。pConnection:解析出Web Server 的IP地址后,瀏覽器請求被送到了Web Server,然后瀏覽器和Web Serv
50、er 之間需要建立一個初始化HTTP連接,服務器端需要做2件事:一是接收請求,二是分配進程,建立該連接的過程就是connection時間。pFirst Buffer:建立連接后,從Web Server 發(fā)出第一個數(shù)據(jù)包,經(jīng)過網(wǎng)絡傳輸?shù)娇蛻舳耍瑸g覽器成功接受到第一字節(jié)的時間就是First Buffer。這個度量時間不僅可以表示W(wǎng)eb Server 的延遲時間,還可以表示出網(wǎng)絡的反應時間。pReceive:從瀏覽器接收到第一個字節(jié)起,直到成功收到最后一個字節(jié),下載完成止,這段時間就是receive時間。其他的時間還有SSL Handshaking(SSL 握手協(xié)議,用到該協(xié)議的頁面比較少)、ClientTime(請求在客戶端瀏覽器延遲的時間,可能是由于客戶端瀏覽器的think time 或者客戶端其他方面引起的延遲)、Error Time(從發(fā)送了一個HTTP 請求,到Web Serve
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度教育設備租賃服務協(xié)議書3篇
- 2025年度智慧城市基礎設施場承包建設合同4篇
- 2025年度旅游度假區(qū)租賃合作協(xié)議4篇
- 二零二五年度草花產(chǎn)業(yè)鏈上下游合作協(xié)議及供應鏈管理合同3篇
- 二零二五年度知識產(chǎn)權行業(yè)勞動合同范本3篇
- 二零二五年度航空航天設備制造承包協(xié)議6篇
- 2025年度農(nóng)產(chǎn)品質(zhì)量安全檢測技術服務合同4篇
- 個人建房承攬協(xié)議實例版B版
- 2025年度產(chǎn)教融合校企深度合作協(xié)議4篇
- 2025年度企業(yè)培訓場地租賃保證金及押金使用合同4篇
- 橫格紙A4打印模板
- CT設備維保服務售后服務方案
- 重癥血液凈化血管通路的建立與應用中國專家共識(2023版)
- 兒科課件:急性細菌性腦膜炎
- 柜類家具結構設計課件
- 陶瓷瓷磚企業(yè)(陶瓷廠)全套安全生產(chǎn)操作規(guī)程
- 煤炭運輸安全保障措施提升運輸安全保障措施
- JTGT-3833-2018-公路工程機械臺班費用定額
- 保安巡邏線路圖
- (完整版)聚乙烯課件
- 建筑垃圾資源化綜合利用項目可行性實施方案
評論
0/150
提交評論