前面已經(jīng)講述了場景設計的一些基礎知識在塔,鑒于場景設計在整個性能測試過程中的重要性苦银,在實際使用過程中也當然存在很多使用技巧或者說是一些高級使用方法僻爽。通過這些技巧或高級使用方法可以幫助我們更好地進行場景設計或監(jiān)控場景執(zhí)行的情況顿锰。本章主要對場景設計過程中常用的一些技巧進行講解蛔糯,主要涉及的內(nèi)容有:
集合點設置??
IP欺騙技術??
負載均衡技術??
執(zhí)行路徑轉(zhuǎn)換??
在LoadRunner中使用功能測試腳本
集合點
首先需要明確在性能測試過程中為什么要進行集合點設置陈瘦,在LoadRunner測試過程中幌甘,其實并不能保證所有的Vuser真的在同一時刻進行操作,這樣就達不到并發(fā)測試的目的痊项,故需要使用到集合點技術含潘,集合點的意思是如果在一個操作之前設置了一個集合點,LoadRunner會等待所有的Vuser都準備好要執(zhí)行該功能時才開始執(zhí)行线婚,其強調(diào)的是所有的Vuser都已準備好了遏弱,如果只是部分Vuser準備好了,該功能還是不會被執(zhí)行塞弊。
集合點設置
選擇Scenario→Rendezvous漱逸,如圖所示。
接下來會彈出集合點信息對話框游沿,如圖所示饰抒。
Rendezvous:這里顯示出腳本中包含的所有集合點。默認情況下這些集合點處于啟用狀態(tài)诀黍〈樱可以點擊按鈕,將集合點設置為禁用狀態(tài)眯勾。??
Scripts:顯示了場景運行的所有腳本枣宫。??
Vusers:場景運行設置虛擬用戶情況。默認情況下所有的Vuser都會參與到集合點的策略中來吃环,可以手動點擊按鈕也颤,將一些Vuser設置為不參與到該集合點策略中來。??
點擊按鈕郁轻,系統(tǒng)彈出Policy對話框翅娶,如圖所示文留。在該對話框中可以設定集合點執(zhí)行的策略。
第一項:表示當所有用戶數(shù)的X%到達集合點時竭沫,開始釋放等待的用戶并繼續(xù)執(zhí)行場景燥翅。
第二項:表示當前正在運行用戶數(shù)的X%到達集合點時,開始釋放等待的用戶并繼續(xù)執(zhí)行場景蜕提。
第三項:表示當X個用戶到達集合點時森书,開始釋放等待的用戶并繼續(xù)執(zhí)行場景。
其中還有一項Timeout between Vusers贯溅,就30秒來說,當?shù)谝粋€用戶到達集合點后躲查,再等待30秒它浅,如果在30秒內(nèi)到達的用戶數(shù)達到指定的數(shù)量,就開始繼續(xù)執(zhí)行場景镣煮。如果在30秒內(nèi)還沒有達到指定的用戶數(shù)量姐霍,就不再等待,開始釋放等待的用戶并繼續(xù)執(zhí)行場景典唇,如圖所示镊折。
從上圖中可以看出,當前面三個虛擬用戶到達集合點后介衔,第四個虛擬用戶在30秒之內(nèi)并未到達集合點恨胚,這樣已經(jīng)到達的虛擬用戶不會再等后面的虛擬用戶炎咖,而是直接釋放虛擬用戶,運行后面的腳本。
以上都是自動控制Vuser釋放的情況级野,但在實際使用的過程中蓖柔,也可以手動對Vuser進行釋放渊抽,這涉及到手動釋放Vuser技術。在正常情況下會發(fā)現(xiàn)在集合點信息對話框中愤估,下面的Release按鈕不可用玩焰,如圖所示。
以下是手動釋放Vuser的步驟:
1.開始執(zhí)行場景。
2.在場景執(zhí)行過程中選擇
Scenario→Rendezvous
打開集合點信息對話框甥郑。
3.在場景運行過程中,下面的按鈕和
按鈕會變成可用狀態(tài)勉躺,這時可以點擊
按鈕饵溅,進行手動釋放Vuser概说,如圖所示糖赔。
集合點與事務的關系
在進行并發(fā)測試時需要設置集點基茵,同時為了獲取事務的響應時間必須添加開始和結束事務拱层,那么集合點設置在開始事務代碼后面還是在開始事務之前呢根灯?即兩者之間的關系如何纳猪?
第一種情況氏堤,集合點設置在開始事務代碼后面闪檬,其運行的過程圖粗悯,如圖所示由桌。
從上圖中可以看到當虛擬用戶運行到開始事務起點時剪廉,事務就開始統(tǒng)計時間斗蒋,但仔細研究發(fā)現(xiàn)泉沾,當?shù)谝粋€虛擬用戶到達集合點時姓迅,后面的虛擬用戶還沒有到達集合點,這樣第一個虛擬用戶就不得不等其它的虛擬用戶到達集合點后才能接著運行柴我,但虛擬用戶到達集合點之前事務一直在統(tǒng)計時間聋伦,并沒有暫停索守,那么這個等待的時間其實根本就不是事務的真實時間卵佛,真實的事務響應時間應該除去虛擬用戶之間的等待時間。
第二種情況集合點設置在開始事務代碼前面,如圖所示。
從上圖中可以看出暑椰,雖然需要等待所有的虛擬用戶都到達集合點后才開始釋放虛擬用戶,但是此時事務并沒有開始計時荐绝,只有運行到開始事務代碼時才會開始計時一汽,這樣統(tǒng)計出來的時間值就不包含虛擬用戶因為集合點的原因所浪費的等待時間。
所以綜上描述低滩,一般將集合點設置在開始事務代碼之前召夹。