1.協(xié)議的選擇
Loadrunner
的協(xié)議選擇眾多,想正確的選擇腳本協(xié)議,首先要從Loadrunner的
工作
原理上深入的理解協(xié)議的作用和意義, Loadrunner啟動后,在任務(wù)欄上有一個loadrunner agent process 進程,這個進程的一項重要的工作就是監(jiān)視各種協(xié)議的客戶端和服務(wù)器端的通信.只要是能支持的協(xié)議, Loadrunner在錄制的工程中就可以通過腳本語言將通信工程錄制下來,所以要明確被測軟件的通信過程和所使用的協(xié)議, Loadrunner才能正確的錄制腳本。
a.選擇單協(xié)議還是多協(xié)議的關(guān)鍵是你對應(yīng)用的通信細(xì)節(jié)要清楚.可以多問問開發(fā)他們是怎么實現(xiàn)的.比如有個 WEB 系統(tǒng)需要 測試 ,看上去選擇單協(xié)議 就可以了,但是在和服務(wù)器交互的過程中,瀏覽器下載頁面里的APPLET并且用APPLET和服務(wù)器建立了SOCKET傳輸一些數(shù)據(jù).這種情況下就該選擇 多協(xié)議了.還有一些郵件方面的應(yīng)用一般都要選擇多協(xié)議,郵件系統(tǒng)都會使用到發(fā)送和接受兩種協(xié)議.有些時候不選擇多協(xié)議,腳本也能運行.但你的腳本沒有完全 反映出客戶端和服務(wù)器端的交互過程.選擇錄制腳本的協(xié)議前,還是要多分析一下應(yīng)用系統(tǒng)
b.一般將應(yīng)用軟件分為B/S和C/S結(jié)構(gòu)來選擇協(xié)議, 對于B/S結(jié)構(gòu),可以選擇WEB(HTTP/HTTML)協(xié)議;對于C/S結(jié)構(gòu),可以根據(jù)后端 數(shù)據(jù)庫 的類型來選擇,如SYBASECTLIB協(xié)議用于測試 后臺數(shù)據(jù)庫為SYBASE的應(yīng)用,MS? SQL ?SERVER協(xié)議用于測試后臺數(shù)據(jù)庫為SQL SERVER的應(yīng)用;對于沒有數(shù)據(jù)庫的WINDOWS應(yīng)用,可以選擇WINDOWS SOCKETS這個底層的協(xié)議;這里需要說明的是,無論使用哪種協(xié)議,LOADRUNNER的測試流程都基本是一樣的,只有在設(shè)定細(xì)節(jié)上有所不同,測試人 員只要對被測應(yīng)用的技術(shù)架構(gòu)熟悉了,就能夠成功完成腳本的錄制。
2.腳本的錄制
當(dāng)選擇好腳本協(xié)議后,就可以對開始錄制了,如果是B/S架構(gòu)的測試對象,當(dāng)然選擇了web(http/html),接著輸入要測試的URL地址,確定 就OK了。
a.明確腳本的三個部分
LOADRUNNER 將測試腳本分為3個部分,VUSER_INIT,VUSER_END和ACTION,其中VUSER_INIT和VUSER_END一般用于存放應(yīng)用程序 初始化的腳本和注銷關(guān)閉的腳本,在重復(fù)執(zhí)行的時候,這兩部分的內(nèi)容只執(zhí)行一次.而ACTION部分用于存放實際的操作腳本,這部分腳本可以多次執(zhí)行,測試 人員還可以根據(jù)需要創(chuàng)建多個ACTION 腳本,但不能創(chuàng)建VUSER_INIT和VUSER_END.所以在錄制的時候一定要明確:錄制的流程是否要迭代,如果要一定要放入ACTION部分。
b.錄制時的腳本開發(fā)
在錄制的時候在屏幕上會有一個懸浮的控制腳本錄制的工具欄,是腳本錄制過程中測試人員和VUGEN交互的主要平臺,每個可用的按鈕都可以執(zhí)行相應(yīng)的操 作,如上圖,測試人員可以新建Action,插入文本檢查點,制定開始結(jié)束事務(wù),也可以在需要測試的功能點插入集合點,或作一些必要的注釋等等…..
3.腳本的開發(fā)與加強
該階段也是腳本錄制階段最重要的部分,為了實現(xiàn)理想中的需求,你可以添加事務(wù),插入集合點,調(diào)整運行時的設(shè)置,參數(shù)化數(shù)據(jù),插入文本圖片檢查點,但是 在這之前必須要確保錄制的腳本能夠跑通,即回放沒有問題,有如下提示圖。
a.添加事務(wù)
除了從總體把握系統(tǒng)的性能問題外,測試工程師可能還要對業(yè)務(wù)中的某一個具體部分的數(shù)據(jù)進行分析,來檢測該功能點的性能問題,為了達(dá)到這個目的,就要為 該功能點添加事務(wù),將該功能點用開始與結(jié)束事務(wù)包起來,分析該事務(wù)來了解和把握該功能的性能。
所謂事務(wù)(TRANSACTION),就是在腳本定義中定義的某段操作(ACTION),更確切的說,就是一段腳本語句.定義事務(wù)時,首先在腳 本中找到事務(wù)的開始和結(jié)束位置,然后分別插入一個事務(wù)起始標(biāo)記,這樣,當(dāng)腳本運行的時候,LOADRUNER會自動在事務(wù)的起始點計時,腳本在運行到事務(wù) 結(jié)束點時計時結(jié)束,系統(tǒng)會自動記錄這段操作的運行時間等性能數(shù)據(jù);在腳本運行完畢后,系統(tǒng)會在結(jié)果信息中單獨反映每個事務(wù)運行結(jié)果。
事務(wù)的插入操作可以在腳本運行過程中進行,也可以在腳本錄制完畢后進行,建議在腳本錄制完畢后進行.如下圖添加。
也可以在腳本中插入事務(wù),在樹圖列表下右鍵,選擇在該項之前或之后添加事務(wù),開始和結(jié)束的事務(wù)是成對出現(xiàn),不然腳本會報錯,如下圖:
b.插入集合點
在控制臺執(zhí)行負(fù)載測試,設(shè)置多用戶同時加載并發(fā),并發(fā)過程僅僅體現(xiàn)在開始執(zhí)行的那一剎那,隨著服務(wù)器對請求的響應(yīng)時間的不一致或系統(tǒng)環(huán)境條件的限制, 在運行過程中能集合到一點的可能性微乎其微,所以將一定數(shù)量的用戶同時加載并不是真正意義上的并發(fā)。
系統(tǒng)壓力最大的情況是:所有用戶都集中到系統(tǒng)瓶頸的某個點上進行操作,從腳本的角度來講,這個點就是執(zhí)行腳本的某一條或一段語句,為了真實模擬 這個最壞的情況,查看系統(tǒng)在最壞情況下的反映。
為了實現(xiàn)測試一個業(yè)務(wù)中途的并發(fā) 性能測試 ,LR中的集合點就孕育而生了,使跑在前面的用戶在該點上等待,讓后面的追趕上來, 將眾多的Vuser集合到一起,來達(dá)到并發(fā)的效果.來幫助測試人員實現(xiàn)真正意義上的并發(fā)。
插入集合點的方法:可以在錄制的時候添加,也可以象添加事務(wù)一樣,在樹圖列表下添加.當(dāng)然如果熟悉集合點的語言的話在腳本中直接插入語言也可 以。
c.運行時設(shè)置
點擊右上角圖標(biāo),彈出運行時設(shè)置對話框,就可以對迭代次數(shù)和迭代邏輯進行設(shè)置,迭代之間的時間的設(shè)置,還可以對網(wǎng)絡(luò)的速度,瀏覽 器,Internet協(xié)議的模擬。
每個 Vuser 腳本都包括三部分:vuser_init、Run (Actions) 和 vuser_end。可以指示 Vuser 在運行腳本時重復(fù)執(zhí)行 Run 部分。每次重復(fù)稱為一次迭代。 運行多次迭代時,將不會重復(fù)執(zhí)行 Vuser 腳本的 vuser_init 和 vuser_end 部分。
迭代次數(shù):迭代的次數(shù)。Vuser 將按指定的次數(shù)重復(fù)執(zhí)行所有 Actions。注意:對于 LoadRunner Controller 和優(yōu)化模塊:如果在計劃設(shè)置中指定了場景或會話步驟持續(xù)時間,則持續(xù)時間設(shè)置將覆蓋 Vuser 迭代設(shè)置。這意味著,如果持續(xù)時間被設(shè)置為 5 分鐘(默認(rèn)設(shè)置),Vuser 將在 5 分鐘內(nèi)根據(jù)需要連續(xù)運行任意多次迭代,即使運行時設(shè)置僅指定一次迭代。
運行多操作腳本時,可以指明執(zhí)行操作的方法以及 Vuser 執(zhí)行這些操作的方法:操作塊:操作塊是腳本內(nèi)的操作組。您可以單獨設(shè)置每個塊的屬性 - 其順序、迭代和權(quán)重。順序:您可以設(shè)置腳本內(nèi)的操作順序。還可以指明是按順序還是隨機執(zhí)行操作。迭代:除了設(shè)置整個 Run 部分的迭代次數(shù)以外,還可以設(shè)置單個操作或操作塊的迭代。該設(shè)置非常有用,例如,可以用來模擬一個商業(yè)站點,您在該站點執(zhí)行了多次查詢查找某個產(chǎn)品,但只 進行了一次購買。權(quán)重:對于隨機運行其操作的操作塊,您可以設(shè)置塊內(nèi)每個操作的權(quán)重或百分比。
d.參數(shù)化腳本
眾多用戶都使用相同帳戶登陸或相同的數(shù)據(jù)來測試腳本,對系統(tǒng)造成的壓力與實際情況會有所不同.而對于那些禁止一個用戶多次登陸的系統(tǒng),也就嚴(yán)重到無法 測試的地步了.為了解決這個問題,讓系統(tǒng)更加真實的模擬多用戶使用的實際環(huán)境,LOADRUNNER提供了對腳本進行參數(shù)化輸入的功能;讓每個虛擬用戶都 擁有自己的帳戶進行登錄和運行。
所謂的腳本參數(shù)化,就是針對腳本中的某些常量,定義一個或多個包含數(shù)據(jù)源的參數(shù)來取代,讓場景中不同的虛擬用戶在執(zhí)行相同的腳本時,分別使用參 數(shù)數(shù)據(jù)源中的不同數(shù)據(jù)代替這些常量,從而達(dá)到模擬多用戶真實使用系統(tǒng)的目的。
明確需參數(shù)的數(shù)據(jù),選中該數(shù)據(jù),右鍵替換為新參數(shù),打開屬性—>用記事本編輯—>運行腳本,it is over。
?
需要注意的是在參數(shù)化屬性頁面的設(shè)置比較復(fù)雜,下面就講解下設(shè)置的細(xì)節(jié):
- Select next row :多個VU如何取值
- Sequential:按照順序一行行的讀取。每一個虛擬用戶都會按照相同的順序讀取
- Random:在每次循環(huán)里隨機的讀取一個,但是在循環(huán)中一直保持不變
- Unique :每個VU取唯一的值。注意:使用該類型必須注意數(shù)據(jù)表有足夠多的數(shù)。
- Same Line As 某個參數(shù)(比如Name):和前面定義的參數(shù)Name 取同行的記錄。通常用在有關(guān)聯(lián)性的數(shù)據(jù)上面。
- Update value on:多次迭代如何取值
- once在所有的反復(fù)中都使用同一個值
- each iteration則每次反復(fù)都要取新值,
- each occurrence則只要發(fā)現(xiàn)該參數(shù)就要重新取值,也就是如果一個action中有多個該參數(shù),每遇到一個就要重新取一個值
- 一個參數(shù)在一個Action中出現(xiàn)多次時
- Random+each iteration 該次迭代中某參數(shù)的取值方法為:本次迭代中參數(shù)第一次取的值,多次取值不變化
- Random+each occurrence 該次迭代中某參數(shù)的取值方法為:在本次迭代中參數(shù)每次取值都通過Random來變化
- Random+once 在所有迭代中某參數(shù)的取值受第一次取值的影響。第一次取值通過Random來變化,之后不再改變
參數(shù)化數(shù)據(jù)的準(zhǔn)備:可以通過一些工具來生成需要的數(shù)據(jù),如果在數(shù)據(jù)庫中有現(xiàn)成的數(shù)據(jù)也可以通過數(shù)據(jù)庫導(dǎo)出來達(dá)到目的,只要選擇數(shù)據(jù)向?qū)ВB接到數(shù)據(jù)庫服 務(wù)器,輸入SQL語句即可,如下圖
e.插入檢查點
LOADRUNNER檢查點的功能主要用來驗證某個界面上是否存在指定的TEXT或IMAGE等對象,在使用LOADRUNNER測試WEB應(yīng)用時, 可以檢查壓力較大時WEB服務(wù)器能否返回正常的頁面。
-
定位要檢查的頁面
定位需要檢查的頁面,最好將腳本視圖切換到TREE VIEW方式,這樣就可以直觀地查看到LOADRUNNER錄制時獲取的每個頁面了。在TREE VIEW視圖中用鼠標(biāo)單擊頁面左側(cè)列表中頁面對應(yīng)的URL,就能迅速查看到準(zhǔn)備檢查的頁面和頁面上需要檢查的圖象或文本信息。 -
插入文字檢查點
選擇相應(yīng)的URL,單擊鼠標(biāo)右鍵,在系統(tǒng)彈出的菜單中選擇INSERT AFTER或INSERT BEFORE命令,在URL的腳本前面或后面插入函數(shù),在ADD STEP對話框中可以插入很多的函數(shù),如果想為WEB應(yīng)用插入圖像或文本檢查點,需要選擇WEB CHECKS下面的IMAGE CHECK或TEXT CHECK,在系統(tǒng)彈出的檢查點屬性對話框中,輸入要查詢的文字或圖像名稱后,系統(tǒng)會自動在TREE VIEW視圖中的樹型列表中插入類似的STEP。LOADRUNNER 還允許對要檢查的文字內(nèi)容和圖像名稱進行參數(shù)化,參數(shù)化的過程可以在插入檢查點的 過程中實現(xiàn),還可以在插入之后重新打開腳本實現(xiàn)。要想在插入檢查點時就直接實現(xiàn)參數(shù)化,只需要在設(shè)置被檢查對象的名稱時單擊ABC按鈕,創(chuàng)建或選擇參數(shù)輸 入就可以了。 -
設(shè)定與檢查點有關(guān)的選項
系統(tǒng)在執(zhí)行時是否起用檢查點,是由一個系統(tǒng)參數(shù)控制的,該參數(shù)的設(shè)定方法為:VUSER|RUN-TIME SETTINGS|PREFERENCES,如果想讓檢查點起作用,需要選中ENABLE IMAGE AND TEXT CHECK 復(fù)選框。 -
查看檢查點是否通過
腳本運行結(jié)束后,要想查看檢查點是否通過,可以在TREE VIEW視圖下,用鼠標(biāo)右鍵單擊檢查點步驟,選擇GO TO STEP IN EXECUTION命令,則系統(tǒng)自動將光標(biāo)定位到執(zhí)行 日志 中獲取檢查點結(jié)果的一行上。
4.LoadRunner 腳本中做關(guān)聯(lián) (Correlation)
LR中的關(guān)聯(lián)是為了解決腳本中隨時變動的數(shù)據(jù),一般都是服務(wù)器返回給客戶端的隨機數(shù)據(jù),如生成的定單號,session,Cookie號等等,每個數(shù) 據(jù)之間沒有任何聯(lián)系,為了不因為這些數(shù)據(jù)的不同而導(dǎo)致腳本的不通過,LR提供了關(guān)聯(lián)功能,它可以實時自動找出要關(guān)聯(lián)的值,將這些動態(tài)數(shù)據(jù)聯(lián)系起來。
關(guān)聯(lián)分為自動關(guān)聯(lián)和手動關(guān)聯(lián),自動關(guān)聯(lián)必須要在錄制腳本之前開啟自動關(guān)聯(lián)項。
a.啟用auto-correlation
點選VuGen的【Tools】>【Recording Options】,開啟【Recording Options】對話窗口,選取【Internet Protocol】>【Correlation】,勾選【Enable correlation during recording】,以啟用自動關(guān)聯(lián)。
假如錄制的應(yīng)用系統(tǒng)屬于內(nèi)建關(guān)聯(lián)規(guī)則的系統(tǒng),如AribaBuyer、BlueMartini、BroadVision、 InterStage、mySAP、NetDynamics、 Oracle 、PeopleSoft、Siebel、SilverJRunner等,請勾選 相對應(yīng)的應(yīng)用系統(tǒng)。或者也可以針對錄制的應(yīng)用系統(tǒng)加入新的關(guān)聯(lián)規(guī)則,此即為使用者自訂的關(guān)聯(lián)規(guī)則。
b.自動關(guān)聯(lián)----Correlation Studio
當(dāng)錄制的應(yīng)用系統(tǒng)不屬于VuGen預(yù)設(shè)支持的應(yīng)用系統(tǒng)時,Rule Correlation可能既無法發(fā)揮作用,這時可以利用Correlation Studio來做關(guān)聯(lián)。
使用Correlation Studio的步驟如下:
- 錄制腳本并執(zhí)行;
- 執(zhí)行完畢后,VuGen會跳出下面的【Scan Action for Correlation】窗口,詢問您是否要掃描腳本并建立關(guān)聯(lián),按下【Yes】按鈕。
- 掃描完后,可以在腳本下方的【Correlation Results】中看到掃描的結(jié)果。
- 檢查一下掃瞄的結(jié)果后,選擇要做關(guān)聯(lián)的數(shù)據(jù),然后按下【Correlate】按鈕,一筆一筆做,或是按下【Correlate All】讓VuGen一次就對所有的數(shù)據(jù)建立關(guān)聯(lián)。
?
-
注意:由于Correlation Studio會找出所有有變動的數(shù)據(jù),但是并不是所有的數(shù)據(jù)都需要做關(guān)聯(lián),所以不建議您直接用【Correlate All】。 一般來說,您必須一直重復(fù)步驟1~4直到所有需要做關(guān)聯(lián)的數(shù)據(jù)都找出來為止。因為有時前面的關(guān)聯(lián)還沒做好之前,將無法執(zhí)行到后面需要做關(guān)聯(lián)的部份。
c.手動關(guān)聯(lián)
有可能有些需要做關(guān)聯(lián)的動態(tài)數(shù)據(jù),連Correlation Studio都無法偵測出來,這時您就需要自行做手動關(guān)聯(lián)了。
四.Mercury LoadRunner 控制器
控制器是腳本錄制完成后,執(zhí)行壓力負(fù)載測試的工具, 測試人員的工作就是了解被測應(yīng)用的性能需求,從應(yīng)用程序中找出一個或多個性能測試點,然后針對這些性能點分別進行測試,獲取相關(guān)的性能指標(biāo)結(jié)果,分析被測 應(yīng)用,追溯性能問題產(chǎn)生的根源.要使用LR實現(xiàn)這一過程,就需要針對這些性能點建立一個個的場景,因此,LR的每個場景都定義了一個在性能測試活動中發(fā)生 的事件,它能控制虛擬用戶的數(shù)量,測試腳本和運行腳本的LOAD GENERATOR.對于有經(jīng)驗的測試人員來說,定義場景是在計劃階段進行的,它優(yōu)先于腳本的錄制過程,并指導(dǎo)腳本的錄制。只不過計劃階段的場景只能限于 紙面上,要想讓LR這個測試工具實現(xiàn)自動的負(fù)載測試,需要在CONTROLLER中建立實實在在的場景。
控制場景可以從程序中打開,然后選擇保存好的腳本,也可以從Generator中直接連接到該腳本的控制場景,如下圖:
打開場景后,可能運行的場景有些單一,實際環(huán)境中可能在同一時間有多個功能模塊一同運行,為了實現(xiàn)這個目的, 可以添加多個已經(jīng)錄制好的腳本,在控制場景中一同執(zhí)行,添加的方法如下:
在控制場景頁面也有多項設(shè)置來達(dá)到測試需求,如:編輯計劃,IP欺騙器,集合點策略,負(fù)載生成器,添加資源度量….
1.編輯計劃
編輯計劃是用來控制場景的運行時間和運行策略,它分為按場景計劃和按組計劃,按組計劃是為多個場景運行,而限制其中某個場景而設(shè)定的項,這就但說明下 場景設(shè)置就OK了,在場景計劃中分為加壓,持續(xù)時間,減壓三個階段,分別講了如何加壓是所有的Vuser同時負(fù)載,還是隔多久加載多少個Vuser,持續(xù) 時間是為了流程完成為止還是運行時間的限制,減壓和加壓有點相似,就不多講了,計劃生成器如下圖:
2.IP欺騙器
LR進行壓力負(fù)載測試的時候,是讓一臺機器模擬成百上千的用戶對服務(wù)器施壓,這樣就產(chǎn)生了一個問題,那就是所有用戶向服務(wù)器發(fā)起請求的時候,使用的都 是同一個IP地址,即LOAD GENERATOR所在機器的固定IP地址,這是和實際運行環(huán)境不符的,而且有些應(yīng)用系統(tǒng)在設(shè)計的時候會根據(jù)IP來分配資源,有些還限制同一個IP的多次 登陸過程。LR為了解決這個問題,使用了一種稱為“IP欺騙(IP SPOOFER)”的技術(shù)。也就是讓一個LOAD GENERATOR上的虛擬用戶模擬從不同的IP來向服務(wù)器發(fā)起請求,以達(dá)到以假亂真的目的。設(shè)定欺騙器如下圖:
1>配置IP SPOOFER
第一個單選按鈕CREATE NEW SETTING,用于創(chuàng)建一個新的設(shè)置,首次運行時選用; 第二個單選按鈕LOAD PREVIOUS SETTING FROM可以調(diào)用以前保存的設(shè)置; 第三個單選按鈕RESTORE ORIGINALSET不是用來創(chuàng)建動態(tài)IP,而是將設(shè)置恢復(fù)為原始狀態(tài),這個選項主要用于使用后釋放IP,如果使用完畢后不釋放IP的話,那么這些 IP會被一直占用,別人就無法使用了。
2>輸入WEB
SERVER的IP地址,這里主要用來檢測新的IP地址加到主機中后,SERVER的路由表是否需要更新,如果SERVER和CLIENT使用的是相 同的子網(wǎng)掩碼,IP CLASS類型和網(wǎng)絡(luò),是無需更新的;
3>在添加新的動態(tài)IP的時候,需要注意如下幾個選項的含義:
PRIVATE ADDRESS SPACES:選擇測試環(huán)境的IP地址類型,關(guān)于IP地址類型的定義
FROM IP:要使用IP段的第一個值;
NUMBER TO:要使用的IP地址的數(shù)目。
SUBMASK:子網(wǎng)掩碼,一般采用默認(rèn)設(shè)置就可以了;
如果選中VERIFY THAT NEW IP ADDRESS ARE NOT ALREADY IN USE復(fù)選框,系統(tǒng)會在所選范圍內(nèi)檢測每個IP地址,為了避免沖突,LOADRUNNER只添加那些沒有被 其他 用戶使用的IP地址。
如果已經(jīng)預(yù)先知道選擇范圍內(nèi)的某些地址可能被占用,那么在NUMBER TO文本框中輸入的IP地址的個數(shù)就要有相應(yīng)的增加。
4>啟用IP欺騙
在CONTROLLER窗口中,選擇SCENARIO|ENABLE IP SPOOFER命令,就可以起用IP欺騙了,在IP欺騙啟用后,在CONTROLLER狀態(tài)欄中會顯示相應(yīng)的狀態(tài)標(biāo)識;
3.集合點策略
LOADRUNNER在運行場景的時候,允許測試人員根據(jù)項目需要自己設(shè)定集合點的并發(fā)策略,要設(shè)定一個集合點以何種方法運行,在創(chuàng)建或打開腳本中包 含集合點的場景時,選擇SCENARIOI|RENDEZVOUS命令,可以查看場景中所有腳本中的集合點名稱,所屬腳本,當(dāng)前狀態(tài)和相關(guān)的虛擬用戶列表 信息等,根據(jù)系統(tǒng)需求,還可以針對集合點的執(zhí)行進行設(shè)定。設(shè)置窗口如下:
單擊禁用集合點按鈕可以選定集合點是否啟用;
單擊禁用Vuser按鈕可以設(shè)定一個用戶是否參與到集合點中;
單擊策略按鈕可以設(shè)定集合點執(zhí)行策略。
在策略對話框中的VUSERS之間的超時值文本框中設(shè)定了一個超時時間,當(dāng)?shù)谝粋€用戶到達(dá)集合點時,系統(tǒng)開始計時。如果在這個設(shè)定的時間內(nèi)沒有 達(dá)到要求的集合點用戶數(shù),系統(tǒng)就不在等待,釋放用戶讓場景繼續(xù)執(zhí)行;
4.負(fù)載生成器
LR對應(yīng)用程序施壓時,采用的方法就是讓一臺機器模擬很多用戶,同時向被測用戶發(fā)送請求或進行操作。這樣,如果一臺測試機器模擬的虛擬用戶數(shù)過多,他 本身性能的下降會直接影響測試效果。為了避免這種情況,LR允許使用多臺機器運行場景來均衡測試機器的負(fù)荷。只要一臺機器安裝了LOAD GENERATOR并啟動了LOADRUNNER AGENT PROCESS進程,就可以被CONTROLLER統(tǒng)一調(diào)度來運行場景,CONTROLLER負(fù)載收集統(tǒng)一的測試信息和執(zhí)行結(jié)果。
如上圖添加另一臺安裝LR的計算機既可,但是要想負(fù)載,被添加的機子必須開啟LR代理服務(wù)器,然后設(shè)定負(fù)載策略,連接成功后,在某一場景的負(fù)載 生成器欄中選擇該連接的機子就OK了。
5. 添加資源度量
為了能夠?qū)崟r的監(jiān)控服務(wù)器因用戶量的遞增或因功能點性能問題而導(dǎo)致資源的變化,LR也提供了象Vuser圖一樣的資源圖,只要在相應(yīng)的區(qū)域右鍵添加度 量,將需要關(guān)注的資源添加進來即可.如下圖
1>在AVAILABLE列表中,單擊要監(jiān)視的圖表,選擇MONITOR|ADD MEASUREMENTS;或者在AVAILABLE GRAPH中先將準(zhǔn)備監(jiān)視的指標(biāo)拖至右側(cè)圖表欄中,然后用鼠標(biāo)右鍵單擊該圖表,在彈出的快捷菜單選擇ADD MEASUREMENTS,系統(tǒng)會自動彈出相應(yīng)的監(jiān)視服務(wù)器對話框;單擊上部的ADD按鈕,在MONITORED SERVER MACHINES中添加要監(jiān)視的服務(wù)器名稱(或IP地址)和相應(yīng)的系統(tǒng)平臺;單擊下部的ADD按鈕在RESOURCE MEASUREMENTS ON列表中添加相應(yīng)的計數(shù)器,這里可以選擇一個或多個性能指標(biāo)。如果添加成功的話,場景運行的時候,就可以在線監(jiān)視所選擇的指標(biāo)數(shù)據(jù)了
注意:必須以被監(jiān)視機器的管理員身份登陸到CONTROLLER所在機器,才能添加被監(jiān)視機器的性能計數(shù)器;
2>常見的計數(shù)器
- MEMORY相關(guān),內(nèi)存問題主要檢查應(yīng)用程序是否存在內(nèi)存泄露,如果發(fā)生了泄露,PROCESS\PRIVATE BYTES計數(shù)器和PROCESS\WORKING SET計數(shù)器的值往往會升高,同時AVALIABLE BYTES的值會降低.內(nèi)存泄露應(yīng)該通過一個長時間的測試來檢查,主要測試當(dāng)所有內(nèi)存都耗盡時應(yīng)用程序的反應(yīng)情況;
-
PROCESSOR相關(guān),判斷應(yīng)用程序是否存在處理器的瓶頸
如果PROCESSOR QUEUE LENGTH顯示的隊列長度保持不變(>=2),且處理器的利用率%PROCESSOR TIME超過90%,那么很可能存在處理器瓶頸;
如果發(fā)現(xiàn)PROCESSOR QUEUE LENGTH顯示的隊列長度超過2,而處理器利用率卻一直很低,那么或許更應(yīng)該去解決處理器的阻塞問題,處理器一般不是瓶頸;
如果系統(tǒng)由于應(yīng)用程序代碼效率低下或者系統(tǒng)結(jié)構(gòu)設(shè)計有缺陷而導(dǎo)致大量的上下文切換(CONTEX SWITCHES/SEC,顯示的上下文切換次數(shù))比較大,那么就會造成大量的系統(tǒng)資源;
如果系統(tǒng)吞吐量降低并且CPU的使用率很高,并且此現(xiàn)象發(fā)生時切換水平在1500以上,那么意味著上下文切換的次數(shù)過高;
還可以比較CONTEXT SWITCHES/SEC和%PRIVILEGED TIME來判斷上下文切換是否過量;如果后者的值超過40%,且上下文切換的速率也很高,那么應(yīng)該檢查為什么會產(chǎn)生這么高的上下文切換; -
網(wǎng)絡(luò)吞吐量及帶寬
BYTES TOTAL/SEC: 判斷網(wǎng)絡(luò)連接速度是否是瓶頸,可以用該計數(shù)器的值和目前網(wǎng)絡(luò)的帶寬比較,相除結(jié)果應(yīng)該小于50%; -
磁盤相關(guān)
判斷磁盤瓶頸的方法是通過以下的公式來計算:
每磁盤的I/O數(shù)=[讀次數(shù)+(4*寫次數(shù))]/磁盤個數(shù)
如果計算的每磁盤的I/O數(shù)大于磁盤的處理能力,那么磁盤存在瓶頸; - WEB SERVER相關(guān)
- 數(shù)據(jù)庫服務(wù)器相關(guān)
6.使用測試管理工具進行統(tǒng)一管理
LR和MERCURY QUALIY CENTER的完美結(jié)合,給用戶組織和管理LOADRUNNER的測試腳本,場景和測試數(shù)據(jù)帶來了極大的便利。QUALITY CENTER是MERCURY 提出的針對質(zhì)量保證的解決方案。只要將LR連接到基于WEB的QUALITY CENTER,則場景的存儲執(zhí)行和測試結(jié)果的收集就會隨時隨地被MERCURY QUALITY CENTER的測試項目進行有效的管理;
1>連接到QUALITY CENTER
要想讓LOADRUNNER使用一個QUALITY CENTER 對測試內(nèi)容進行管理,首先必須通過URL連接到QUALITY CENTER,這個QUALITY CENTER 既可以是安裝在本地的局域網(wǎng)上,也可以是通過廣域網(wǎng)訪問的測試管理平臺;
在CONTROLLER模塊中,選擇TOOLS|QUALITY CENTER CONNECTION 命令,彈出QUALITY CENTER CONNECTION 對話框,在SERVER文本框中輸入安裝了QUALITY CENTER的WEB服務(wù)器的URL地址,單擊CONNECT按鈕,系統(tǒng)會試圖建立對QUALITY CENTER服務(wù)器的連接,如果連接建立成功,則會在PROJECT CONNECTION 一欄顯示QUALITY CENTER的項目;
在PROJECT CONNECTION 一欄輸入相關(guān)的內(nèi)容,即選定要連接的測試管理項目,單擊CONNECT按鈕,系統(tǒng)開始對相應(yīng)的項目建立連接。一旦建立成功,則QUALITY CENTER的項目信息就變?yōu)橹蛔x狀態(tài);
2>斷開服務(wù)器或項目
在連接狀態(tài)中,可以隨時單擊DISCONNECT 按鈕斷開QUALITY CENTER服務(wù)器或項目的連接;
3>打開/保存測試項目場景
如果LOADRUNNER正在連接到一個測試管理工具上,那么在保存和打開場景的時候,系統(tǒng)彈出的對話框會有所不同,如果仍然希望在文件系統(tǒng)中打開/ 保存場景,可以單擊對話框中的FILE SYSTEM按鈕進行切換;關(guān)于測試管理工具如何管理和調(diào)用LOADRUNNER的場景,請參考TD。
五. 利用ANALYSIS分析測試結(jié)果
這個模塊是最難最復(fù)雜,也是眾多LR工程師最頭痛的部分,為了更快更多的找出系統(tǒng)存在的性能瓶頸,必須對LR控制器生成的性能指標(biāo)數(shù)據(jù)進行分析, LR的ANALYSIS模塊是分析系統(tǒng)的性能指標(biāo)的一個主要工具,它能夠直接打開場景的執(zhí)行結(jié)果文件,將場景數(shù)據(jù)信息生成相關(guān)的圖表進行顯 示.ANALYSIS集成了強大的數(shù)據(jù)統(tǒng)計分析功能,允許測試員對圖表進行比較和合并等多種操作,分析后的圖表能夠自動生成需要的測試報告文 檔;ANALYSIS作為LR的一個主要模塊,是幫助測試人員分析系統(tǒng)性能瓶頸的得力助手;
在ANALYSIS中包含了很多在場景運行過程中獲取了很多和性能相關(guān)的數(shù)據(jù)的圖表;針對每一個被測應(yīng)用來說,到底哪個性能指標(biāo)是影響性能的關(guān) 鍵了.了解常用的性能指標(biāo),熟悉使用ANALYSIS分析工具分析測試結(jié)果是確定系統(tǒng)瓶頸的關(guān)鍵.再次強調(diào),不同的應(yīng)用程序,影響其性能的因素也不同,要 分析被測軟件的性能因素,首先要熟悉被測軟件的技術(shù)架構(gòu); LR除了將獲取的原始數(shù)據(jù)形成直觀的圖表外,還對數(shù)據(jù)進行了一些統(tǒng)計,例如在多數(shù)分析圖表下方的圖例列表中,給出了最大值,最小值,平均值,中間值和 STD等一些統(tǒng)計字段,便于用戶分析。
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯(lián)系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
