每一天都是進(jìn)步

            BlogJava :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
            88 隨筆 :: 0 文章 :: 5 評(píng)論 :: 0 Trackbacks
          http://wenku.baidu.com/link?url=2wZd7nx0zyPtDOsOEyVFnw4sEiKLvyHLnkNDz9HlOlRzZWEkCDhODdmNGebFrv5oVKj9rpS7Flg5qhXov-wbHghRtQWdIqKcX-0oRe7_7sG

           

          1.集合點(diǎn)的含義 rendezvous

          當(dāng)通過(guò)controller虛擬多個(gè)用戶執(zhí)行該腳本時(shí)。用戶的啟動(dòng)或運(yùn)行步驟不一定都是同步的。集合點(diǎn)是在腳本的某處設(shè)置一個(gè)標(biāo)記。當(dāng)有虛擬用戶運(yùn)行到這個(gè)標(biāo)記處時(shí),停下等待,直到所有的用戶都達(dá)到這個(gè)標(biāo)記處時(shí),再一同進(jìn)行下面的步驟,這樣能夠用最大的用戶并發(fā)去做下面的操作,就像集合再前進(jìn)一樣。集合點(diǎn)之名由此而得。集合點(diǎn)主要用于對(duì)關(guān)鍵步驟的加壓。 

          2.插入集合點(diǎn)的目的

           集合點(diǎn)的用處對(duì)于LoadRunner來(lái)說(shuō)意義非常大,它可以設(shè)置多個(gè)虛擬用戶等待到一個(gè)點(diǎn),同時(shí)觸發(fā)一個(gè)事務(wù),以達(dá)到模擬真實(shí)環(huán)境下同時(shí)多個(gè)用戶操作,同時(shí)模擬負(fù)載,實(shí)現(xiàn)性能測(cè)試的最終目的。由此可見(jiàn),插入集合點(diǎn)主要是為了衡量在加重負(fù)載的情況下服務(wù)器的性能情況,從而找到性能瓶頸。可以把集合點(diǎn)理解成是一種特殊情況下的并發(fā)。
          舉例如下:在客戶的需求中,可能會(huì)要求系統(tǒng)能夠承受500人同時(shí)提交數(shù)據(jù)。在LR中可以通過(guò)在提交數(shù)據(jù)操作前面加入集合點(diǎn),當(dāng)虛擬用戶運(yùn)行到提交數(shù)據(jù)的集合點(diǎn)時(shí),LR就會(huì)檢查同時(shí)有多少用戶運(yùn)行到集合點(diǎn),如果我們?cè)O(shè)定腳本運(yùn)行的虛擬用戶數(shù)為1000,等到這1000個(gè)虛擬用戶都運(yùn)行到集合點(diǎn)后,就會(huì)觸發(fā)同時(shí)進(jìn)行提交數(shù)據(jù)的操作,從而能夠測(cè)試系統(tǒng)能夠?qū)τ谶@1000個(gè)用戶提交數(shù)據(jù)的響應(yīng)情況,以此來(lái)看系統(tǒng)是否滿足客戶的該點(diǎn)需求。

          事務(wù):就是用戶某一步或者某幾步操作的集合。當(dāng)我們需要通過(guò)某一步或是某幾步操作從而衡量服務(wù)器的性能的時(shí)候,這時(shí)我們就把這些操作設(shè)置成一個(gè)事務(wù),當(dāng)事務(wù)開(kāi)始執(zhí)行的時(shí)候lr就開(kāi)始計(jì)時(shí)當(dāng)事務(wù)運(yùn)行結(jié)束計(jì)時(shí)停止,執(zhí)行事務(wù)的時(shí)間會(huì)在在最后的結(jié)果中顯示出來(lái)。 

          集合點(diǎn)一般是跟事務(wù)結(jié)合使用的,不要把集合點(diǎn)設(shè)置到事物里面,因?yàn)槟菢拥脑捘_本等待的時(shí)間都計(jì)算在事務(wù)的時(shí)間內(nèi),進(jìn)行壓力測(cè)試的時(shí)候查看響應(yīng)時(shí)間就會(huì)有一定的偏差。集合點(diǎn)應(yīng)插入到事務(wù)開(kāi)始的前面,這樣在這個(gè)地方達(dá)到用戶的數(shù)量后同時(shí)執(zhí)行下面的事務(wù)才能測(cè)試出多個(gè)用戶能否同時(shí)執(zhí)行某一操作。

          實(shí)例:在測(cè)試查詢編號(hào)這個(gè)功能,需要在點(diǎn)擊查詢時(shí)設(shè)置事務(wù)跟集合點(diǎn)
          方法一:先設(shè)置集合點(diǎn)再設(shè)置事務(wù),壓20個(gè)用戶時(shí)平均響應(yīng)時(shí)間為16.400
          方法二:先設(shè)置事務(wù)再設(shè)置集合點(diǎn),壓20個(gè)用戶時(shí)平均響應(yīng)時(shí)間為0.799

          在腳本中直接添加:
          lr_rendezvous("集合點(diǎn)名稱");
          如果腳本中設(shè)置了集合點(diǎn),在conntrol的場(chǎng)景中Scenario/Rendezvous集合功能點(diǎn)會(huì)亮(沒(méi)有則是灰色)。就可以來(lái)設(shè)置虛擬用戶集合的方式。
          如果腳本之前沒(méi)有集合點(diǎn),后面加進(jìn)去的,已經(jīng)加載在場(chǎng)景了要進(jìn)行刷新,獲取最新腳本。

          Controller的Scenario Groups中,有個(gè)按鈕Details,進(jìn)去之后會(huì)有Refresh按鈕,有刷新腳本和運(yùn)行設(shè)置兩項(xiàng)
          集合點(diǎn)設(shè)置策略Policy:總共有3種

          1.當(dāng)百分之多少的用戶到達(dá)集合點(diǎn)時(shí)腳本繼續(xù)。 

          2.當(dāng)百分之多少的運(yùn)行用戶到達(dá)集合點(diǎn)時(shí)腳本繼續(xù)。 
          3.多少個(gè)用戶到達(dá)集合點(diǎn)時(shí)腳本繼續(xù)。
          說(shuō)明:其中1跟2兩種只針對(duì)設(shè)置了多少分鐘啟動(dòng)多少用戶,如果一開(kāi)始就加載所有用戶就沒(méi)有什么區(qū)別
          這3個(gè)策略的區(qū)別在于:假設(shè)腳本由100個(gè)用戶來(lái)運(yùn)行,但100個(gè)用戶并不是一開(kāi)始就共同運(yùn)行的。假設(shè)每隔1分鐘添加10個(gè)用戶,也就是說(shuō)10分鐘后系統(tǒng)才有100個(gè)在線用戶。這里100就是指系統(tǒng)訪問(wèn)的所有用戶數(shù),而不同時(shí)間的在線用戶數(shù)是不同的。設(shè)置的集合點(diǎn)策略百分比均為100%。在場(chǎng)景運(yùn)行時(shí),當(dāng)Vuser腳本運(yùn)行到集合點(diǎn)函數(shù)時(shí),該虛擬用戶會(huì)進(jìn)入集合點(diǎn)狀態(tài)直到集合點(diǎn)策略滿足后才釋放。策略1是指當(dāng)全部用戶都運(yùn)行到了集合點(diǎn)函數(shù)才釋放集合,讓這100個(gè)用戶并發(fā)運(yùn)行后面的腳本。策略2是指當(dāng)前時(shí)間如果只有10個(gè)用戶在線,那么只需要這10個(gè)用戶都運(yùn)行到了集合點(diǎn)函數(shù)就釋放集合,讓這10個(gè)用戶并發(fā)運(yùn)行后面的腳本。策略3就比較好理解了,當(dāng)?shù)竭_(dá)集合點(diǎn)的用戶數(shù)達(dá)到自己設(shè)置的數(shù)量后就釋放等待,并發(fā)運(yùn)行后面的腳本。可以在多個(gè)腳本上設(shè)置相同的集合點(diǎn)名稱來(lái)實(shí)現(xiàn)多個(gè)腳本同時(shí)并發(fā)的效果。
          設(shè)置集合點(diǎn)策略時(shí)還有一個(gè)集合點(diǎn)超時(shí)

          在腳本運(yùn)行時(shí),每個(gè)虛擬用戶到達(dá)集合點(diǎn)時(shí)都會(huì)去檢查一下集合點(diǎn)的策略設(shè)置,如果不滿足,那么就在集合狀態(tài)等待,直到集合點(diǎn)策略滿足后,才運(yùn)行下一步操作。但是可能存在前一個(gè)虛擬用戶和后一個(gè)虛擬用戶達(dá)到集合點(diǎn)的時(shí)間間隔非常長(zhǎng)的情況,所以需要指定一個(gè)超時(shí)的時(shí)間,如果超過(guò)這個(gè)時(shí)間就不等待遲到的虛擬用戶了。

          超時(shí)時(shí)間是指虛擬用戶之間的時(shí)間差,當(dāng)出現(xiàn)兩個(gè)虛擬用戶到達(dá)集合點(diǎn)的時(shí)間差超過(guò)設(shè)定的超時(shí)時(shí)間時(shí),所有在集合點(diǎn)處于等待狀態(tài)中的用戶將全部釋放。


          posted on 2015-06-24 20:23 碟雅閑居 閱讀(3280) 評(píng)論(0)  編輯  收藏 所屬分類: LoadRunner
          主站蜘蛛池模板: 五峰| 临沧市| 益阳市| 延津县| 新余市| 乐东| 剑川县| 嫩江县| 根河市| 台前县| 丰都县| 卢湾区| 中阳县| 宜阳县| 蓬莱市| 瓮安县| 桐梓县| 区。| 哈巴河县| 桐庐县| 吕梁市| 谢通门县| 天柱县| 保靖县| 湘西| 阿荣旗| 定边县| 柳州市| 海伦市| 临泽县| 南康市| 色达县| 南京市| 紫金县| 横山县| 汽车| 肃宁县| 辽阳市| 石渠县| 大石桥市| 毕节市|